Commit graph

3150 commits

Author SHA1 Message Date
muxator
72ccb28382 AbsolutePaths: initial work to allow Etherpad to be run without changing CWD
With this change, it is no longer necessary to "cd" to the Etherpad base
directory to start it: Etherpad runs from everywhere.

Known issues:
- unless the program is started as before (CWD == base directory) it is still
  not possible to install & uninstall plugins via the web interface

--HG--
branch : absolute-paths
2020-04-19 04:51:50 +02:00
muxator
be3d158402 pad.html: use TLS for the "Powered by" link: http://etherpad.org -> https://etherpad.org 2020-04-19 03:24:47 +02:00
Sebastian Castro
03227e526f css: fix toolbar overlay so it cover only toolbar and not the whole screen
This allows to copy & paste the pad text even when disconnected.
2020-04-19 03:03:44 +02:00
Sebastian Castro
4593c4be7c users: remove hardcoded color for editempty. Use opacity instead 2020-04-19 03:03:44 +02:00
Sebastian Castro
cbd9378908 colibris: full-width-editor fix padding property which was overwritten 2020-04-19 03:03:44 +02:00
Sebastian Castro
22f7e1fd36 colibris: small improvement on chat and sidediv 2020-04-19 03:03:44 +02:00
Sebastian Castro
b06324ad80 css: improve gritters
- have two containers, one of the top, on of the bottom;
- remove gritting chat message when opening the chat.
2020-04-19 03:03:44 +02:00
Sebastian Castro
3e12b6d132 chat: fix coloring with dark background, and scrolling chattext when new message come in 2020-04-19 03:03:44 +02:00
Sebastian Castro
780eaad573 no-skin: fix toolbar icons position 2020-04-19 03:03:44 +02:00
Sebastian Castro
705b6c5e2e colibris: adds toolbar border when editor is scrolling 2020-04-19 03:03:44 +02:00
Sebastian Castro
f650d3a35a colibris: fixs skin variants background 2020-04-19 03:03:44 +02:00
Sebastian Castro
e2e5c7695b colibris: Fix skin variant builder after introducing nice-select 2020-04-19 03:03:44 +02:00
Sebastian Castro
621448b92f css: add default color/variable for browsers non supporting css variables 2020-04-19 03:03:44 +02:00
Sebastian Castro
6de996c973 css: various improvements 2020-04-19 03:03:44 +02:00
Sebastian Castro
02769bee44 css: simplify new theme and variants
make design simpler so it's less complex to implement
remove light-soft-color and dark-soft-color
2020-04-19 03:03:44 +02:00
Sebastian Castro
ca12287a26 pad_editor: fix manage show authorship on both pad and chat 2020-04-19 03:03:44 +02:00
Sebastian Castro
c5fdc6129e colibris: adjust commented text color 2020-04-19 03:03:44 +02:00
Sebastian Castro
2193875292 colibris: fix coloring text when authorship background color is activated #3641 2020-04-19 03:03:44 +02:00
Sebastian Castro
5e6ceb071e prevent sticky chat and chatAndUsers for mobile 2020-04-19 03:03:44 +02:00
Sebastian Castro
c945c57a87 css: use default cursor 2020-04-19 03:03:44 +02:00
Sebastian Castro
8a4de6c366 css: fix comment style 2020-04-19 03:03:44 +02:00
Sebastian Castro
0cbd178f95 css: small fixes 2020-04-19 03:03:44 +02:00
Sebastian Castro
8b6cfba639 css: simplify input coloring 2020-04-19 03:03:44 +02:00
Sebastian Castro
12da4f751f colibris: style ep_comments 2020-04-19 03:03:44 +02:00
Sebastian Castro
ce1e9672f9 css: style select with nice-select library 2020-04-19 03:03:44 +02:00
Sebastian Castro
21de2bf4a0 css: fix default skin after all the changes made to Colibris 2020-04-19 03:03:44 +02:00
Sebastian Castro
7fb086edbe css: Still some adjustements to handle all variants properly 2020-04-19 03:03:44 +02:00
Sebastian Castro
c6f5ced23c css: adds UI skin variants builder (only for colibris skin) 2020-04-19 03:03:44 +02:00
Sebastian Castro
cbc6304243 css: add chat animation on opening 2020-04-19 03:03:44 +02:00
Sebastian Castro
f5685f45c7 css: various improvements 2020-04-19 03:03:44 +02:00
Sebastian Castro
709e5d2233 colibris: introduce skin variants, in order to customize the rendering
This provide a nice way to change the colors of main containers from settings file. See comment inside settings for how it works
2020-04-19 03:03:44 +02:00
Sebastian Castro
913d5fd0d9 colibris: Improve table of content
Display it on the left to balance with comments and chat and user that can go on the right
2020-04-19 03:03:44 +02:00
Sebastian Castro
99d9752b0a css: introduce css variables in Colibris skin 2020-04-19 03:03:44 +02:00
Sebastian Castro
a89503a4dd css: style scroll bars 2020-04-19 03:03:44 +02:00
Sebastian Castro
71a3579ae7 css: fix broken popup colorpicker chatAndUsers 2020-04-19 03:03:44 +02:00
Sebastian Castro
eb0d8839c2 css: minor improvements 2020-04-19 03:03:44 +02:00
Sebastian Castro
281b7a2ab0 css: style checkboxes 2020-04-19 03:03:44 +02:00
Sebastian Castro
9497db89c9 css: fix popup broken by new animation
fix connectivity
fix chat and users
2020-04-19 03:03:44 +02:00
Sebastian Castro
9b60bb4d55 gritter: Improve animations
fix recently introduced bug by myself where all gritter were removed when first removed.
Display container at the top
2020-04-19 03:03:44 +02:00
Sebastian Castro
559a48221e css: Clear old comments code, we gonna write it from scratch 2020-04-19 03:03:44 +02:00
Sebastian Castro
6a5c35b651 css: layout, restrict innerdoc width instead of outerdoc width 2020-04-19 03:03:44 +02:00
Sebastian Castro
51b857ad1a css: minor improvements 2020-04-19 03:03:44 +02:00
Sebastian Castro
a5164dad43 fonts: improve default fonts & font picker
- change default font for colibris and for no-skin
- add roboto and quicksand font files
- simplify font picker: directly use the name of the font, and reduce their
  number
2020-04-19 03:03:44 +02:00
Sebastian Castro
fb5a65c5fc css: add normalizer, and fix previous rules
Some old rules was build with box-sizing: content-box. Switching now to border-box change how containers are calculated
2020-04-19 03:03:44 +02:00
Sebastian Castro
ae1a2531f8 css: upgrade icons to fontawesome 5 2020-04-19 03:03:44 +02:00
Sebastian Castro
8a9300866b css: make box-sizing border-box by default everywhere 2020-04-19 03:03:44 +02:00
Sebastian Castro
2dc4cfdfe1 css: improve popup opening animation 2020-04-19 03:03:44 +02:00
Sebastian Castro
a5d461f25f css: minor improvements 2020-04-19 03:03:44 +02:00
Sebastian Castro
6d586a21b3 colibris: clean no more used code since refactor 2020-04-19 03:03:44 +02:00
Sebastian Castro
b5543d65be mobile: fix colibris skin 2020-04-19 03:03:44 +02:00
Sebastian Castro
d3d8cca947 mobile: timeslider and small adjustements 2020-04-19 03:03:44 +02:00
Sebastian Castro
146bece0f1 css: fix colorpicker 2020-04-19 03:03:44 +02:00
Sebastian Castro
b94019e99e mobile: fix toolbar popup 2020-04-19 03:03:44 +02:00
Sebastian Castro
1d927854a4 mobile: ability to display hidden toolbar buttons 2020-04-19 03:03:44 +02:00
Sebastian Castro
d6aec95684 colibris: improve toolbar 2020-04-19 03:03:44 +02:00
Sebastian Castro
c79ad1e504 css: fix Colibris timeslider 2020-04-19 03:03:44 +02:00
Sebastian Castro
f3fcbf2653 css: refactor timeslider
- simplify template
- use flexboxes
- simplify javascript code
- remove some obsolete code adjusting a background-position when using steppers buttons
- add comments and remove old code
2020-04-19 03:03:44 +02:00
Sebastian Castro
41d67b9fa3 css: disable changing opacity of chatbox when writing on bottom of page 2020-04-19 03:03:44 +02:00
Sebastian Castro
e041099d1b fix colibris skin after refactor 2020-04-19 03:03:44 +02:00
Sebastian Castro
a482a94fb8 css: improve gritter
- rename DOM wrapper because is was blacklisted by some ad blocker
- make the template and the lib to add gritter more simple (remove unused
  option, make template simpler)
- add style for gritter error message
2020-04-19 03:03:44 +02:00
muxator
c0d9797d0f formatting: remove trailing whitespaces on files Sebastian is going to modify
In the following commits Sebastian is going to edit three files. This change is
necessary make evident what he is going to modify, because some of them are old
vendorized libraries whose history we might want to reconstruct.

No functional changes.

Command:
    sed --in-place 's/[[:space:]]*$//' src/static/js/farbtastic.js
    sed --in-place 's/[[:space:]]*$//' src/static/js/gritter.js
    sed --in-place 's/[[:space:]]*$//' tests/frontend/specs/change_user_color.js
2020-04-19 03:03:44 +02:00
Sebastian Castro
082906ace2 css: Improve toolbar icon positionning 2020-04-19 03:03:44 +02:00
Sebastian Castro
8e467ce9aa css: add new icons (mic, video, mic slash, video slash, cancel)
Fix icon spin animation for popup "reconnecting to your pad"
2020-04-19 03:03:44 +02:00
Sebastian Castro
0923cd3f21 css: make all editor containers use the same background color 2020-04-19 03:03:44 +02:00
Sebastian Castro
e0f63a4a14 css: add skin scrollbar 2020-04-19 03:03:44 +02:00
Sebastian Castro
5fd6aeeea6 css: refactor element positioning
No more javascript to change css properties
Remove a number of useless tables
Try to stop positioning elements with absolute, but use flex-boxes instead

Adds comment to pad template, and move popups and chatbox inside editorcontainerbox (so absolute positioning is straightforward)

Make the design more consistent: always use base color, font-family and font-size. USe relative font size if necessary (.9rem instead of 11px for example)

Remove two columns in the popups, just use one column

Remove css meant to support old browser (like -webkit-box-shadow, -moz-box-shadow). Those css rules are quite common now, and If we want to support very old browser, we should use clean-css or other tools to add them automatically
2020-04-19 03:03:44 +02:00
Sebastian Castro
0603bf8097 css: remove no more used element
#nootherusers, #chatthrob, #focusprotector, #mystatusform, .hotrect, .throbbold
2020-04-19 03:03:44 +02:00
Sebastian Castro
4177b3f943 css: split base CSS code into subfiles (without modifications) 2020-04-19 03:03:44 +02:00
muxator
0b0608d7d4 skins: use "colibris" as default, even when no settings.json is present
Starting with Etherpad 1.8.3 we decided to use Colibris as default skin for new
installs. Without this change, when starting with no settings.json file,
Etherpad would (wrongly) use "no-skin".

This change should have been part of 70bc71c0c3.
2020-04-19 02:58:35 +02:00
translatewiki.net
b2aa0881af Localisation updates from https://translatewiki.net. 2020-04-16 17:06:58 +02:00
Christian Schröder
f0fdb94eb0 PadMessageHandler: fix for scoping error hiding original error
`r` is undefined outside of the for loop, but used in the catch block of the try
statement
2020-04-16 02:58:47 +02:00
translatewiki.net
4ddcaefed2 Localisation updates from https://translatewiki.net. 2020-04-14 05:23:20 +02:00
John McLear
c9d55c81a3 import/export: always rate limit import and exports
This is a departure from previous versions, which did not limit import/export
requests. Now such requests are ALWAYS rate limited. The default is 10 requests
per IP each 90 seconds, and also applies to old instances upgraded to 1.8.3.

Administrators can tune the parameters via settings.importExportRateLimiting.
2020-04-14 03:36:13 +02:00
John McLear
24ee37a38f import: do not allow importing into a pad from the web UI if the user is not on that pad
Importing to a pad is allowed only if an author has a session estabilished and
has already contributed to that specific pad. This means that as long as the
user is on the pad (via the browser) then import is possible.

Note that an author session is NOT the same as a group session, which is not
required.

This setting does not apply to API requests, only to /p/$PAD$/import

This change of behaviour is introduced in Etherpad 1.8.3, and cannot be
disabled.
2020-04-14 03:36:13 +02:00
John McLear
f4418149cb import: introduce importMaxFileSize setting. Defaults to 50 MB
From Etherpad 1.8.3 onwards, the maximum allowed size for a single imported
file will always be bounded.

The maximum allowed size can be configured via importMaxFileSize.
2020-04-14 03:36:13 +02:00
muxator
d1ad29a3d1 importexport: improved logging
This is in preparation to the next activities about import/export securization.
2020-04-14 03:36:13 +02:00
muxator
44186edbc5 tests: remove loadSettings.js for backend tests.
The old loadSettings.js was a way of customizing settings upon load, because
the Settings module did not offer this functionality. But it did not work well,
since all the default settings were not loaded.

Let's get rid of loadSettings.js for the bulk of the tests (the "backend"
specs). For the "container" specs, we'll keep it in place until/if we rewrite
Settings.js making it less brittle.
2020-04-14 03:36:13 +02:00
muxator
419f17371c dependencies: upgrade openapi 2.4.0 -> 2.4.1 2020-04-14 03:05:39 +02:00
muxator
02211cb670 dependencies: updated package-lock.json
No changes at all on our side: this is the churn of all the transitive
dependencies that are not pinned, and bubble up here.
2020-04-14 03:04:22 +02:00
muxator
cd28643604 express: document the effect of settings.trustProxy 2020-04-14 01:10:19 +02:00
muxator
83d72d27a4 scroll: replace absolute import with relative one
Fixing this will be useful when we'll want to get rid of require-kernel.

This was introduced by f1fcd16894 ("Add settings to scroll on edition out of
viewport") in 2018-01-03.
2020-04-09 21:09:40 +02:00
translatewiki.net
4699c3e22e Localisation updates from https://translatewiki.net. 2020-04-09 16:00:27 +02:00
muxator
684f374ece runtime: require node >= 10.13.0 LTS
At the moment, NodeJS 10.x is the lowest supported LTS version. NodeJS 8.x is no
longer supported upstream.

Implements #3835.
Planned in #3650.
2020-04-09 04:43:37 +02:00
Chocobozzz
963d12e614 PadManager: use a set instead of an array in padlist
Avoid looping on the array, especially useful if you have many pads.

--HG--
branch : padlist-use-set
2020-04-09 03:39:32 +02:00
Chocobozzz
94ff21e25c PadManager: anchor the addPad regex to the start of the string
This improves the performance a bit, and is more adherent to the logic of the
application.

--HG--
branch : padlist-use-set
2020-04-09 03:39:32 +02:00
Marcin Cieślak
df08883a00 SecurityManager: remove double quotes from session cookie content
Sometimes, RFC 6265-compliant [0] web servers may send back a cookie whose value
is enclosed in double quotes, such as:

    Set-Cookie: sessionCookie="s.37cf5299fbf981e14121fba3a588c02b,s.2b21517bf50729d8130ab85736a11346"; Version=1; Path=/; Domain=localhost; Discard

Where the double quotes at the start and the end of the header value are just
delimiters. This is perfectly legal: Etherpad parsing logic should cope with
that, and remove the quotes early in the request phase.

Somehow, this does not happen, and in such cases the actual value that
sessionCookie ends up having is:

    sessionCookie = '"s.37cf5299fbf981e14121fba3a588c02b,s.2b21517bf50729d8130ab85736a11346"'

As quick measure, let's strip the double quotes (when present).
Note that here we are being minimal, limiting ourselves to just removing quotes
at the start and the end of the string.

Fixes #3819.
Also, see #3820.


[0] https://tools.ietf.org/html/rfc6265
2020-04-09 01:14:51 +02:00
John McLear
08b83ae358 LibreOffice: use "html:XHTML Writer File:UTF8" export method
This yields better conversion results, but requires the previous change,
otherwise there would have been difficulties in locating the temporary file
name.
2020-04-08 22:51:25 +02:00
John McLear
b2ccd0a191 LibreOffice: decouple the extension of the temporary file from its type
In the next commit, we are going to change the conversion method to
"html:XHTML Writer File:UTF8". Without this change, that conversion method name
would end up in the extension of the temporary file that is created as an
intermediate step. In this way, the file extensione will always stay ".html".

No functional changes, hopefully. Only the extension of the temporary file
should change.
2020-04-08 22:51:25 +02:00
John McLear
f6907c5fad contentcollector: remove weird stuff LibreOffice adds to DOM before importing 2020-04-08 22:51:25 +02:00
John McLear
a371deb9d1 ImportHandler: quick & dirty way of being more lax when matching <title>
This change is meant to ease using LibreOffice as converter. When LibreOffice
converts a file, it adds some classes to the <title> tag.
This is a quick & dirty way of matching the <title> and comment it out
independently on the classes that are set on it.
2020-04-08 22:51:25 +02:00
John McLear
babf67175c undomodule: disallow undoing "clear authorship colors"
Clearing the authorship colors of a document with at least two authors, and then
undoing that action caused a disconnect from the pad.
This change disallows undoing clearing authorship colors in order to prevent
the problem from affecting users, and adds the relative test coverage.

This is a change of behaviour, and is documented in the changelog.

Fixes #2802 (sidestepping it).
2020-04-08 15:20:37 +02:00
Paul Tiedtke
79406051fa Settings.js: support newlines in default values when using variable substitution
This allows, among other things, to correctly support the configuration of
defaultPadText in Docker via an environment variable.
2020-04-07 04:32:37 +02:00
John McLear
3872690715
ace2_inner: remove Chrome specific hack
This code was specific for older Chrome versions. It can be simplified now.

Fixes #3487
2020-04-07 03:47:46 +02:00
John McLear
8987c5d813 dependencies: upgrade uglify-js 2.6.2 -> 3.8.1 and adapt Minify
This was a major update that required code changes.
2020-04-03 00:05:15 +00:00
muxator
a286f32c2a dependencies: remove object.values
This should have been part of 09949c242a ("node8: we no longer need to use a
shim for Object.values in stats.js")
2020-04-07 03:15:10 +02:00
muxator
a5ed0b524b dependencies: use fixed versions in package.json
We want to track dependencies as explicitly as possible.
2020-04-07 03:04:23 +02:00
Viljami Kuosmanen
3edd727a94 customError: rewrite the module using class syntax
The previous syntax caused a deprecation warning on Node 10.
However, due to the very old version of log4js Etherpad is currently using,
customError objects are going to be displayed as { inspect: [Function: inspect] }.

This needs to be addressed later, updating log4js.

Fixes #3834.
2020-04-07 02:03:17 +02:00
muxator
4ef59bbda0 api: in getStats(), directly rewrote activePads as an expression
Instead of creating an empty Set and then mutate it.
2020-04-04 22:03:46 +02:00
Chocobozzz
82b919fc65 api: add getStats() function 2020-04-04 22:03:46 +02:00
John McLear
eb45934788 remove noise 2020-04-03 11:32:14 +01:00