• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..20-Jan-2022-

action/H06-Aug-2020-453365

conf/H06-Aug-2020-2712

externals/etherpad-lite-client/H06-Aug-2020-702528

img/H06-Aug-2020-

lang/H06-Aug-2020-10277

scripts/H06-Aug-2020-652581

README.mdH A D05-Aug-20205.7 KiB11176

plugin.info.txtH A D05-Aug-2020210 87

style.cssH A D05-Aug-2020505 3427

README.md

1dokuwikietherpadlite
2====================
3
4Etherpad-Lite plugin for dokuwiki
5
6All documentation for this plugin can be found at https://github.com/michael-dev/dokuwikietherpadlite and at https://www.dokuwiki.org/plugin:etherpadlite .
7
8What does it do?
9----------------
10
11This dokuwiki plugin lets you edit your pages using an existing etherpad lite instance. Using an appropiate configuration of the etherpad lite server, the plugin will enforce dokuwiki acl permissions for pages onto the pads for editing the page and additionally lets you protect the pads using read and read-write passwords. Further, it integrates tightly with the dokuwiki toolbar so that most buttons will work the the etherpad lite editor as well.
12
13Benefits
14--------
15
16* multiple persons can edit the same page at the same time
17* almost realtime backups of edits typed
18* tight toolbar integration
19* mapping of dokuwiki permissions
20* extra password protection for read/readwrite pad access
21
22Usage
23-----
24
25The user who is in (dokuwiki) "edit"-Mode can create a PAD to edit and save the content. Users in "lock"-Mode can join this PAD, but not save nor delete the PAD.
26
27How does it work?
28-----------------
29
30The dokuwiki plugin adds javascript code to the edit page that hooks into the toolbar javascript and adds an extra pad-toogle icon just below the textedit field. This code obviously depends on the template used and has *not* been tested with the most recent dokuwiki default template. The dokuwiki plugin further adds an ajax handler that calls the etherpad lite api as needed and stores the pad details in the dokuwiki page metadata object.
31
32The etherpad lite gets its pads assigned to groups, group membership managed and pad passwords assigned by the dokuwiki plugin. Further, the dokuwiki plugin sets browser cookies to authorize the client to use the pad. The latter leads to some cross-domain requirements, though this could as well be fixed by adding extra code to etherpad lite.
33
34The tight integration works using javascript cross-domain message posting, so it is more or less cross-domain independend. The dokuwiki plugin sends edit-messages (i.e. past text xx at current cursor) and the etherpad lite plugin receives and processes it. Therefore the etherpad lite plugin is just some javascript code loaded into the browser. Messages in the inverse directions are used to indicate the presence of the plugin. Please note that there currently is no synchronous messaging possible, so the dokuwiki javascript code cannot read the current selection from the pad.
35
36Installation
37------------
38### etherpad lite ###
39
40Please refer to the etherpad lite dokumentation for its installation steps and remember to use a production-ready backend.
41
42To ensure pad permissions and cleanup, I recommend the following etherpad lite settings. They ensure that only users authorized by the dokuwiki plugin can edit a pad and that there are only pads created using the dokuwiki plugin.
43* "requireSession" : true,
44* "editOnly" : true,
45
46#### Example apache config ####
47
48    RewriteEngine On
49    RewriteRule ^/pad$ /pad/ [R]
50    <Proxy http://localhost:9001/>
51      Order allow,deny
52      Allow from all
53    </Proxy>
54    ProxyPass /pad/ http://localhost:9001/
55    ProxyPassReverse /pad/ http://localhost:9001/
56    ProxyPreserveHost on
57
58### dokuwiki plugin ###
59
60Please refer to http://www.dokuwiki.org/plugins for additional info
61on how to install plugins in DokuWiki.
62
63## manual installation ##
64
65Use the following command to install the plugin into dokuwiki. The path name (etherpadlite in the lib/plugins folder) is important - a different name will not work!
66```
67git clone --recursive https://github.com/michael-dev/dokuwikietherpadlite lib/plugins/etherpadlite
68```
69
70## automatic installation ##
71
72Use https://github.com/michael-dev/dokuwikietherpadlite/blob/releases/dokuwiki-etherpadlite-current.zip to install the plugin using the dokuwiki plugin manager.
73
74## configuration ##
75
76This plugin needs configuration. See the dokuwiki configuration editor for this. More information can be found on https://www.dokuwiki.org/plugin:etherpadlite .
77
78### etherpad lite plugin ###
79
80For better integration, see the ep\_iframeinsert etherpad lite plugin.
81https://github.com/michael-dev/ep_iframeinsert
82
83Shortcomings
84------------
85
86* Please note that password protection only works for group pads. Additionally, there is a single master group for alle wiki pages. So the temporary page id is a secret.
87* The dokuwiki plugin sets a browser cookie read by the etherpad lite (session identifier). This leads to some cross-domain restrictions.
88* Group sessions last for one week or shorter (if user uses logout button). So after one week, you'll need to reconnect.
89* Encrypted pages are not really encrypted but the etherpad-lite builtin password manager is used.
90* Pads are owned by the user who created it. Ownership cannot be transfered. If a pad exists for a page revision, there cannot be another pad for the same/a different page revision.
91* the dokuwiki integration depends on the template used and is not tested with the most recent dokuwiki default template.
92
93Licence
94-----------
95* Icons: http://openclipart.org/detail/35197/tango-accesories-text-editor-by-warszawianka (public domain)
96* Icons: http://openclipart.org/detail/74881/cerrar-by-nomade
97* Icons: http://openclipart.org/detail/22179/lock-by-nicubunu
98
99----
100Copyright (C) Michael Braun <michael-dev@fami-braun.de>
101
102This program is free software; you can redistribute it and/or modify
103it under the terms of the GNU General Public License as published by
104the Free Software Foundation; version 2 of the License
105
106This program is distributed in the hope that it will be useful,
107but WITHOUT ANY WARRANTY; without even the implied warranty of
108MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
109GNU General Public License for more details.
110
111