Commit graph

19 commits

Author SHA1 Message Date
muxator
0ad8291ae7 hooks: restore Internet Explorer 11 compatibility.
Compatibility with IE11 regressed in 23eab79946 while working for #3488.
That commit made use of modern js syntax, not supported by IE11.

- Removed arrow functions, replaced with normal functions.
- Removed the spread operator (<...iterable>) and the "new Set()" construct,
  replaced with _.uniq()

At some point IE11 compatibility will be dropped.
Ditching it now, for such a small gain, is not wise.

Fixes #3500.
2018-11-28 20:03:39 +01:00
muxator
23eab79946 pad.html: for each client plugin, add a class to #editorcontainerbox
This commit implements the following behaviour:

1. adds a function clientPluginNames() to hooks.js (mimicking what is done in
   static.js), which returns an array containing the list of currently installed
   client side plugins. The array is eventually empty.

2. calls that function in pad.html at rendering time (thus server-side) to
   populate a class attribute.

Example results:
- with no client-side plugins installed:
  <div id="editorcontainerbox" class="">

- with some client-side plugins installed:
  <div id="editorcontainerbox" class="ep_author_neat ep_adminpads">

Looking at the existing code (src/node/hooks/express/static.js#L39-L57), a
client-side plugin is defined as a plugin that implements at least a client side
hook.

NOTE: there is currently no support for notifying plugin removal/installation
      to the connected clients: for now, in order to get an updated class list,
      the clients will have to refresh the page.

Fixes #3488
2018-10-02 21:22:13 +02:00
webzwo0i
5d15f655f0 dont make local variables global 2014-12-14 22:01:28 +01:00
luto
f70309645c pluginfw: accept 'null' as a hook-result, as this is needed by handleMessage 2014-06-12 13:33:17 +02:00
Luc Didry
3d8452b143 Replace tabs indentation with spaces indentation
Some files are obviously external libraries, I didn't touch them
2013-12-05 08:41:29 +01:00
John McLear
4cfac2f624 fix extract and checkPad 2013-02-18 08:29:25 -08:00
Chad Weider
9394495364 Inject plugins into hooks. 2012-09-11 21:16:47 -07:00
Chad Weider
19a7208c97 Clean up requires. 2012-09-09 18:18:59 -07:00
Chad Weider
0da4acfdb5 Use packaged edition of async. 2012-09-09 18:18:59 -07:00
Egil Moeller
3338db9485 Bugfixes 2012-06-05 13:32:33 +02:00
Egil Moeller
7b39da2d69 Bugfix for callFirst to actually call call hooks until it finds one that returns non-empty, which is actually usefull, as opposed to just calling one hook. 2012-04-19 16:03:42 +02:00
Egil Moeller
6120a0b7aa Merge branch 'develop' of git://github.com/Pita/etherpad-lite 2012-03-27 22:36:48 +02:00
Egil Moeller
12600446c2 Better argument handling and defaults 2012-03-27 22:23:28 +02:00
Matthias Bartelmeß
349bb595b9 corrected underscore path in hooks 2012-03-23 20:19:41 +01:00
Egil Moeller
c591efb352 Plugin list can now be reloaded 'live' 2012-03-19 17:16:49 +01:00
Matthias Bartelmeß
e559df18ce use underscore.js 2012-03-17 13:38:26 +01:00
Peter 'Pita' Martischka
9f03e5ec68 Output nicer exceptions in hook call 2012-03-04 20:32:57 +01:00
Egil Moeller
df531a7b2b Made ace actually use the new hooks system, and removed remnants of old system 2012-03-01 19:22:02 +01:00
Egil Moeller
73aa0687b8 Client side hooks are now loaded and works 2012-03-01 18:45:02 +01:00