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
The old "static/custom" directory is replaced by "static/skins/<skinName>",
where <skinName> is taken from settings.json.
When no value is found, a default of "no-skin" is assumed, so that backward
compatibility is maintained.
The most evident security concerns have been addressed.
Closes#3471.
* Added support for the Montserrat Font as discussed in #3201
I chose a thin version of the Font (namely Montserrat Light) as the regular font and Montserrat Regular as the bold version. The thin fonts just look better in my opinion.
I added RobotoMono-Regular and RobotoMono-Bold as TrueTypeFont files and included them into the list. I tred to stay in alphabetical order where possible.
The author of #3201 was asking for a more modern monospaced font.
On some erros that display a modal with "Force reconnect" button, allow
Etherpad to automatically reload pad after a few seconds. Amount of
seconds is defined on settings.json.
Still need to create tests for this feature, and implement i18n.
With this new version of bowser.js is possible detect the OS as well,
no only the browser as the previous one. It brings support to
new browsers as well.
Most of the code here has been taken from @LaKing's #2554.
Only icons required for etherpad have been added. Here is a
list of the code points that are being used:
0xe800 0xe801 0xe802 0xe803
0xe804 0xe805 0xe806 0xe807
0xe808 0xe809 0xe80a 0xe80b
0xe80c 0xe80d 0xe80e 0xe80f
0xe810 0xe811 0xe812 0xe813
0xe814 0xe815 0xe816 0xe817
Their related icon names can be seen in:
/src/static/css/fontawesome-etherpad.css
Even though this patch *adds* all the required icons it only
uses them in the in toolbar. The switch to using only FontAwesome
icons and the removal of old PNG files will only happen after the
timeslider interface has been updated.
This is the first step for #2253