Commit Graph

1891 Commits

Author SHA1 Message Date
Richard Hansen eae814f5a0 pad_utils: New `warnWithStack()` function 2021-11-14 04:15:10 -05:00
Richard Hansen 1bbe0d9215 Changeset: Use `in` check to help TypeScript narrowing 2021-11-13 17:44:38 -05:00
Richard Hansen 4f4a775d9e Changeset: Improve handling of missing attribute in old pool 2021-11-13 17:44:38 -05:00
Richard Hansen b62534a6b2 Changeset: Use Maps to simplify attribute processing 2021-11-13 17:44:38 -05:00
Richard Hansen 9401ae876b Changeset: Sort attributes by keys, not full string rep 2021-11-13 17:44:38 -05:00
Richard Hansen 1cad5d881a Changeset: Use `for...of` iteration to improve readability 2021-11-13 17:44:38 -05:00
Richard Hansen 6d5b737140 Changeset: Replace `.apply()` with spread operator 2021-11-13 17:44:38 -05:00
Richard Hansen 9c17b03660 Changeset: Require Op opcode and attribs to be strings 2021-11-13 17:44:38 -05:00
Richard Hansen 0ae8fb1441 Changeset: Use string concatenation instead of array join
People report that string concatenation is faster. Also, I think it's
more readable.
2021-11-13 17:44:38 -05:00
Richard Hansen 097f2623c6 Changeset: Add sanity checks to `slicerZipperFunc()` 2021-11-13 17:44:38 -05:00
Richard Hansen efeb69b4ea Changeset: Simplify `slicerZipperFunc()` 2021-11-13 17:44:38 -05:00
Richard Hansen 42d4d8269c Changeset: Refactor `appendATextToAssembler()` for readability 2021-11-13 17:44:38 -05:00
Richard Hansen ca5bdddc59 Changeset: Use `break` instead of `done` variable 2021-11-13 17:44:38 -05:00
Richard Hansen 44d99733c6 Changeset: Check `.hasNext()` before calling `.next()` 2021-11-13 17:44:38 -05:00
Richard Hansen 1955e7b263 Changeset: Replace output params with return values
This improves readability and reduces the chances of introducing a
bug.
2021-11-13 17:44:38 -05:00
Richard Hansen 94f5507671 Changeset: Improve `copyOp()` API
Use `Object.assign()` to implement `copyOp()`, which simplifies the
code and provides a return value. Also make the second op optional.
2021-11-13 17:44:38 -05:00
Richard Hansen 02ef78e174 Changeset: Make sure `opOut` is cleared
`slicerZipperFunc()` previously assumed the provided `opOut` argument
was a null Op. Enforce this by clearing it at the beginning.
2021-11-13 17:44:38 -05:00
Richard Hansen 18a6b7279c Changeset: Only pass strings to `parseNum()` 2021-11-13 17:44:38 -05:00
Richard Hansen 7ec0d5f385 Changeset: Remove unnecessary `linesApplySplice()` 2021-11-13 17:44:38 -05:00
Richard Hansen 37bb297e76 Changeset: Improve logged error message
I saw this on a production system today and wanted more information.
2021-11-13 17:44:38 -05:00
Richard Hansen 7fa9b07116 Changeset: Invert conditions to improve readability 2021-11-13 17:44:38 -05:00
Richard Hansen b29e59419e Changeset: Factor out duplicate code 2021-11-13 17:44:38 -05:00
Richard Hansen 4a65c2c8ff Changeset: Unexport unnecessarily exported functions
These functions aren't used outside of this file.
2021-11-13 17:44:38 -05:00
Richard Hansen 085bc8cbb3 plugins: Don't create `.ep_initialized` files
These files cause problems with Docker images and read-only
directories/mounts, and they have dubious value (any install-time
setup should instead be done at startup).
2021-11-13 17:43:33 -05:00
Richard Hansen 0f7c5a8782 lint: Use `window.` to avoid global declaration 2021-11-12 23:45:05 -05:00
webzwo0i 8b73b911c9 Changeset: Use string templates
Co-authored-by: Richard Hansen <rhansen@rhansen.org>
2021-11-09 01:05:53 +01:00
Richard Hansen cc688f7367 ace: Delete dead code 2021-11-07 23:24:39 -05:00
Richard Hansen 5283bfc14a linestylefilter: Delete unused arguments 2021-11-07 23:24:39 -05:00
Richard Hansen dd8ec4e291 Changeset: Remove unused `lastIndex()` method from op iterator 2021-11-07 23:24:39 -05:00
Richard Hansen 0fd2a46783 Changeset: Remove unused start index parameter for `opIterator()` 2021-11-07 23:24:39 -05:00
Richard Hansen 43dae4cb1d Changeset: Delete unused index parameters in `applyZip()` 2021-11-07 23:24:24 -05:00
Richard Hansen b3215992c9 changesettracker: Delete IE8 compatibility code 2021-11-07 22:42:31 -05:00
Richard Hansen ad6de52eb2 Changeset: More JSDoc comment improvements 2021-11-07 22:42:31 -05:00
Richard Hansen 56cb08f4c5 pad: Pass color and display name in `CLIENT_READY` 2021-11-05 18:14:27 -04:00
Richard Hansen 7a0d8cb52e pad: Use URLSearchParams to process search params
Also unexport `getUrlVars` because it isn't used outside the file.
2021-11-05 18:14:27 -04:00
Richard Hansen 6bf8142221 chat: Translate newly created message entries 2021-11-01 04:56:46 -04:00
Richard Hansen 99b7bdd176 chat: Set timestamp CSS `font-size: smaller;` 2021-11-01 01:54:29 -04:00
Richard Hansen 51907015ed chat: Fix gritter duration 2021-11-01 01:54:29 -04:00
Richard Hansen 23f963c9fe chat: Improve name mention detection 2021-11-01 01:54:29 -04:00
Richard Hansen 9fbd2e5c3d chat: New `chatSendMessage` client-side hook 2021-11-01 01:54:28 -04:00
Richard Hansen 4c2f7f9a11 chat: Rename `userId` to `authorId`, `userName` to `displayName` 2021-11-01 01:54:28 -04:00
Richard Hansen 0f47ca9046 chat: Plumb message object end to end
This will make it possible for future commits to add hooks that allow
plugins to augment chat messages with arbitrary metadata.
2021-11-01 01:54:28 -04:00
Richard Hansen f1f4ed7c58 chat: Allow `chatNewMessage` hook to control rendering 2021-11-01 01:54:28 -04:00
Richard Hansen 2597b940f4 chat: Give `chatNewMessage` hook access to the raw message object 2021-11-01 01:54:28 -04:00
Richard Hansen caac4bf711 chat: Promisify `addMessage()` 2021-11-01 01:54:28 -04:00
Richard Hansen 3f7f629eeb chat: Scroll down after the `chatNewMessage` hook finishes 2021-11-01 01:54:28 -04:00
Richard Hansen 195a6bd81b chat: Move click handler setup to `init()` 2021-11-01 01:54:28 -04:00
Richard Hansen c8e0916e1a tests: Spy on socket.io messages as early as possible 2021-11-01 01:54:28 -04:00
Richard Hansen d36a37d666 PadMessageHandler: Delete unnecessary `protocolVersion`
We can assume that the client code is always in sync with what the
server expects.
2021-10-30 03:06:57 -04:00
Richard Hansen 80e84636d7 pad: Promisify `handshake()` 2021-10-29 19:38:28 -04:00
Richard Hansen cd4f5ff281 pad: Defer message handling until handshake completes 2021-10-29 19:37:28 -04:00
Richard Hansen be0298290d pad: Move post-handshake code to `_afterHandshake()` 2021-10-29 19:27:33 -04:00
Richard Hansen 9fb754ce3a pad: Initialize pad cookie before starting the handshake 2021-10-29 19:27:33 -04:00
Richard Hansen f6c5ce606e pad: Move UI setup from `handshake()` to `init()` 2021-10-29 19:27:33 -04:00
Richard Hansen bd44a87388 pad: Unexport unnecessarily exported `handshake()` function 2021-10-29 19:27:33 -04:00
Richard Hansen 5cbbcbcee6 pad: Simplify reload after `.etherpad` import
The old "switch to pad" logic looked buggy, and it complicates pad
initialization. Forcing a refresh after importing an `.etherpad` file
isn't much of a UX downgrade.
2021-10-29 19:27:33 -04:00
Richard Hansen e974622561 pad: Use `window.` to avoid ESLint error 2021-10-29 19:27:33 -04:00
webzwo0i d8ca3a693d timeslider scrollTo: fixes wrong line number calculation in case there
are no attribute changes and no length changes
2021-10-29 02:38:29 -04:00
Richard Hansen de3dfb5ce2 AttributePool: Add JSDoc comments 2021-10-24 21:18:56 -04:00
Richard Hansen c98b521539 AttributePool: Use ES6 class syntax 2021-10-24 21:18:56 -04:00
webzwo0i bbc8b29ffd Changeset: Improve JSDoc comments
Co-authored-by: Richard Hansen <rhansen@rhansen.org>
2021-10-24 21:18:56 -04:00
Richard Hansen 788eb86d84 Ace2Inner: Inline code that is unnecessarily inside an IIFE 2021-10-07 19:53:40 -04:00
Richard Hansen 4890cd8972 Ace2Inner: Delete completed TODO comment 2021-10-07 19:53:40 -04:00
Richard Hansen 044f6543a5 lint: Fix ESLint errors (mostly camelcase warnings) 2021-10-07 19:53:40 -04:00
Richard Hansen 34cfff4e4c Changeset: Delete unused code 2021-10-07 19:53:40 -04:00
Richard Hansen eb495e9ea2 Changeset: Move out obsolete code 2021-10-07 19:53:40 -04:00
John McLear c361df52d2 bugfix: Allow selection to start/end before line marker 2021-10-02 02:41:58 -04:00
Richard Hansen 37a33042d2 ace2_inner: Improve rep documentation 2021-10-02 02:10:07 -04:00
webzwo0i 4d8ae3475d Changeset: Add documentation for `textLinesMutator()` 2021-09-30 12:29:24 +02:00
Richard Hansen 4d2839457a CSS: Fix underscore and clear authorship icon alignment 2021-09-26 12:07:56 +02:00
Richard Hansen 7dbd278d1d deps: Bump js-cookie to 3.0.0 2021-08-29 23:36:48 -04:00
Richard Hansen 0d65dc8a44 pad: Add `clientVars` to `postAceInit` hook context
This allows plugins to avoid the `clientVars` global variable.
2021-08-25 14:59:17 -04:00
Richard Hansen fed950e809 ace2_inner: Simplify handler for Ctrl-@ (show authors) 2021-08-16 00:34:30 -04:00
Richard Hansen 88057eade2 ace2_inner: Readability improvements 2021-08-16 00:34:30 -04:00
Richard Hansen bc6428025a ace2_inner: Use for..of iteration to improve readability 2021-08-16 00:34:30 -04:00
Richard Hansen f06307cb4c ace2_inner: Fix for..in iteration
See commit c38c34bef4.
2021-08-16 00:34:30 -04:00
Richard Hansen 2d50a8aa95 ace2_inner: Fix efficiency of `rangeForLine()`
Returning `true` or `false` has no effect when iterating using
`Array.prototype.forEach`. This fixes a bug introduced in commit
b28bfe8e31.
2021-08-16 00:34:30 -04:00
Richard Hansen ca2e008e7b ace2_inner: Move variable declarations to appropriate scope 2021-08-16 00:34:30 -04:00
Richard Hansen bf10e70f2e ace2_inner: Delete unnecessary `currentLine` variable 2021-08-16 00:34:30 -04:00
Richard Hansen 9fc613d362 ace2_inner: Delete unnecessary checks 2021-08-16 00:34:30 -04:00
Richard Hansen a5f9c60a34 ace2_inner: Operate on Elements, not Nodes 2021-08-16 00:34:30 -04:00
Richard Hansen aad75e4661 ace2_inner: Factor out duplicate line number div creation 2021-08-16 00:34:30 -04:00
Richard Hansen 3237f8d123 ace2_inner: Simplify iteration over line number divs 2021-08-16 00:34:30 -04:00
Richard Hansen b238d9610a ace2_inner: Factor out duplicate line height application 2021-08-16 00:34:30 -04:00
Richard Hansen 1b890e3d4d ace2_inner: Replace `lineNumbersShown` with number of children 2021-08-16 00:34:30 -04:00
Richard Hansen 27363bf729 ace2_inner: Add line number divs directly, not via fragment
There's no layout thrashing so the fragment doesn't provide any
benefit.
2021-08-16 00:34:30 -04:00
Richard Hansen e1a024847c ace2_inner: Delete unnecessary `innerdocbody` variable 2021-08-16 00:34:30 -04:00
Richard Hansen 7d807d2fc5 ace2_inner: Delete unnecessary `container` variable 2021-08-16 00:34:30 -04:00
Richard Hansen 4b4584c264 ace2_inner: Delete unnecessary `doc` and `root` variables 2021-08-16 00:34:25 -04:00
Richard Hansen ec63c15a40 ace2_inner: Simplify document body selection 2021-08-16 00:31:09 -04:00
Richard Hansen 11c86e677a ace2_inner: Consistently use `outerWin` and `outerDoc` 2021-08-16 00:31:09 -04:00
Richard Hansen 98c1ba5808 ace2_inner: Use destructuring assignment to simplify 2021-08-16 00:31:09 -04:00
Richard Hansen c7be4f9d2d ace2_inner: Move `sidedivinner` creation to ace.js 2021-08-16 00:31:09 -04:00
Richard Hansen 15b1d4cb75 ace2_inner: Build `sidedivinner` programmatically 2021-08-16 00:31:09 -04:00
Richard Hansen b80295c228 ace2_inner: Combine declaration and initialization 2021-08-16 00:31:09 -04:00
Richard Hansen 7a8edc816b ace2_inner: Replace `initLineNumbers()` with an IIFE 2021-08-16 00:31:09 -04:00
Richard Hansen b5bfff43cf ace2_inner: Delete redundant class assignment 2021-08-16 00:31:08 -04:00
Richard Hansen e581ee01f2 ace2_inner: Formatting improvements 2021-08-16 00:30:50 -04:00
Richard Hansen 0ca5a3459f Timeslider: Install an error handler 2021-08-14 07:44:05 -04:00
Richard Hansen b6fba9d66d Pad: Improve page load error handler
* Install the error handler early.
  * Include stack trace.
  * Remove unnecessary escaping.
  * Improve formatting.
  * Move to a separate script file.
2021-08-14 07:44:05 -04:00