Commit graph

382 commits

Author SHA1 Message Date
jenkins-bot e1eb983d51 Merge "parser: Code quality tweaks" 2020-08-20 20:01:03 +00:00
Bartosz Dziewoński 84cb9d1dca parser: Code quality tweaks
Do things in a more intuitive order, avoid some repetition,
rename a vaguely named variable.

Change-Id: Ic1a0bb54134682eaf126231e04eb67847d6a5da6
2020-08-20 20:52:42 +02:00
jenkins-bot 5f8214a2e4 Merge "parser: Fix comment ranges when timestamp has entities" 2020-08-20 12:10:43 +00:00
jenkins-bot 1159172e32 Merge "Fix crash when trying to mention invalid usernames" 2020-08-18 15:35:29 +00:00
jenkins-bot 470c630662 Merge "Revert new reply API (again)" 2020-08-17 20:22:58 +00:00
Bartosz Dziewoński e0312957e6 Fix crash when trying to mention invalid usernames
Change-Id: I1e7213c38067e3c3107752705c4d3e4ed64a9258
2020-08-16 22:50:32 +02:00
jenkins-bot b31c9ae7fb Merge "Allow the mention prefix to be configured via a message" 2020-08-16 19:17:13 +00:00
Bartosz Dziewoński 4d7c98b97c Revert new reply API (again)
Causes page corruption, in a new way we haven't seen before.

* Revert "Move page updating logic to controller.js"
  This reverts commit 54fdc6de06.
* Revert "ReplyWidget: Move clear methods from #teardown to #clear"
  This reverts commit 9b811a94e0.
* Revert "ApiDiscussionToolsEdit: Do not pass 'basetimestamp'"
  This reverts commit 7de5938a6f.
* Revert "Use DOMCompat::getOuterHTML instead of doc->saveHTML()"
  This reverts commit 7b2448d2f0.
* Revert "CommentController: Remove remains of client-side edit conflict handling"
  This reverts commit 2d038af705.
* Revert "Restore error message for when comment is deleted while replying"
  This reverts commit 655c0526d6.
* Revert "Use transcluded from API to avoid ever fetching Parsoid DOM in client"
  This reverts commit 9d0fc184fe.
* Revert "Create a 'transcludedfrom' API endpoint"
  This reverts commit 5d8f3b9051.
* Revert "Edit API for replies"
  This reverts commit 8829a1a412.

Bug: T259855
Change-Id: I6419408c6194ec0afa6b8ee604b12c1a24c6ac7b
2020-08-13 20:19:29 +02:00
Ed Sanders 54fdc6de06 Move page updating logic to controller.js
Change-Id: I9cd11f49a9dd7bf9c6aa034359244c3a21f459e8
2020-08-13 11:59:41 +01:00
Ed Sanders 9b811a94e0 ReplyWidget: Move clear methods from #teardown to #clear
Change-Id: Ieb02f57d31579ac9c3ee2f20f07f9107e70348d4
2020-08-13 11:11:08 +01:00
Ed Sanders cc8b43b678 Allow the mention prefix to be configured via a message
Bug: T250332
Change-Id: I83c59fc665bbfe1027149bcb1cbce3f69d90c7ff
2020-08-12 18:45:25 +01:00
Bartosz Dziewoński 375bfe028e parser: Fix comment ranges when timestamp has entities
Previously, parser would output offsets that don't exist in their
containers, because we were pretending that entities are parts of
their neighboring text nodes.

Turns out it's much easier to do it right when going backwards.

Change-Id: I9bccca2d403f1a976ae517449989170cdd99721e
2020-08-11 20:41:06 +02:00
jenkins-bot b681eec8e4 Merge "Allow reply widget header and footer to wrap when it's narrow" 2020-08-10 22:27:51 +00:00
jenkins-bot 4d4722a6ab Merge "Fix indentation level when replying to comments with mixed indentation" 2020-08-10 22:27:44 +00:00
jenkins-bot 7a18cc8902 Merge "Always use ':' (<dl><dd>) for indentation of replies" 2020-08-10 22:27:42 +00:00
Bartosz Dziewoński 2d038af705 CommentController: Remove remains of client-side edit conflict handling
In commit 8829a1a412 we kept this code
when adding the reply API, but on second thought it doesn't actually
make sense.

The reply API should never fail with an edit conflict normally, since
it makes the edit on the latest version of the page. If it does fail,
I think it's better to just show the error message. Current behavior
is to retry, and if that doesn't actually solve the problem, this ends
up in an infinite loop.

Bug: T252558
Change-Id: I5e0dcb2c42e5de4f18e99b8a761ca048a430b31e
2020-08-10 20:27:57 +02:00
jenkins-bot 9e7287d233 Merge "Do not include .dt-init-replylink-buttons in printouts" 2020-08-10 17:43:02 +00:00
Ed Sanders d43d66a5a4 Username suggestion header
Bug: T252084
Depends-On: Ie57dbe76725cc7d4c9a1c959623349ad707d0b88
Change-Id: I5e8b7582199d6b5674bdf8e9328c881a8c7c7673
2020-08-10 17:34:04 +00:00
Martin Urbanec deb3846281 Do not include .dt-init-replylink-buttons in printouts
Note: This patch was not tested.

Bug: T260071
Change-Id: I6bab50619cf6d2852e491877db95261982ff81a6
2020-08-10 17:55:08 +02:00
Bartosz Dziewoński 74560f216e Allow reply widget header and footer to wrap when it's narrow
The footer was already laid out using flexbox and just required some
CSS tweaks to enable wrapping.

The header required some DOM changes, now also uses flexbox, and wraps
in a similar manner.

Bug: T259320
Change-Id: I6f6a86932a108037bf1d70f077c372654318be26
2020-08-07 20:25:23 +00:00
Esanders c26ca107db Re-apply new reply API patches
This reverts commit 96953647c3.

* Re-apply "Edit API for replies"
  This applies commit 8829a1a412.
* Re-apply "Create a 'transcludedfrom' API endpoint"
  This applies commit 5d8f3b9051.
* Re-apply "Use transcluded from API to avoid ever fetching Parsoid DOM in client"
  This applies commit 9d0fc184fe.
* Re-apply "Restore error message for when comment is deleted while replying"
  This applies commit 655c0526d6.

Change-Id: Id20d21899f87464636022aa0683f8c03e0060117
2020-08-07 21:31:38 +02:00
Bartosz Dziewoński 96953647c3 Revert new reply API
Causes page corruption.

* Revert "Restore error message for when comment is deleted while replying"
  This reverts commit 655c0526d6.
* Revert "Use transcluded from API to avoid ever fetching Parsoid DOM in client"
  This reverts commit 9d0fc184fe.
* Revert "Create a 'transcludedfrom' API endpoint"
  This reverts commit 5d8f3b9051.
* Revert "Edit API for replies"
  This reverts commit 8829a1a412.

Bug: T259855
Change-Id: I98036f14dd900b51f20e98696e31b9b618eceee1
2020-08-07 18:18:21 +02:00
Bartosz Dziewoński 31b26a5bec Fix indentation level when replying to comments with mixed indentation
When adding a reply, we take a node at the end of the previous comment,
compare that comment's indentation level to the expected indentation level
of the reply, and add (or remove) that number of wrapper lists.

The existing code did not consider that comments may have lists within
them, and so the indentation of that node may not match the indentation
of the comment.

Bug: T252702
Change-Id: Icc5ff19783d2b213bff99f283cb0599a8b5c1ab4
2020-08-06 01:25:33 +02:00
Bartosz Dziewoński a4ffdd37de Always use ':' (<dl><dd>) for indentation of replies
Previously we preferred that, but used '*' (<ul><li>) when the parent
comment or the previous reply also used it.

Bug: T252708
Change-Id: I3abf606da6693905764f1be745fad999fdf57fbe
2020-08-04 23:37:00 +02:00
Ed Sanders 3ea1a721be Swap toolbar and mode switcher
Bug: T257280
Change-Id: I436da21ea038ddf369f82c58756342b38d9b3b8a
2020-07-31 20:12:05 +00:00
jenkins-bot 3e813316b0 Merge "Restore error message for when comment is deleted while replying" 2020-07-31 15:02:55 +00:00
jenkins-bot 52845986c1 Merge "Log when editor switching is prevented" 2020-07-30 22:51:56 +00:00
Bartosz Dziewoński 655c0526d6 Restore error message for when comment is deleted while replying
Follow-up to 9d0fc184fe.

Change-Id: I4aea79259a25dbe85dc359edebedf9174ca9e0fc
2020-07-28 21:59:10 +02:00
Bartosz Dziewoński 80c58fe356 Do not auto-add "Mention a user" to "Insert" menu
Bug: T259039
Change-Id: I831b47d7a2192df3bc0c460eca9ef944661deb40
2020-07-28 21:42:33 +02:00
David Lynch 6cf2f9ac56 Log when editor switching is prevented
feature: editor-switch
action: dialog-prevent-table-show / dialog-prevent-template-show /
dialog-prevent-extension-show

Bug: T257501
Change-Id: Id0704c082d98504b84795c38a2f4ff372f8c51da
2020-07-28 12:19:36 -05:00
jenkins-bot 956039e7e2 Merge "Use transcluded from API to avoid ever fetching Parsoid DOM in client" 2020-07-27 23:56:15 +00:00
jenkins-bot 740e6eb174 Merge "Edit API for replies" 2020-07-27 23:56:10 +00:00
Ed Sanders 9d0fc184fe Use transcluded from API to avoid ever fetching Parsoid DOM in client
Bug: T252558
Depends-On: I015ac183a0c25dafb9b95c577edd4ef59c112d43
Change-Id: I6090c99429bf6eceb57870e3d449de6754063353
2020-07-28 00:50:15 +02:00
Ed Sanders 8829a1a412 Edit API for replies
Bug: T252558
Change-Id: Iac43b5bb0315ceaad7698fb2b708b7c3cde403f8
2020-07-27 21:19:58 +01:00
jenkins-bot 377a1159ae Merge "Add ime-position-inside ULS class to reply widgets" 2020-07-24 22:50:45 +00:00
jenkins-bot 12ddb69c9e Merge "Better handle HTML comments following replies" 2020-07-23 16:45:36 +00:00
Bartosz Dziewoński 31e371e944 Better handle HTML comments following replies
Bug: T257651
Change-Id: I07e995beca4f031be062958ff7d75727afa8e606
2020-07-23 18:18:21 +02:00
Ed Sanders 0dbda50781 Make getNativeRange a method of ThreadItem
Change-Id: Icdf9e4560ca6116f35fecf034a4e059dc7ed893e
2020-07-22 21:56:48 +01:00
jenkins-bot 765a1d27bc Merge "Improve detecting template-generated multi-line comments" 2020-07-22 15:04:00 +00:00
jenkins-bot 889de1bcdf Merge "Improve detecting typed signatures" 2020-07-22 01:43:40 +00:00
jenkins-bot 7eff952cb2 Merge "Signature handling in visual mode" 2020-07-22 01:42:47 +00:00
jenkins-bot 3db53080e8 Merge "Don't allow switching when unsupported content used" 2020-07-21 23:14:08 +00:00
Bartosz Dziewoński 80e52e1155 Improve detecting typed signatures
* Remove the existing approach for detecting signatures that only
  worked in source mode; remove autoSignWikitext()

* Use the same approach for auto-signing in source mode as we have
  already used in visual

* In both modes, detect whether the user has already typed a signature
  at the end of their comment in the modifier, and if so, don't add a
  signature

* Add test cases for the detection

Bug: T255738
Change-Id: I791d3035cb1ffc33ce3966d4617a25d08700c35b
2020-07-22 00:00:53 +02:00
jenkins-bot e010dc560c Merge "VisualEditorFeatureUse: trackdebug logging consistent with EditAttemptStep" 2020-07-21 21:51:34 +00:00
jenkins-bot 79195b9fb7 Merge "Refactor CommentParser" 2020-07-21 21:40:29 +00:00
Bartosz Dziewoński 569db3603c Improve detecting template-generated multi-line comments
Bug: T252058
Change-Id: Ic010b8aeff9b177031184f02f92fcdea5280dc36
2020-07-21 22:26:45 +01:00
Ed Sanders a2431fe006 Refactor CommentParser
* Pass rootNode to the constructor
* Rename getters to match CommentItem/HeadingItem/ThreadItem
  value classes.
* Always build the thread tree so CommentItem's always have
  and ID and replies/parent.

Change-Id: I508be9534de59016ff806e3d84edcbb1c76cb0c6
2020-07-20 23:38:10 +01:00
David Lynch 72680471ef VisualEditorFeatureUse: trackdebug logging consistent with EditAttemptStep
The defaults weren't being included in the log output.

Change-Id: I455370cdb40e300efa6f41902b434affd32dc405
2020-07-20 17:26:53 -05:00
jenkins-bot e89f58eddf Merge "Customise abandon edit dialog copy" 2020-07-20 18:29:12 +00:00
jenkins-bot 6dcbaca9c1 Merge "Disable blockquote command" 2020-07-20 17:13:34 +00:00