2015-04-21 09:03:17 -05:00
|
|
|
Leaflet platform for LibreOffice On-Line
|
|
|
|
========================================
|
2015-03-09 08:58:37 -05:00
|
|
|
|
2015-04-21 09:03:17 -05:00
|
|
|
This is the client part of LibreOffice On-Line. For the server part, see the
|
|
|
|
../loolwsd/README, and install it first.
|
|
|
|
|
|
|
|
Build dependencies
|
|
|
|
------------------
|
|
|
|
|
|
|
|
First you need to install 'jake'. As root, do:
|
2015-03-09 08:58:37 -05:00
|
|
|
|
|
|
|
npm install -g jake
|
|
|
|
npm install
|
2015-04-21 09:03:17 -05:00
|
|
|
|
|
|
|
Alternatively, you can use the provided zip (as a normal user):
|
|
|
|
|
|
|
|
unzip node_modules/modules.zip -d node_modules
|
|
|
|
|
|
|
|
Building
|
|
|
|
--------
|
|
|
|
|
|
|
|
As a normal user:
|
|
|
|
|
2015-03-09 08:58:37 -05:00
|
|
|
jake build
|
2015-04-06 09:14:21 -05:00
|
|
|
cd plugins/draw-0.2.4
|
|
|
|
jake build
|
2015-03-23 12:24:39 -05:00
|
|
|
|
2015-04-21 09:03:17 -05:00
|
|
|
Running
|
|
|
|
-------
|
|
|
|
|
|
|
|
To see an example:
|
|
|
|
|
|
|
|
* run loolwsd, like:
|
|
|
|
|
|
|
|
./loolwsd --lopath=<...>/instdir/program
|
|
|
|
|
|
|
|
* edit debug/document/document_simple_example.html, and change
|
|
|
|
/PATH/TO/DOCUMENT to a file reachable by loolwsd
|
|
|
|
|
|
|
|
* open debug/document/document_simple_example.html in the browser, like:
|
|
|
|
|
|
|
|
firefox debug/document/document_simple_example.html
|
|
|
|
|
|
|
|
and you should see the document in the browser. In case anything goes wrong,
|
|
|
|
check the loolwsd console for the debugging output.
|
|
|
|
|
|
|
|
Contributing
|
|
|
|
------------
|
|
|
|
|
|
|
|
Code conventions:
|
|
|
|
|
|
|
|
* 'jake lint' should be run before commiting
|
|
|
|
* files should have unix line terminators (LF)
|
|
|
|
* tools to convert files: dos2unix or fromdos
|
|
|
|
|
|
|
|
Implementation details
|
|
|
|
----------------------
|
2015-03-24 06:15:43 -05:00
|
|
|
|
2015-03-23 12:24:39 -05:00
|
|
|
Loading a document:
|
|
|
|
The map should have the following options:
|
|
|
|
- center at [0, 0] this will try to place the [0, 0] point in the middle of the
|
|
|
|
map, but it will be moved in the top left corner when the maxBounds are set
|
|
|
|
- zoom = defautl zoom value, zooming in and out will refer to this value
|
|
|
|
- server address
|
|
|
|
|
|
|
|
The layer (actual document) should have the following options:
|
|
|
|
- doc = path to the document that will be loaded
|
|
|
|
- useSocket = tells the map the tiles will be received from a websocket
|
|
|
|
connection. If this parameter is false, an image will be loaded in each tile
|
|
|
|
|
2015-04-10 08:29:01 -05:00
|
|
|
How zooming works:
|
2015-05-01 11:18:03 -05:00
|
|
|
The zoom level goes from 1 to 20 (those limits can be changed) and the initial
|
|
|
|
level is 10, which represents the 100% zoom level. The zoom factor is 1.2
|
2015-04-10 08:29:01 -05:00
|
|
|
|
2015-04-06 09:14:21 -05:00
|
|
|
Controls are added above the map in a div called "controls" is intended to be used as a toolbar.
|
2015-05-01 11:18:03 -05:00
|
|
|
There is no leaflet method of adding them in a separate div, so for now this is done in the html
|
2015-04-06 09:14:21 -05:00
|
|
|
document after the map initialization.
|
2015-05-01 11:18:03 -05:00
|
|
|
|
|
|
|
To enable scrollbars the map is placed above a div that contains a bigger div of
|
|
|
|
the document's size (a mock document). So the div under the map gets scrollbars which
|
|
|
|
are independent of the map's div, thus enabling us to link them to the map as needed.
|
|
|
|
When the user scrolls, the map is panned by the same amount as it would've been scrolled.
|
|
|
|
Also, some custom jquery scrollbars are used, to trigger the same scroll events across
|
|
|
|
browsers.
|