Commit graph

635 commits

Author SHA1 Message Date
daniel tygel
1cfde05139 fix .popup CSS to fit in small spaces, like thin iframe 2013-09-17 11:26:11 -06:00
Marcel Klehr
2b46bc40a1 Beautify infinite scroll 2013-09-12 16:37:37 +02:00
Florent Viard
6f478c4de1 Fix to check if searchTerm is not "undefined" before trying to use it to filter search results.
Signed-off-by: Florent Viard <fviard@lacie.com>
2013-09-11 11:36:09 +02:00
Marcel Klehr
c39eb4f443 Make use of the new plural macro 2013-07-23 12:43:30 +02:00
Marcel Klehr
dabba91152 Update html10n.js 2013-07-23 12:42:55 +02:00
Dave Longley
3a47e719d4 Make pads with long lines usable with chrome.
- Do not use incorpIfQuick on keyup because it's not ever quick
  on chrome. Calling incorpIfQuick calls incorporateUserChanges
  which sets a flag on the current callstack state indicating
  that the selection has changed (since something was typed).
  Whenever this flag is set, the event handler will run code
  to update the selection (and possibly scroll the view as
  well), which is a very costly operation in webkit browsers.
  Instead let the user changes be incorporated by the idle worker,
  scheduling it to run ASAP on keyup. This isn't a perfect
  solution, but may make pads running on webkit browsers more
  usable with otherwise fairly unnoticeable changes in the UI.
2013-07-14 01:51:39 -04:00
j@mailb.org
9dd6471921 Add userLeave hook 2013-06-17 15:53:01 +02:00
j@mailb.org
bc5dc74f90 pass pad in postAceInit hook
no way for plugins to access current pad otherwise.
2013-06-17 15:52:51 +02:00
j@mailb.org
a554552bed Simpify CSS for sticky chat 2013-06-17 14:47:28 +02:00
John McLear
ae78c6731d Merge pull request #1811 from clkao/author-style-hook
Document author style hook and provide outer_ace dynamic css manager
2013-06-15 00:17:09 -07:00
Chia-liang Kao
f31db205da allow cssmanager to manage outer_ace 2013-06-15 01:38:46 +08:00
Kyle Kelley
82de797642 Only kept URL schemes which have an RFC standard 2013-06-12 12:31:38 -05:00
Kyle Kelley
b4f155c028 Cleanup gophers 2013-06-12 11:20:36 -05:00
Chia-liang Kao
548f31a46a new hook: aceSetAuthorStyle 2013-06-06 13:03:40 +08:00
Chia-liang Kao
eae9faa28c refactor setAuthorStyle 2013-06-06 12:30:48 +08:00
Marcel Klehr
90d1598688 Merge pull request #1751 from goldquest/dev_IE8-fix
Fixing IE8 errors
2013-05-08 07:19:15 -07:00
Brian Emerick
e7d8f124ad Issue #1625: Fix to client-side-induced changeset spamming.
THE BUG - HIGH LEVEL:
- When client A sends out an attribute change, client B applies that change to itself but
  also thinks that it made the change itself, which is incorrect. This means that when client B
  next makes a change, he will send out that he made the attrib change that A actually made.
- Ex: Have 2 clients on the same pad. Have A apply bold on some text. Next, have B type a character.
  B will broadcast that it both added a character AND applied bold, when in reality it did NOT
  apply bold at all, that change was done by the other client and this client incorrectly adopted it as its own.
- This root bug behavior results in clients continuing to think that they each made the other client's change,
  thus resulting in an infinite loop of changeset spamming that bogs down clients and harms server stability.

THE BUG - IN DEPTH:
- The root issue is in the way that Changesets are combined in Changeset.follow(). Specifically, in the case of a
  changeset with ONLY new attrib changes (no text changes) being merged with an identity changeset (has no ops).
- In this case, Changeset.follow() copies the ops of the new CS and fully overrides the other CS.
- applyChangesToBase invokes Changeset.follow to determine the final client document CS state after applying the new CS.
  If the final client document CS state is NOT the identity CS, then the client broadcasts that it made a change.
- When client A changes just attribs, client B's applyChangesToBase calls Changeset.follow() and passes client A's
  changeset (attrib change) and Client B's current changeset state (identity).
- As per the noted bug, Changeset.follow() returns client A's changeset as a result, causing client B to adopt
  client A's changeset as its own document state. Thus, client A ends up thinking it has made client B's changes.

THE FIX:
- Changeset.follow() should NOT copy the ops of the new CS passed in if those changes are only attrib changes.
  This allows applyChangesToBase to properly set the client's CS back to the identity after applying an
  external attrib change, instead of incorrectly adopting the external client's changes.
2013-04-24 15:18:25 -07:00
goldquest
98c43aff43 fixed spacing 2013-04-17 18:17:14 +02:00
John McLear
f478f99995 Merge pull request #1750 from ether/fix/authorship-once-and-4-all
Fix authorship sanitization
2013-04-17 08:13:22 -07:00
goldquest
896f72311f use document, not doc 2013-04-17 16:51:54 +02:00
goldquest
566034ddf0 IE8 don't knows the Array.forEach function (simple version fix) 2013-04-17 16:51:43 +02:00
goldquest
b08a6e522f IE8 complains, if catch block is missing 2013-04-17 16:51:21 +02:00
Marcel Klehr
146c75e703 Remove console.log in content collector
fixes #1731
2013-04-17 16:37:45 +03:00
Marcel Klehr
560fd55bf2 Fix authorship sanitization
author colors wouldn't get disttributed, if their id was greater than 9
(due to apool encoding them to base 36)
2013-04-17 15:24:40 +02:00
John McLear
4989f56673 undo avoid changeset spam as it breaks functionality 2013-04-15 14:36:25 +01:00
John McLear
c3c7a3d128 Merge pull request #1721 from ether/dont-send-same-cs-spam
temp patch for #1652
2013-04-15 04:20:05 -07:00
John McLear
08b54ef61b Merge pull request #1732 from ether/authorID-2
Correct authorID in Changeset on modification
2013-04-12 06:36:39 -07:00
John McLear
337179fddd remove console logs and cruft 2013-04-12 14:34:07 +01:00
Marcel Klehr
f4de7f6a90 Use a string instead of an array! 2013-04-11 21:23:38 +02:00
Marcel Klehr
49013b18c7 We need to replace all new author attribs with thisSession.author, in case someone copy/pasted or otherwise inserted other peoples changes 2013-04-11 21:12:59 +02:00
John McLear
f9d23767f8 Merge pull request #1709 from ether/keep-list-order-on-paste
When you paste into a numbered list, keep some integrity
2013-04-11 09:07:22 -07:00
John McLear
dc6e2e13fe Merge pull request #1723 from ether/expose-broadcastslider
expose broadcast slider so plugins can interact with it
2013-04-11 09:03:43 -07:00
Marcel Klehr
594757cc47 html10n.js: Don't break in getDirection if language hasn't been set
fixes #1724
2013-04-11 18:51:49 +03:00
John McLear
9581097dc7 remove cruft 2013-04-11 16:39:25 +01:00
John McLear
1fc906017c final css 2013-04-11 16:38:41 +01:00
John McLear
e712f7665d working solution props to dmitryu for making me not be scared of modifying div clases 2013-04-11 16:33:03 +01:00
Marcel Klehr
c755633f09 Update html10n.js to correctly use the console.log shim
fixes #1724
2013-04-10 17:56:09 +02:00
John McLear
8836981e32 expose broadcast slider so plugins can interact with it 2013-04-09 15:55:14 +01:00
John McLear
90c5b26e89 keep integrity on paste and better styling but new lists dont reset counter 2013-04-09 14:29:55 +01:00
John McLear
2e76bd4e50 working but then create a second list, it will be stupid, SIGH 2013-04-09 01:22:09 +01:00
John McLear
7885c410b5 Merge branch 'develop' of github.com:ether/etherpad-lite into keep-list-order-on-paste 2013-04-09 00:52:04 +01:00
John McLear
bfa233ba04 kudos to quenenni for some working CSS 2013-04-09 00:46:13 +01:00
John McLear
70a25964b6 make sure elements are supported, still doesn't assign numbers properly 2013-04-08 23:32:04 +01:00
John McLear
49cff88a48 semi working 2013-04-08 23:03:19 +01:00
John McLear
7098ba49f3 Merge pull request #1722 from mluto/remove-top-console-log-in-collab-client
use `parent.parent` instead of `top` in `collab_client.js`
2013-04-08 14:09:36 -07:00
mluto
dfc49df52d use parent.parent instead of top in collab_client.js, since top breaks embedding when a pad is embedded (same origin policy) 2013-04-08 22:58:34 +02:00
John McLear
bf93500214 some polish for a turd 2013-04-08 19:50:52 +01:00
John McLear
946289c221 temp patch for 1652 2013-04-08 19:46:45 +01:00
John McLear
7728d5b321 remove draggable which was used for dragging users in the userbox 2013-04-08 17:23:03 +01:00
John McLear
12bc98af7e Merge pull request #1716 from ether/only-redraw-existing-lines
only try to redraw the line height of lines that exist..
2013-04-08 08:44:48 -07:00