Commit graph

260 commits

Author SHA1 Message Date
Richard Hansen
7e8de5540f Factor out common URL regular expression code
This also eliminates the differences between the regular expressions.
2020-12-14 07:03:17 +00:00
Richard Hansen
e247c716c2 editor: Add argument to suppress SonarCloud error
This also makes it easier for devs to understand the expected function
signature.
2020-11-24 20:06:12 +00:00
Richard Hansen
d24306ea6a editor: Delete unused isTimeUp argument
This fixes a SonarCloud error.
2020-11-24 20:06:12 +00:00
Richard Hansen
ed7ba64635 editor: Delete unused optModFunc argument 2020-11-24 20:06:12 +00:00
Richard Hansen
d0114d4ac2 editor: Delete commented-out code 2020-11-24 20:06:12 +00:00
Richard Hansen
bb722763d0 editor: Delete dead code
This silences some SonarCloud errors.
2020-11-24 20:06:12 +00:00
Richard Hansen
8e5fd19db2 lint: Run eslint --fix on src/ 2020-11-24 20:06:12 +00:00
Richard Hansen
0625739cb8 lint: Declare variables above their first use
This makes it possible to convert from `var` to `let` without getting
ReferenceErrors.
2020-11-24 20:06:12 +00:00
Richard Hansen
7df3ded66f lint: Put opening brace on same line as function
Normally I would let `eslint --fix` do this for me, but there's a bug
that causes:

    const x = function ()
    {
      // ...
    };

to become:

    const x = ()
    => {
      // ...
    };

which ESLint thinks is a syntax error. (It probably is; I don't know
enough about the automatic semicolon insertion rules to be confident.)
2020-11-24 20:06:12 +00:00
Richard Hansen
98de2b0899 Use contentEditable for all browsers
This makes it possible to disable `contentEditable` for certain
elements in some circumstances (e.g., on links so that users can click
on them normally).
2020-11-03 19:02:01 +00:00
Richard Hansen
5e2a27a182 Replace setClassPresence(x, ...) with x.classList.toggle(...) 2020-11-03 19:02:01 +00:00
Richard Hansen
4594608c04 Delete commented-out code 2020-11-03 19:02:01 +00:00
Richard Hansen
193028702d pad: Don't paste when middle-clicking on a link 2020-10-25 07:06:29 +00:00
John McLear
cb5fcbb74e
editor: allow paste into links (#3802) 2020-10-24 16:59:03 +01:00
Sebastian Castro
818194da90
editor/performance: Fix performance for large pads (#4267)
* Fix line numbers top padding

This old rule was conflicting with new css rules introduced in 1.8.4

* Fixes #4228 Performance degradation for long pads 

Due to layout trashing when calculating new heights
2020-09-08 14:52:26 +01:00
John McLear
c5584fb5b4
editor: outdent on ol removal (#4088) 2020-06-07 09:51:12 +01:00
John McLear
2cd3dccc4d Revert "Revert "Revert "editor: ul/ol/li - outdent on ol and ul button press"""
This reverts commit fd3980133d.
2020-06-06 20:51:17 +00:00
John McLear
fd3980133d Revert "Revert "editor: ul/ol/li - outdent on ol and ul button press""
This reverts commit 82fb6ddc99.
2020-06-06 20:38:08 +00:00
John McLear
82fb6ddc99 Revert "editor: ul/ol/li - outdent on ol and ul button press"
This reverts commit fc88f12bba.
2020-06-06 18:34:51 +00:00
John McLear
fc88f12bba
editor: ul/ol/li - outdent on ol and ul button press 2020-06-05 20:00:21 +01:00
Sebastian Castro
7aa7e02e27
Various UI improvement (#4017) 2020-06-02 10:25:43 +01:00
John McLear
00b6a1d9fe
Remove top console logs to stop hosted iFrames being broken. 2020-05-29 12:56:03 +01:00
Sebastian Castro
9587c1c673 ui: change a bit the architecture of sidediv line number
So we can easily customize with plugins, such as ep_author_neat
2020-05-03 22:36:14 +02:00
Sebastian Castro
a522db3ef4 colibris: do not color link with primary color when author color are on
Change link color to blue
Still color the link the authorship have been cleared
closes #3960
2020-05-03 22:36:14 +02:00
muxator
1bd595fdc7 ace2_inner: prefix all logging statements: "console.*" -> "top.console.*"
For reference, see:
https://github.com/ether/etherpad-lite/pull/3915#issuecomment-617681463
2020-04-22 22:19:40 +02:00
John McLear
ffa7244e81 ace2_inner: close all gritters when hitting escape key 2020-04-22 01:51:59 +02:00
John McLear
51e40ddbc9 ace2_inner: when atext.text is "", replace with "\n"
The server is fine with atext.text being an empty string, but the front end is
not, and crashes.

It is not clear if this is a problem in the server or in the client code, and
this is a client-side hack fix. The underlying problem needs to be
investigated.

See for reference:
- https://github.com/ether/etherpad-lite/issues/3861
2020-04-20 00:49:50 +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
41d67b9fa3 css: disable changing opacity of chatbox when writing on bottom of page 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
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
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
Chocobozzz
0889a1313d referer: do not send referrer when opening a link
This change augments what was already done in 54e0f2de5b (PR with discussion
at #3636).

For documentation about the meaning of "noopener, noreferrer", see:
https://developer.mozilla.org/en-US/docs/Web/API/Window/open#Window_functionality_features
2020-03-31 10:02:46 +02:00
muxator
b34fc2de2b use Date.now() instead of new Date().getTime()
This is documented to be more performant.

The substitution was made on frontend code, too (i.e., the one in /static),
because Date.now() is supported since IE 9, and we are life supporting only
IE 11.

Commands:
  find . -name *.js | xargs sed --in-place "s/new Date().getTime()/Date.now()/g"
  find . -name *.js | xargs sed --in-place "s/(new Date()).getTime()/Date.now()/g"

Not done on jQuery.
2019-02-26 23:25:15 +01:00
Sebastian Castro
2ce195747b skins: Fixes #3510 show/hide line numbers 2018-11-15 11:34:32 +01:00
Sebastian Castro
23eb1701ed ace2_inner: fix first line number position
Preparatory work for introducing colibris skin
2018-11-08 21:55:58 +01:00
Luiza Pagliari
58c3154769
[fix] Ignore default line attribs when detecting edges of changeset (#3420)
When comparing original content with the changes made by the user, we
need to ignore some line attribs that are added by content collector,
otherwise we would consider the change started on the first char of the
line -- the '*' that is added when line has line attribs.

In order to be able to handle both #3354 and #3118, we need to take into
account both the styles attribs (to fix #3354) and the line attribs
defined by any of the plugins (to fix #3118), but we can ignore those
extra line attribs that are added by Etherpad and do not add any
functionality (`'lmkr', 'insertorder', 'start'`).
2018-07-09 17:44:38 -03:00
Mantary
2be873e3c7 Use keydown instead of keypress on Firefox. 2018-07-01 12:05:46 +02:00
Luc Didry
b0da9a579d Fix numbering line when plugin add padding-top (like ep_page_view) 2018-03-25 19:24:52 +02:00
Joas Souza
454f539561 Select formatting button on selection (#3301)
[feat] Select button when selection is on formatted text
2018-01-04 12:28:00 -02:00
Joas Souza
f1fcd16894 Add settings to scroll on edition out of viewport (#3282)
* Add scroll when it edits a line out of viewport

By default, when there is an edition of a line, which is out of the
viewport, Etherpad scrolls the minimum necessary to make this line
visible. This makes that the line stays either on the top or the bottom
of the viewport. With this commit, we add a setting to make possible to
scroll to a position x% pixels from the viewport. Besides of that, we
add a setting to make an animation of this scroll.
If nothing is changed on settings.json the Etherpad default behavior is
kept
2018-01-03 19:57:28 -02:00
Luiza Pagliari
b6cb46271b Merge pull request #3182 from storytouch/fix/do_not_hide_force_reconnect_modal
Improvements on modals and "force reconnect" messages
2017-05-29 11:05:37 -03:00
Luiza Pagliari
0cb8d31e95 [fix] Have one setting for each shortcut to create ordered list
This is an adjustment to #2891.
2017-05-11 14:56:09 -03:00
Luiza Pagliari
97038c2183 [fix] Fix shortcut enabling flag for 'ESC'
This is an adjustment to #2891.
2017-05-11 12:36:20 -03:00
Luiza Pagliari
cf686282ef Do not use cookie for pad shortcuts
Users still cannot choose which shortcuts they want to enable/disable,
so it does not make sense (yet) to have a cookie with that preference.

This can be reverted once we create an UI to change shortcuts, but
PLEASE PLEASE PLEASE do not read the cookie every time handleKeyEvent is
called!!!

This is an adjustment to #2891.
2017-05-11 12:26:14 -03:00
Luiza Pagliari
1ebcf0dc47 Merge pull request #2891 from bhldev/padShortcutDisable
Added pad shortcut disabling feature to settings.json
2017-05-11 11:29:25 -03:00
Luiza Pagliari
4eec3763b4 [fix] Close modals when user clicks both on pad inner and outer
Also: split tests for automatic reconnection and regular modal tests.
2017-05-04 11:22:18 -03:00
Luiza Pagliari
b2d9f57338 [fix] Consider line attribs of plugins when building changesets
When checking the places on text that are identical between content
before and after a changeset, we were considering only the standard
(Etherpad-core) attributes, and not taking into account attributes
created by the plugins. One consequence was that the '*' marker of lines
with line attribs were being kept, even when the new lines have
different line attribs. See #3118 for more details.

Fix #3118.
2017-01-12 12:42:56 -02:00
Dan Bornstein
a3765d9785 Account for any top margin on the first line.
Without this change, a top margin on any element on the first line of pad
content would throw off the alignment of line numbers. The default stylesheet
doesn't define any elements with top margins, but plugins might. (This is also
explained in a code comment.)

In order to see the problem, add the following clause to `iframe_editor.css`
(before incorporating this commit):

    #innerdocbody > :first-child {
      margin-top: 100px;
    }
2016-08-30 11:19:28 -07:00
Luiza Pagliari
ea562250d9 Perform drag and drop in one changeset, so UNDO works properly. Fix #3041 2016-08-22 18:44:17 -03:00