Commit graph

1509 commits

Author SHA1 Message Date
jenkins-bot b384a7ffc6 Merge "LedeSectionDialog: Fix double scrollbars in some cases" 2023-02-16 20:03:12 +00:00
jenkins-bot d3c451097b Merge "Special case opening new topic tool when VE or 2017WTE is open" 2023-02-16 16:47:16 +00:00
Bartosz Dziewoński 4b7ba72c83 LedeSectionDialog: Fix double scrollbars in some cases
There's no need for this PanelLayout to be scrollable, as the dialog
body itself is scrollable, and this is causing an unnecessary
horizontal scrollbar to appear on some pages (for example
https://de.m.wikipedia.org/wiki/Wikipedia_Diskussion:Hauptseite).

Change-Id: I516cae8ca006b57360fe85a2eba099913b38ce84
2023-02-16 01:04:14 +01:00
Bartosz Dziewoński 5af3e90fec Support '&preload=...' etc. in new topic tool when '&dtpreload=1' is set
To avoid affecting existing preload forms, the new topic tool is only
used when the 'dtpreload' query parameter is also set.

Bug: T269310
Change-Id: I4ee024cc4760542790319f302f42b1b2389ac897
2023-02-15 16:39:38 +01:00
Bartosz Dziewoński 55b0167868 ReplyLinksController: Fix teardown failing when reloading
Follow-up to 06919f9444 - applies the
same workaround in more places.

Bug: T329523
Change-Id: I265945b6ba44d735482e51e805319702a239a442
2023-02-13 15:46:58 +01:00
Bartosz Dziewoński 8eadff3b0d Optimize selectors in mobile hacks
See T328452#8587912

Bug: T328452
Change-Id: I584ef836d84cfa52ed003aae217c5c3b4e4ddbdd
2023-02-07 02:56:05 +01:00
Bartosz Dziewoński d0fb22a686 Special case opening new topic tool when VE or 2017WTE is open
Depends-On: Ica75f8334ef32ffbcc59109a46624acdf271847d
Bug: T317035
Change-Id: I87dc4b85df8deae5b16ae30a2ed054bfdcfdaa73
2023-02-06 23:04:10 +00:00
jenkins-bot daff9f6c27 Merge "Special:TopicSubscriptions: Perform unsubscribe asynchronously" 2023-02-06 23:01:01 +00:00
Ed Sanders a00d1b7a87 Hide (un)subscribe buttons when JS disabled
These buttons require JS to do anything. We can consider
providing a fallback action for subscriptions at a later date.

Change-Id: I9da546b2968e06d80c515eb5a05656a462b8201d
2023-02-06 22:36:14 +00:00
Ed Sanders 15a8074002 Special:TopicSubscriptions: Perform unsubscribe asynchronously
Bug: T327662
Change-Id: Ib7f5cf8b075f44ac06c0a014aa1e200ccda8fe26
2023-02-04 14:30:14 +00:00
jenkins-bot f42b6db413 Merge "Always reset ReplyLinksController before re-initializing" 2023-02-02 18:04:11 +00:00
jenkins-bot d7f30dcd19 Merge "Restore autosave for new topic when only title was provided" 2023-02-02 17:57:02 +00:00
jenkins-bot b30256d01b Merge "Fix summary when topic title is changed after restoring from autosave" 2023-02-02 17:56:41 +00:00
jenkins-bot 9a318bdc89 Merge "Remove dtenable API hack" 2023-02-02 17:52:57 +00:00
Ed Sanders a1217913ae Remove dtenable API hack
This hack isn't necessary any more as reply links are always
added and enabled/disabled by CSS.

Change-Id: Ifecdd4299396f6cab7b192cde18d3001b9553f61
2023-02-02 17:20:37 +00:00
Bartosz Dziewoński 579766b5ab Fix detection for the sticky "Add topic" being stuck
This fixes some animations when scrolling.

Change-Id: I5ed4a066436f673732227612c5b393ea47e16c45
2023-02-01 20:09:28 +01:00
Bartosz Dziewoński 52de4b0b1b Fix interaction of "Add topic"/"Read as wiki page" buttons with categories
Bug: T328452
Change-Id: Iabb52c73e4b4a83175d95d8d542ef752f6f961dc
2023-02-01 20:09:28 +01:00
Bartosz Dziewoński 8374094109 NewTopicController: Attach after .mw-parser-output
Bug: T328039
Change-Id: I32b07756f2a967fcbd26b44ebfbcfd5a608e9484
2023-02-01 20:09:28 +01:00
Bartosz Dziewoński b75112f5e2 Tiny CSS simplification
Change-Id: I2b554ae524f36da5c495eb853af027b8ab21ece7
2023-02-01 20:09:28 +01:00
Bartosz Dziewoński 4e69ae1a18 Fix double margin/padding on the mobile lede dialog
Change-Id: Ib5bf882c04d0979728fbfb65b4e9767ddbb4f6d2
2023-02-01 20:09:28 +01:00
Ed Sanders 34a120d53a Look for Vector 2022 sticky header class in new location
This class was moved from <body> to <html> in Id5afe2c60.

Change-Id: Iad64abb02839c376d2f8955a0889f9ff0658a98c
2023-01-31 15:51:12 +00:00
Bartosz Dziewoński 06919f9444 Always reset ReplyLinksController before re-initializing
Previously we only did it when re-initializing after saving a reply
using our tools, but it could happen for a different reason, such as a
NWE edit.

Bug: T317035
Change-Id: Ia8152fc83f74689802f8dbbc20607c9026a2a5ab
2023-01-24 16:42:43 +01:00
Bartosz Dziewoński a5a026ceba Restore autosave for new topic when only title was provided
Bug: T315730
Change-Id: Ib68ebd23d3c4ef8e577023465236b4391b00bf2c
2023-01-24 14:28:17 +01:00
Bartosz Dziewoński 1fb67ef63d Fix summary when topic title is changed after restoring from autosave
Previously, we would restore the title and the summary generated from
it, but we wouldn't restore `prevTitleText`, so we would lose track of
the fact that it was automatically generated, and stop updating it
because of that.

Instead of adding it to the stored data, let's instead stop storing
automatically generated summaries, and tweak the code to support
generating them when restoring.

Bug: T315730
Change-Id: I96420bc0a3e34373190d2c2c0db2e2175ad3156d
2023-01-24 14:28:17 +01:00
Bartosz Dziewoński f292c703ca Remove some px font-size overrides on topic metadata and buttons
After T314714, they are no longer needed for Vector, MonoBook etc. –
the elements will just use the normal body font size.

This changes the font size slightly on some skins (MonoBook, Timeless),
but I think that's okay.

We still want to customize the font-size for mobile (Minerva), and
we can do that with `em` now.

Bug: T325104
Change-Id: I3fab8588b1b0e3a43aac4c32a3610f64fb3d3fb3
2023-01-24 10:21:31 +00:00
Bartosz Dziewoński 88e4956711 Hide "Add topic" footer on talk pages when empty state is shown
We already have code to hide it (added in a98cd369ba),
but this code (added in b132522fa9) made it reappear.

I think this rule was added in the development of that
change when the class was placed on a ButtonWidget,
to override `display: inline-block` on it, but it was
then moved to another element, removing that need.

Bug: T327536
Change-Id: I2a162dde93d04d76f6d5540edf6d3c4719a67f92
2023-01-23 21:16:11 +01:00
jenkins-bot 87d67d4a1c Merge "Use localStorage for auto-save" 2023-01-21 09:58:30 +00:00
Ed Sanders 9d331d0c86 Use localStorage for auto-save
Bug: T218663
Depends-On: Idcf50a527e2386122d077c497477057657824646
Change-Id: I514e5340d8bce3dd10a1142e7cced49edee5c9db
2023-01-21 09:25:55 +00:00
Bartosz Dziewoński 6d8f92a6b2 Tweaks for new heading HTML structure
Bug: T327328
Bug: T327469
Change-Id: I8c7593e98dc677b28925129dda592dbc24106220
2023-01-20 06:23:23 +01:00
jenkins-bot 8facd83609 Merge "Improve handling for comment separators" 2023-01-17 11:48:43 +00:00
jenkins-bot ba2f6ac2cf Merge "Flip the reply button icon on RTL" 2023-01-17 11:47:38 +00:00
jenkins-bot d81886c5ce Merge "Enable collapsible content in mobile talk page lede content" 2023-01-10 16:37:11 +00:00
Bartosz Dziewoński 3a9997d6ea Improve handling for comment separators
* Detect comment separators at the end of comments too
* Consider TemplateStyles associated with ignored templates

This unexpectedly improves a lot of cases other than T313097 too,
mostly where <br> or {{outdent}} was used within a paragraph:
splitting comments that were previously jumbled together, or restoring
content that was previously ignored for apps / notifications.

Bug: T313097
Change-Id: I9b2ef6b760f2ffd97141ad7000f70919aeab7803
2023-01-10 01:59:52 +00:00
Bartosz Dziewoński 2a38098785 Flip the reply button icon on RTL
Bug: T325664
Change-Id: Id254420db317848e4894c9c683a3b27a98931155
2023-01-10 00:38:17 +00:00
Bartosz Dziewoński 360e3584c6 Delay API requests for preloading metadata until user interaction
Instead of doing them right after page load, only do them on
hover/touch/focus, when we can expect that the user is about to
click/tap/activate a reply link, but which lets us start the work a
fraction of a second earlier.

Bug: T325598
Change-Id: Ida4cb70d8e9ab423ad2dabca7258f92e9fca3157
2023-01-06 01:24:00 +00:00
Bartosz Dziewoński af7097f02f Enable collapsible content in mobile talk page lede content
Bug: T323639
Change-Id: I3cfc8e7337172b44156a7f3bed9ff134c0851475
2023-01-03 18:16:15 +00:00
jenkins-bot 8070ce8a57 Merge "a/b test anonymous ID was being reset because of cookie prefixes" 2022-12-22 15:12:25 +00:00
jenkins-bot 477917e7e7 Merge "Only preload getPageData if there's thread data for the page" 2022-12-19 10:08:58 +00:00
David Lynch 013872ae22 Only preload getPageData if there's thread data for the page
This should avoid hitting the API if the DT JS is loaded off of talk
pages. At worst, if this is overly restrictive, later calls should still
load it when someone actually interacts with a reply widget.

Bug: T325477
Change-Id: If898dd4a21f1d2620c5a1e79908647070c441854
2022-12-19 03:03:02 -06:00
David Lynch fcb6468805 a/b test anonymous ID was being reset because of cookie prefixes
Bug: T321961
Change-Id: Ie37d0dbefaf10bf48c32461cd7d5d1b4c7882725
2022-12-16 14:45:07 -06:00
David Lynch 0db7b997f3 Log an event when the lede button is clicked
Bug: T314596
Change-Id: Ifb5c9eb3cfac8b217546d4945e6f39ce38251e1e
2022-12-15 11:27:26 -06:00
jenkins-bot 459554b18c Merge "Use new stable API for subtitle modification" 2022-12-14 04:09:58 +00:00
David Lynch c706562ce9 VisualEnhancements: in some languages put an arrow by the reply button
New config: DiscussionTools_visualenhancements_reply_icon_languages

Config is set up with a provide_default merge strategy so we can remove
items from it quickly if need be.

Bug: T323537
Change-Id: Ib748897a2162bb233000f7364e30b268932f4c4a
2022-12-13 00:11:08 -06:00
Jon Robson fbd951906a Use new stable API for subtitle modification
Bug: T324876
Depends-On: Id8436324e2ae2fd9f488b65b3b7bfc19611870d1
Change-Id: I4b178f67b6718fa9a84827e1804ec4eb1483f735
2022-12-13 01:13:29 +00:00
Bartosz Dziewoński fda9f159f5 Deemphasize "Learn more about this page" link
* Increase selector specificity to make it work
* Tweak colors, they were lighter than intended
* Use color rather than opacity on text to avoid making it blurry
  (opacity disables subpixel rendering)

Bug: T324702
Change-Id: Ie32a7481ea90b983cd33e6eae981d47db8612c9f
2022-12-07 22:13:55 +01:00
Francois Pignon de107bb6a8 Optimize some jQuery selectors
Bug: T324523
Change-Id: I57a86f3f29cd33e93db31338420af15fdb3113b9
2022-12-05 23:56:09 +00:00
jenkins-bot 984f804f17 Merge "Don't collapse the lede section when it has comments" 2022-12-05 19:04:37 +00:00
jenkins-bot 8a6bc91f46 Merge "Consider MediaWiki:Talkpageheader message when adding "Learn more" button" 2022-12-05 19:04:35 +00:00
jenkins-bot e27e5ac55e Merge "Clear pageDataCache whenever re-initializing" 2022-12-02 11:58:45 +00:00
Bartosz Dziewoński 7dc35aa3ad CommentController: Fix 'discussiontoolscompare' polling not stopping
The .always() callback can be called after .teardown(), and would
previously restart the polling.

Bug: T313096
Change-Id: I6e4c0f7d47e13bd4a259282a508afcdf0c1bd949
2022-12-01 21:12:37 +00:00
Bartosz Dziewoński 37fda5e181 Clear pageDataCache whenever re-initializing
Bug: T323661
Change-Id: Ia080f4a8e79551bd16a1ce96f6851a76159d8da7
2022-12-01 21:49:08 +01:00
jenkins-bot 64e5c91970 Merge "Hide buttons for print media" 2022-12-01 15:14:33 +00:00
jenkins-bot db1aa31eed Merge "Remove dd overflow hack" 2022-12-01 15:04:09 +00:00
Bartosz Dziewoński b4475801fd Don't collapse the lede section when it has comments
Bug: T324139
Change-Id: I14e1dae0fef4177f5a6a223bc9b663e99c9f741c
2022-11-30 20:25:22 +01:00
Ed Sanders 7ab0c69f39 Remove support for data-mw-comment
Can be merged once I85ee8e6ed6 has been deployed long enough
for all the caches to have been purged.

Change-Id: Ic9773c2e45a4aa796cb6bca52e58d7db1016a977
2022-11-30 18:31:02 +00:00
jenkins-bot 5a524d0fa3 Merge "Track events for the new comment notice" 2022-11-29 19:40:32 +00:00
Bartosz Dziewoński 74fbe19838 Consider MediaWiki:Talkpageheader message when adding "Learn more" button
We also need to move the code to the other hook to avoid adding it twice now.

Bug: T324046
Change-Id: I186d15f6e6537b47b019c9707d7ae8ef080f4ae2
2022-11-29 18:46:40 +00:00
Ed Sanders 79537c9892 Ignore negative page scroll values on iOS
Bug: T323400
Change-Id: Id37f3da183a08f936c6b6d11ed7307bb9d8bd28b
2022-11-29 14:29:50 +00:00
Bartosz Dziewoński ea2e519b05 Hide buttons for print media
Change-Id: I6f4e5ee66de3a8d62727ae226f3b17a95a0ae2df
2022-11-29 00:36:49 +01:00
jenkins-bot ea54a8facc Merge "Use 'BeforePageDisplay' instead of 'OutputPageBeforeHTML' for once-per-page things" 2022-11-28 15:23:52 +00:00
Bartosz Dziewoński 8452f94cf9 Use 'BeforePageDisplay' instead of 'OutputPageBeforeHTML' for once-per-page things
Also fix a CSS selector to handle content added in multiple
'OutputPageBeforeHTML' hook calls.

Bug: T323376
Bug: T323833
Change-Id: I480d9bf544d61f0cb7bfd04cadfbf053e7e1b70e
2022-11-25 16:12:16 +00:00
jenkins-bot eb9631164d Merge "Place replies outside transclusions, disallow replying to transcluded comments" 2022-11-24 14:00:40 +00:00
Bartosz Dziewoński 46a9a13116 Remove dd overflow hack
No longer needed after I73d654d1f9127e22365d94909681c1c5f5f39597.

Change-Id: I2a16b725fca512ccbb72f493fd7db28836341e24
2022-11-23 11:28:14 +00:00
Bartosz Dziewoński 86ffa41af7 highlighter: Fix double-escaping of popup notifications
Bug: T323351
Change-Id: Iaa69ccd944114f2a7ff88e01b6e58d70d38cac89
2022-11-18 14:56:36 +01:00
Bartosz Dziewoński 4cebf20e76 CommentFormatter: Fix condition for lede button to consider table of contents
(Also fix some related CSS that was accidentally moved in
Ie5198e902ec3fa7a7eba56cef6c6f0ef71ef7314)

Bug: T323241
Change-Id: I1fa67965a1b6b827c500a9de63f5b5295bee840d
2022-11-16 22:18:11 +01:00
jenkins-bot 954dc520b7 Merge "Make "Add topic" button sticky" 2022-11-16 19:06:30 +00:00
David Lynch 84620569dd Track events for the new comment notice
Bug: T301582
Change-Id: I40355502a59a7f31e465e52859b303680c1e109f
2022-11-16 11:49:50 -06:00
Ed Sanders b132522fa9 Make "Add topic" button sticky
Bug: T316175
Change-Id: Ie5198e902ec3fa7a7eba56cef6c6f0ef71ef7314
2022-11-16 12:23:34 +00:00
Bartosz Dziewoński 46d766f30d Remove override for Minerva hiding .tmbox, no longer needed
Depends-On: Ifb0316256bdec5008acc48544ddd3e2bf71b6d41
Bug: T257394
Change-Id: I7b442d2e009f631ec8ac183f4767ffcc1e94954c
2022-11-15 11:26:08 +01:00
Bartosz Dziewoński 469b7720af Place replies outside transclusions, disallow replying to transcluded comments
Bug: T313100
Change-Id: I3993c96ec8d3d0add33d779860d158327985107d
2022-11-14 19:17:18 +01:00
Bartosz Dziewoński 310323b561 Tweak mobile styles for no-JS compatibility
Bug: T321430
Change-Id: I0f20750995d89c0bb4be9a70e594326f15a6de0b
2022-11-14 15:01:35 +01:00
Bartosz Dziewoński f27d173852 Remove some unused CSS
No longer needed since the "Subscribe" button was moved elsewhere
(2960853088).

Change-Id: I758469c6883fe6056dc3859b5b5d43d98771b518
2022-11-14 14:57:13 +01:00
Bartosz Dziewoński 04cfffe323 Move visualenhancements metadata and some buttons outside of <h2>
We wrap a `<div>` tag around the `<h2>`, and move some elements there.
The markup is inspired by and compatible with my proposal for T13555.

The "ext-discussiontools-init-section" class is moved to the `<div>`.

A small patch is needed in MobileFrontend to preserve the section
collapsing functionality: I11bff21e81046898ca63f3f432797129fa70ad88.

The following elements are now outside of `<h2>`:
* Metadata bar
* Subscribe button
* Ellipsis menu (only shown on mobile)

The following elements are sadly still inside of `<h2>`:
* Subscribe links (only shown on desktop)
* Section edit links from MediaWiki core
Trying to move them mucks up the CSS too much. I hope we can resolve
this later as a part of the work on T13555.

Depends-On: I11bff21e81046898ca63f3f432797129fa70ad88
Bug: T314714
Change-Id: I0bbdcfa02c334858737855349d7a35746de1d8f2
2022-11-10 23:35:40 +01:00
Ed Sanders e0855e4f41 Make virtual keyboard detection into a body class
This allows it to be re-used for other features, such as the
upcoming floating "Add topic" button.

Add some support for Android, although not used in this patch.

Change-Id: Ibd1e1ee087ac607c88a7402d0422c633700d1992
2022-11-10 23:30:53 +01:00
Ed Sanders 8cd239b0b4 Move ...-replylink-open class to <body>
This allows elements outside the page container to respond to it.

Change-Id: Id880ada0e24cb803e7b992284a1a95950f3da36f
2022-11-10 23:30:10 +01:00
Ed Sanders 79521f89cf Add button to reveal lede section on mobile
Bug: T312309
Depends-On: I9c3035c9dbe7545a05efb2286dffe0145d3557b4
Change-Id: I9d74914ddbcc9def74e85106a68574a807b0b731
2022-11-10 22:10:04 +00:00
jenkins-bot af6f6e6149 Merge "Disable "Share feedback..." links by default" 2022-11-08 22:04:08 +00:00
Ed Sanders b4eb7fc9ad Disable "Share feedback..." links by default
Will still be enabled on WMF wikis for now.

Bug: T322494
Change-Id: Ic0b79fdf459d4949d7604f5a213cb1851ca30901
2022-11-08 21:58:39 +00:00
jenkins-bot c83bad9de8 Merge "Embed pageThread JSON in jsConfigVars instead of infusing HTML" 2022-11-08 18:59:48 +00:00
jenkins-bot c0e757c716 Merge "ABtest for mobile, logged out users" 2022-11-08 18:41:38 +00:00
Ed Sanders a00131a18f Embed pageThread JSON in jsConfigVars instead of infusing HTML
Bug: T322651
Depends-On: I86d461756398780dc24949013f35b7730a481052
Change-Id: I85ee8e6ed6eba97b94f4e4c415fbc5286c234cce
2022-11-08 16:20:39 +00:00
Ed Sanders 317b8244dd Move username completion tool after special character tool in toolbar
Bug: T322455
Change-Id: I19bfe4500850512411615b326b07ba0a47dcfd5f
2022-11-07 13:01:11 +00:00
Bartosz Dziewoński 29fbfb59c3 Tweak mobile "Read as wiki page" button placement
Bug: T320755
Change-Id: Ic647ff922161a6f8804dfd2a87249c6591cfb093
2022-10-31 22:30:56 +01:00
David Lynch 9021a45966 ABtest for mobile, logged out users
Bug: T320993
Change-Id: I3530c540ec20f8806abcd7010b4d4933d1b53cfc
2022-10-31 16:23:59 -05:00
jenkins-bot 61b89e44a9 Merge "Fix new topic tool appearing from autosave in edit mode" 2022-10-26 16:35:07 +00:00
jenkins-bot f8601fc368 Merge "Fix new topic tool appearing from autosave in its own preview" 2022-10-26 16:34:42 +00:00
jenkins-bot ffb5dd6a86 Merge "Add accesskey "s" to the "Reply" / "Add topic" button" 2022-10-26 16:32:58 +00:00
jenkins-bot c9dadbfe7d Merge "Remove support for <span class="mw-headline-number"> in headings" 2022-10-26 16:29:41 +00:00
jenkins-bot d55b8f8d2f Merge "Don't insert comment markers inside <figure>" 2022-10-26 16:28:37 +00:00
Bartosz Dziewoński c6cd20f682 Remove support for <span class="mw-headline-number"> in headings
This feature has been removed from MediaWiki in change
Ic9ed88f419419cf4cc5cc32010539eea8b76314b.

Change-Id: If11b33589f47eab614f5129b38e80d0f3cafa083
2022-10-25 18:59:05 +00:00
jenkins-bot 212db49484 Merge "Add 'specialCharacter' tool to toolbar" 2022-10-25 15:53:48 +00:00
jenkins-bot c728f35e3a Merge "logger: Also log VisualEditorFeatureUsage events via Metrics Platform" 2022-10-24 12:48:25 +00:00
Bartosz Dziewoński d2df103803 Don't insert reply tool outside <section> on mobile
Bug: T319148
Change-Id: I7db0ef1980f4997b77593f3d43d35886ecd8a4ae
2022-10-21 01:20:13 +02:00
jenkins-bot d5bbe213cb Merge "Remove oldid from URL when refreshing page" 2022-10-20 22:44:58 +00:00
Ed Sanders 7364214ea6 Remove oldid from URL when refreshing page
Code mostly copied from VE, but ported to native URL object.

Change-Id: I3e780f33df548c59741b7ae3b5dfb33f657d24a3
2022-10-20 22:02:10 +00:00
jenkins-bot 38bc9bba60 Merge "Separate out mobile init from controller.js" 2022-10-20 21:57:35 +00:00
Bartosz Dziewoński 5ed1c4a482 Add accesskey "s" to the "Reply" / "Add topic" button
Add brackets around the existing shortcut key labels, so that they
don't look quite so out-of-place next to the automatically added
accesskey label.

Bug: T278249
Change-Id: Icc0df5ba036080807ea0eb215f5526c93da78ef1
2022-10-20 22:58:25 +02:00
jenkins-bot c049f07055 Merge "ReplyLinksController: Skip empty reply buttons container" 2022-10-20 14:35:34 +00:00
Ed Sanders 292725e864 Add 'specialCharacter' tool to toolbar
Bug: T249072
Change-Id: I9db0954db05f825adaa311bb3777c5e4493172b6
2022-10-20 12:22:19 +00:00
jenkins-bot 4935197c66 Merge "logger: Use wgWMESchemaVisualEditorFeatureUseSamplingRate config variable" 2022-10-19 19:09:24 +00:00
Func 3cbab3b789 ReplyLinksController: Skip empty reply buttons container
For preview parsing, the span containers are empty.

Not sure why not strip the container along with all generated
contents, but this should be the easiest fix.

Bug: T321185
Change-Id: I9afb2d0f543b79dbac8a652236fe55284de542a8
2022-10-19 23:14:27 +08:00
jenkins-bot f953953c9b Merge "Fire wikipage.content hook on edit notices" 2022-10-18 16:19:57 +00:00
Ed Sanders 481b687c35 Follow-up I394f02912: Use existing class API to move button away from sticky header
Bug: T318474
Change-Id: Iab3a817e305d48e922499aad3620d93cf8aa165e
2022-10-17 14:49:36 +01:00
Ed Sanders d0cd0e57a1 Separate out mobile init from controller.js
Change-Id: I2dfafc1d816c5cae97fd51bc11de9aefbdd73ee8
2022-10-14 17:38:19 +01:00
jenkins-bot f6e271d781 Merge "Remove all hacks for old HTML in HTTP cache or parser cache" 2022-10-12 14:20:52 +00:00
Bartosz Dziewoński 65339e3ad4 Fix new topic tool appearing from autosave in edit mode
Follow-up to 2bc76dabd7.

Bug: T317005
Change-Id: I2f982e7e631cc45375143b1ba280850e66e51719
2022-10-11 00:26:55 +02:00
Bartosz Dziewoński 2ad3e4ad26 Fix new topic tool appearing from autosave in its own preview
Follow-up to 9425f75f47

Bug: T317005
Change-Id: I247f33e3658fbb8307a725b7c4fdc5871932b5d3
2022-10-10 23:12:18 +02:00
Ed Sanders 2c160ddb72 CommentItem.js: Ensure timestamps are UTC
This will not be the case if we do a full parse in the
client on a non-UTC site.

Change-Id: I226c4f580e60114992bfc06896ef4868e6ea9124
2022-10-10 14:50:02 +01:00
Bartosz Dziewoński f8d25be872 Remove all hacks for old HTML in HTTP cache or parser cache
Change-Id: I609cbbf5b26eca3a84bae91cc17cbc663925714c
2022-10-09 18:17:35 +00:00
Bartosz Dziewoński 8664de52d1 Don't insert comment markers inside <figure>
…when wgParserEnableLegacyMediaDOM=false. See task for details.

Bug: T320285
Change-Id: I397cb70f915bb8d974fe2796198d252b1be9a368
2022-10-08 23:23:54 +02:00
Ed Sanders 0e5f4460a7 Fix styling of heading input in new topic tool
We accidentally set some proposed mobile styles for desktop.

Change-Id: I3d7092137708196599ccf44fed948757b9aef276
2022-10-03 17:20:10 +02:00
Sam Smith 2f6305b7b5 logger: Also log VisualEditorFeatureUsage events via Metrics Platform
The VisualEditorFeatureUsage instrument is a candidate for migration to
the Metrics Platform [0]. The first step of the migration is to log
events both using the Event Platform directly (i.e. via
mw.eventLog.submit()) and using the Metrics Platform client (i.e. via
mw.eventLog.dispatch()).

The Metrics Platform Client can mix in additional information -
so-called context attributes [1] - based on the stream configuration.
The majority of the default values mixed into each event via the
mw.eventLog.Schema defaults mechanism are already known to the Metrics
Platform Client.

Note well that the Metrics Platform client will not log an event without
one or more streams being configured to receive that event. Therefore,
this change is a NOP.

An example stream configuration is given in [2].

[0] https://wikitech.wikimedia.org/wiki/Metrics_Platform
[1] https://gerrit.wikimedia.org/g/mediawiki/libs/metrics-platform/+/aed6738b845/js/src/StreamConfig.d.ts#31
[2] https://phabricator.wikimedia.org/T309602#7973206

Bug: T309602
Change-Id: Ib919ae0e3f404c85cef17637ea91bb95d5030cf1
2022-10-03 12:02:23 +01:00
Sam Smith b90a2675b0 logger: Use wgWMESchemaVisualEditorFeatureUseSamplingRate config variable
... for the sampling rate for the VisualEditorFeatureUse schema.

Bug: T312016
Depends-On: I259757db0c4441a3fcfce505d5bc82dcf2acf58c
Change-Id: I1c7f9c06384549deac2787f5df93c0078b6402af
2022-10-03 11:46:43 +01:00
Bartosz Dziewoński 5f32c90225 Fire wikipage.content hook on edit notices
Bug: T319133
Change-Id: I36efb9326a9bf0efc5ef646d49361b314fdd0b5a
2022-10-02 11:38:33 +02:00
Bartosz Dziewoński 8d727dc26d Fix reply link/button margins on RTL wikis
Follow-up to c232df01a4.

Change-Id: Ie8c463108d2e0cb172d270d6205677459adbb86a
2022-10-01 21:52:32 +02:00
Ed Sanders c2594914f9 Don't re-color :visited links that act as buttons
Bug: T319019
Change-Id: I26820229820768390827e79ec09c86eeed424531
2022-09-30 13:40:26 +01:00
Ed Sanders f9d8b7afd5 Reduce padding around reply button slightly to improve vertical alignment
Change-Id: Ia420f1d6bf1038bfe803c62aba636f046d74bb29
2022-09-29 14:42:11 +01:00
Bartosz Dziewoński 4d1722d1e6 Fix double <div class="mw-parser-output"> after saving
Follow-up to d00fa80ff4. .html()
replaces the inner HTML, .replaceWith() replaces the outer HTML.

Change-Id: I8da2d24d439acc5e83ef1f42959fefef27bbea71
2022-09-29 01:26:33 +02:00
jenkins-bot f910e54802 Merge "Empty state banner: Improve selector for hiding top border" 2022-09-28 16:30:45 +00:00
Ed Sanders 79d4879b3a Empty state banner: Improve selector for hiding top border
Pages can be empty (blanked) without outputting the noarticletext
class, so just suppress the top border if the banner is the first
child of the document.

Change-Id: I808160a7f73a9a976d25e77f4bd47727a57b70c0
2022-09-28 17:04:42 +01:00
jenkins-bot f4f83bfb2f Merge "Show mf-section-0 in preview" 2022-09-28 15:45:29 +00:00
jenkins-bot 8a2e02e8e1 Merge "Suppress top border when section follows <h1>" 2022-09-28 15:40:07 +00:00
Ed Sanders df96154538 Show mf-section-0 in preview
Bug: T318758
Change-Id: I12039696bfe0f06e21b28ed32fdfc23442033805
2022-09-28 14:38:20 +01:00
jenkins-bot 99c772d4ee Merge "Add mw.track call when comment setup fails" 2022-09-27 22:32:08 +00:00
Ed Sanders f6df39c11a Always scroll "Loading..." text into view
If the widget has just been opened, it should already be in view,
but when we are recovering from auto-save it might not be.

Scrolling it into view lets the user know sooner that a draft is
about to be recovered.

Change-Id: I2b8232edc20e71b04a3f106107c0c7bc6333f66a
2022-09-25 13:28:14 +01:00
Ed Sanders 688cdc24ae Move "Return to comment" below sticky header when present
Also ensure that when we click the button, we scroll the widget fully
into view below the sticky header.

Bug: T318474
Change-Id: I394f02912cd6ab2773552a7364691ef89a17369c
2022-09-25 13:28:12 +01:00
jenkins-bot 43f95c18c3 Merge "Tweak topic container margins on desktop" 2022-09-22 15:32:34 +00:00
Ed Sanders a9488a9ead Suppress top border when section follows <h1>
Bug: T318198
Change-Id: I550dd240fe629d0159448ea49d49195de0166a25
2022-09-21 21:39:40 +01:00
David Lynch 9ee2301f1e ThreadItemSet.newFromAnnotatedNodes needs to wait to compute names
Computing the name, for headings, requires determining the oldest
comment. This must not be done before all the replies are added to the
thread.

Follow-up to e24550fae9. It was
already *technically* incorrect before then because it was generating
the name based on the first comment in the thread, but that was only
not the oldest in very unusual cases so it was fine. That commit caused
the thread summary to be cached when first requested, however, which
made future requests for oldest/newest comment and authors to be
incorrect.

Bug: T318057
Change-Id: If0bd6caf88e72cd3f91e7f0633c40b445f5e2246
2022-09-19 14:13:51 -05:00
Ed Sanders 39502b4f9a Use margin to position comment marker to avoid Chrome bug
Bug: T317135
Change-Id: I627d92fabaa9d9e477279041d3c40a7c6bfe37c8
2022-09-14 10:01:53 +02:00
Ed Sanders 516ea4a970 Tweak topic container margins on desktop
Bug: T314449
Change-Id: I021dbd33f211fcdc5ef2fea1d99212df772053b4
2022-09-14 09:59:39 +02:00
David Lynch 968250bb02 Add mw.track call when comment setup fails
Bug: T310390
Change-Id: I6df98032469931276ea096a008fdf8f63893dff5
2022-09-14 01:23:07 -05:00
jenkins-bot f152ca001d Merge "Reduce size of topic headings to 18px on mobile" 2022-09-10 11:53:39 +00:00
jenkins-bot 639ad57914 Merge "Suppress top border of first section on mobile" 2022-09-10 11:53:37 +00:00
Ed Sanders 9af812720c Reduce size of topic headings to 18px on mobile
Also reduce spacing around headings and meta bar.

Bug: T311612
Change-Id: I40e01caea22c6b89122a29f87282e4147961f6a7
2022-09-10 12:46:34 +01:00
Ed Sanders 7a579fd67b Suppress top border of first section on mobile
The :first-child that would usually do this doesn't work
due to the hidden .mf-section-0.

Change-Id: I772414f563543f6a39ec61e87a9c46cb3ef6690d
2022-09-10 12:44:32 +01:00
jenkins-bot 183fba9171 Merge "Update mw:tocplace CSS hack" 2022-09-09 21:12:43 +00:00
Ed Sanders e24550fae9 Refactor thread summary getters
Replace getThreadSummary with individual getters that call
calculateThreadSummary once.

Change-Id: Ie8a8b4d7cb5121847b78dbc20bca2c8d48c7d857
2022-09-06 23:19:13 +02:00
jenkins-bot 1c624210f4 Merge "Table of contents style tweaks" 2022-09-05 21:43:06 +00:00
Ed Sanders 5c7cf02457 Table of contents style tweaks
* Make "X comments" appear on a new line deliberately
* Remove parentheses around "X comments"

Bug: T309463
Change-Id: I803eee9db59c633f129f15e436242a12bcc627f0
2022-09-05 12:57:31 +01:00
jenkins-bot cb4eb9f9e9 Merge "ReplyWidget: Ignore pending updates after tearing down" 2022-09-03 20:23:22 +00:00
Bartosz Dziewoński 9b317c6f22 ReplyWidget: Ignore pending updates after tearing down
When using ReplyWidgetVisual, this would just crashes in #getValue.

When using ReplyWidgetPlain, if the timing is right, this might update
our auto-save after the value was cleared in the teardown code,
breaking the way we restore the reply after showing new comments.

Bug: T316074
Change-Id: I23c5f17a6ff9a6ec9c73a176e4cc60e3ad96e7f1
2022-09-03 06:55:42 +02:00
jenkins-bot f8b5ada93d Merge "Remove clear:both from topic containers" 2022-09-03 00:25:27 +00:00
Ed Sanders 664d5d041a Fix fetching of oldest comment in a thread
The implementation in Parser doesn't descend into sub-thread.
Re-use the getThreadSummary method in ThreadItem and traverse
the thread properly.

Bug: T298617
Change-Id: I318d9012eb83f37ccbe463923524ef2e9f995ced
2022-09-01 21:22:09 +00:00
Ed Sanders 2883829678 highlighter: Use upstream getTargetFromFragment
Bug: T315872
Depends-On: I605a24c708e60ccffde9dce524485f61fd5c7b06
Change-Id: Ie689c57ce23b6298e089c7bf9bc53409abc45016
2022-08-31 13:10:10 +00:00
Ed Sanders b4eaa05c1c Update mw:tocplace CSS hack
Bug: T311502
Depends-On: Ie63eed07b9bca1bfa07d4c256aba3728cedd8f93
Change-Id: I989e178419aec75b673308ca26f967176116e260
2022-08-30 14:41:34 +01:00
jenkins-bot e680735d63 Merge "Remove all stuff about legacy IDs" 2022-08-27 05:34:48 +00:00
jenkins-bot b9e3043415 Merge "Enhance vector-2022 table of contents" 2022-08-26 20:57:39 +00:00
jenkins-bot f9dc5dd135 Merge "Support nested-directionality content" 2022-08-26 18:46:57 +00:00
Ed Sanders 4a092df740 percentDecode: Pre-escape query string separators (&,=)
Change-Id: I1f648f192749fdd1d9d1217a87bd0a78ba064f7d
2022-08-26 13:33:38 +01:00
Ed Sanders c232df01a4 Support nested-directionality content
Bug: T315037
Change-Id: I93f258a5d5fea174902b77d5d0728cfd68a66867
2022-08-26 12:46:26 +01:00
Ed Sanders 40bd58859e Prefix browser title while replying/starting a new topic
We already do this while editing so that users can quickly see which
tabs they are actively working on.

This extends the functionality to the reply and new topic tools.

Bug: T262066
Change-Id: Iae662ad26072617aad71e519bb6c3cbb19ef1246
2022-08-25 16:12:54 +01:00
Ed Sanders 776fca861f Update categories list when reloading page
Change-Id: I0f6b61eec33dca26e128bd60bb027a5a42a3f9ee
2022-08-24 13:13:12 +01:00
Ed Sanders dec755c802 Fix updating of subtitle when reloading page for new comments
The subtitle prop and some others were missing from the action=parse
request. Use the same props as the VE edit API.

Change-Id: I8e9cc735d3ee50dfe0fbe0349713d88654ad9fd1
2022-08-24 13:05:07 +01:00
Bartosz Dziewoński cfa45a5f4c Remove all stuff about legacy IDs
We can no longer change IDs so easily, because they're stored in the
permalink database, so remove this mechanism to make sure it's not
accidentally used in the future.

Change-Id: I392ee1f49c48fc2f23d05e9a37c643438b4f2b9a
2022-08-24 01:01:09 +02:00
Bartosz Dziewoński 434944b197 Enhance vector-2022 table of contents
Bug: T307823
Depends-On: I034a579b7ef51950726c9ac056d6c940a7d7d472
Change-Id: Icafc13e1c846549429fe2b3b4a1721c02ab7428d
2022-08-23 19:46:44 +00:00
Ed Sanders 9adafd43a1 Show latest comment info in subtitle
Bug: T306675
Change-Id: I1400dbb50cdf8a0a5e23ce533c84fad96f3fae16
2022-08-23 19:31:40 +00:00
jenkins-bot e309fba4c2 Merge "Update permalinks when refreshing the page" 2022-08-22 23:03:40 +00:00
Ed Sanders 7cfa070b86 Remove clear:both from topic containers
Bug: T315581
Change-Id: I94533854dd985cb30278c5a001510feeab7ab41d
2022-08-22 21:25:37 +01:00
Ed Sanders 837591f12e Don't pass an empty string to getElementById to avoid Firefox warning
Bug: T315614
Change-Id: I6d4eedd75a23f6ada26aedca54da80c5e33ea4f0
2022-08-22 16:36:09 +01:00
Ed Sanders c221a2fb7b Update permalinks when refreshing the page
Bug: T315830
Change-Id: I56620e9d31799640241430ceba6da959a0c8405e
2022-08-22 12:15:34 +01:00
jenkins-bot ab8b1fe815 Merge "Logging: platform as phone/desktop depending on whether MF is active" 2022-08-19 22:45:04 +00:00
jenkins-bot 3267a1deed Merge "Fix headings changing height when JS loads on mobile (FOUC)" 2022-08-19 00:56:13 +00:00
Ed Sanders c56bf250ac Fix headings changing height when JS loads on mobile (FOUC)
The bottom margin used to collapse into the next heading, but
MobileFrontend changed how section hiding was done.

Change-Id: Ide10e9f17ad38d672958e2c3a43c2eb2cfdd82ae
2022-08-19 00:50:08 +00:00
David Lynch acadaf7f1e Logging: platform as phone/desktop depending on whether MF is active
Change-Id: I3ecf4b56b11008dbe6d30a0a868affa028786d95
2022-08-18 14:48:29 -05:00
Ed Sanders 0e95e45e88 Add space after namespace on talk pages
Bug: T313636
Change-Id: I481e885b54a1aeb9dd69a08dc614ab5f4f94b41e
2022-08-18 16:02:27 +01:00
jenkins-bot 4b0349a178 Merge "Initialize on live preview and real-time preview too" 2022-08-10 15:14:05 +00:00
jenkins-bot 91a94fe9bb Merge "Pass empty string to unused argument of pushState/replaceState" 2022-08-09 20:48:12 +00:00
jenkins-bot 89607c6e25 Merge "Implement percentDecode for finding link fragment targets" 2022-08-09 20:18:58 +00:00
Ed Sanders b3b543040b Implement percentDecode for finding link fragment targets
Relying on :target getting set means we can't use
history.pushState to change the URL without scrolling.

Should conform to https://url.spec.whatwg.org/#percent-decode

Change-Id: I4ccc3fd745884849a781a9f7fc8b00b8b689e20a
2022-08-09 20:06:28 +00:00
Ed Sanders 9f27c55f8c Pass empty string to unused argument of pushState/replaceState
Per https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState
this argument is treated as unused in all the browsers we support.

Change-Id: I515193fdafaaf1c19701bc77e590d6f66b1cf4bf
2022-08-09 13:37:57 +01:00
jenkins-bot a4d9455743 Merge "logger: Also log EditAttemptStep events via Metrics Platform" 2022-08-06 05:01:19 +00:00
jenkins-bot 7ba6443a05 Merge "Clear floats above the new topic empty state" 2022-08-05 08:16:27 +00:00
Bartosz Dziewoński 0c80eeb88b Fix ReplyLinksController#teardown
Follow-up to 31c57d594a. This was
causing an exception, preventing the page contents from updating after
saving changes.

Change-Id: I8c9ab51385172056be9032ec0087f64ff34b6709
2022-08-03 20:46:19 +02:00
jenkins-bot 7ee49a2138 Merge "Make comment markers inline-block to fix comment wrapping in Safari (in headings only)" 2022-08-03 14:22:51 +00:00
Bartosz Dziewoński 2bb0a11d55 Clear floats above the new topic empty state
It should appear below any page content, at full width.
Currently it gets squished by floats on some pages.

Change-Id: I4c4107d438dfd06eec21badce5f216aa2c137272
2022-08-02 19:37:12 +02:00
jenkins-bot b1934c8a84 Merge "Don't infuse reply buttons if not in use" 2022-08-02 12:58:17 +00:00
Ed Sanders a0fa7c466f Don't infuse reply buttons if not in use
Change-Id: I704cbf3f1a681c474ce5d44b7c5af5c8dbb82f3b
2022-08-02 13:27:43 +01:00
Bartosz Dziewoński 35db93d9f5 Disable OOUI reply buttons for real, not with CSS hack
We already infuse them, so might as well do this...

Change-Id: I962c052d3f5b5c15b3a15e6e4533bd87624eb6e2
2022-08-02 00:32:24 +02:00
Bartosz Dziewoński 293df2438f Make "Add topic" button in Vector sticky header disabled after click
Bug: T307726
Change-Id: I3077357d7753d9259c5c32b71dd23a0e21bde6de
2022-08-02 00:32:24 +02:00
Bartosz Dziewoński 549fcc062b Fix focussing the reply button/link after closing the reply widget
Change-Id: I0db0fc8a93512751f8a9bcc96b048c1ab1f24f95
2022-08-02 00:32:24 +02:00
Bartosz Dziewoński 31c57d594a Do not duplicate item JSON in page HTML
Rather than setting it on both the reply link and the reply button,
set it on their parent element.

Update ReplyLinksController to handle this.

Change-Id: I650e9c0ebd354a82b8f66a63c5b4c02b2e29b105
2022-08-01 22:14:50 +00:00
jenkins-bot 47158f28dc Merge "Fire new 'wikipage.tableOfContents' hook to update TOC after save" 2022-08-01 19:49:39 +00:00
Ed Sanders 980b2c38bc Make reply links into buttons when visual enhancements enabled
Bug: T255560
Bug: T309904
Change-Id: I3932f576086a43df89ff97a1b3dafdc27c54f71c
2022-08-01 20:59:53 +02:00
jenkins-bot 9ceccd2d48 Merge "Fix styling of new comment notification on mobile" 2022-08-01 18:28:10 +00:00
jenkins-bot d247842772 Merge "Ignore "tracked" templates at the beginning of comments" 2022-08-01 14:52:39 +00:00
jenkins-bot 96868976bf Merge "Re-enable keyboard sequences for template, table etc. in new topic tool" 2022-08-01 12:28:15 +00:00
Ed Sanders 54eabe1f4f Fix styling of new comment notification on mobile
* Keep buttons on the same line
* Reduce font size to align borders

Change-Id: I1cc44ae1bd8b5e45d9a5b2ea4f9352163d12e8e6
2022-07-31 23:00:05 +01:00
Bartosz Dziewoński ddd391b6db Ignore "tracked" templates at the beginning of comments
This improves the behavior when replying to these comments
and the message snippets shown in notifications.

Bug: T313097
Change-Id: Ia10400472c9e999fa526c7437a03b72461c37b74
2022-07-31 03:56:36 +02:00
Bartosz Dziewoński e5abfdbe8a Re-enable keyboard sequences for template, table etc. in new topic tool
They were only disabled in the reply tool, because their wikitext
markup doesn't work when indented. This is not a concern in the new
topic tool.

Rename our sequences that display the wikitext warning to avoid these
items showing up in the command help dialog, and remove overrides for
global ve.ui.commandHelpRegistry. (As a result, the dialog now lists
the blockquote command, which was previously missing even though it
was enabled, but only with the 'Ctrl+8' shortcut and not 'Type ":"'.)

Also remove filtering rules for external paste.

Bug: T311653
Change-Id: I4557c376fcf099d81e91ae5c2b18301d97921180
2022-07-31 02:40:12 +02:00
Ed Sanders 434e11df87 Enable new comment notifications on mobile
Since writing this feature we added the ability to update
the page dynamically on mobile, so this shoud just work now.

Bug: T301929
Change-Id: Iceb5d8c90a892807745ba7133b7dd389293d3327
2022-07-31 00:07:14 +01:00
Ed Sanders 4da2ecf32f Hide section collapse button in preview.
In general we are hiding non-content elements in the preview
and this matches the behvaviour of the article editor.

Change-Id: I6669d8cc737214d464b662ccc6900ccce229b3d7
2022-07-29 14:09:56 +01:00
Bartosz Dziewoński f4a9d5b8f9 Fire new 'wikipage.tableOfContents' hook to update TOC after save
Bug: T294950
Depends-On: Icaeda68ded94a04edef7a3629385eeb232048684
Depends-On: I1644a74370b42b04d0db167879f7de2207ebfcf5
Change-Id: Ic3ef4e332ade8918778b6aaaa8eaf7e98f0a8d7d
2022-07-28 23:37:29 +02:00
Bartosz Dziewoński 9425f75f47 Initialize on live preview and real-time preview too
Bug: T309423
Change-Id: I661dfb2b9159fe56edffabd9fba00cd2c56343cd
2022-07-28 19:06:32 +02:00
Ed Sanders 2f44d99184 Simplify CSS selectors for [reply] and [subscribe] links
:first-of-type selectors refer to the node name, so just
use :first-child and :last-child for the open and close brackets.

Change-Id: I2e8ca7e99d1262522ed2d3b5133093817af8ad29
2022-07-27 16:22:11 +00:00
Ed Sanders 2960853088 Move subscribe button up on desktop
Bug: T312674
Change-Id: I419883b5f9a4291b4bf575d57195d553fd5e291e
2022-07-27 13:55:03 +01:00
jenkins-bot 61f76003d1 Merge "Show empty state on mobile when there is only non-discussion content" 2022-07-26 13:24:29 +00:00
Ed Sanders 1d1df63cab Show empty state on mobile when there is only non-discussion content
Bug: T313801
Change-Id: I4e9910ef7d63c6ce330da1a896f518a9a22a12cd
2022-07-26 13:52:22 +01:00
Bartosz Dziewoński e7bbc9864c ReplyWidget: Scroll save error into view after showing it
Bug: T298263
Change-Id: Ibe488bf9184dc9d9c3c8b2c3491c0baf6676ba16
2022-07-25 18:16:13 +02:00
Bartosz Dziewoński dc342291b5 highlighter: Fix exception when trying to highlight an unknown comment
If some content is loaded without re-initializing DiscussionTools
(this currently happens on live preview), then a link to a comment is
clicked, we will not find the comment, which previously caused an
exception. Just ignore this, other code paths in highlighter already
handled this situation in this way.

Bug: T309423
Change-Id: Ie46fd782b8a45907dc6fc604691575c4b55d08ce
2022-07-22 17:47:09 +02:00
jenkins-bot 6e57e3ba78 Merge "Show a "Return to reply/new topic" button when widget is scrolled off the screen" 2022-07-18 16:09:54 +00:00
Ed Sanders 2c2e57fd47 Show a "Return to reply/new topic" button when widget is scrolled off the screen
Bug: T310967
Change-Id: I3d1626162eb5c66ac35560792a81ce09455e86a8
2022-07-18 13:20:12 +01:00
Bartosz Dziewoński 2d3b497a21 Avoid localized digits in internal timestamps in JS
Unlike PHP DateTime, and unlike the .toISOString() method,
the Moment.js .format() method will output localized digits.

Bug: T312828
Change-Id: I49a250b1ad74d9395bf3f994379613cc121b5be4
2022-07-13 02:33:24 +02:00
Bartosz Dziewoński f51d26fd3a Parse 'DiscussionToolsTimestampFormatSwitchTime' config value as UTC
When the input to moment() doesn't define a timezone, it
defaults to the local timezone (as defined on the device,
not in user preferences).

Bug: T312828
Change-Id: I8d2e1c2f6feb5584af4bbf9fef39567eb87780ff
2022-07-12 14:10:09 +02:00
Bartosz Dziewoński 2bc76dabd7 Enable transformations in preview mode
We remove the [reply] and [subscribe] links when they should not be
visible (controlled by 'enableSectionEditLinks' option, which is
disabled when previewing).

Bug: T309423
Change-Id: Ie0d3fba2c4d166daac3ea2e117a246c9584284ca
2022-07-07 23:37:56 +01:00
jenkins-bot caefb1ae39 Merge "Show new topic tool empty state on existing pages with no topics too" 2022-07-07 21:52:36 +00:00
Bartosz Dziewoński a98cd369ba Show new topic tool empty state on existing pages with no topics too
Bug: T312599
Change-Id: I316d2f119b9c899ffaeebc7ec288823c826db092
2022-07-07 21:45:44 +00:00
jenkins-bot 3bb23f30f8 Merge "Remove some unused or redundant styles" 2022-07-07 20:50:17 +00:00
jenkins-bot 1e479288be Merge "Prevent the "Subscribe" button focus outline from being cut off" 2022-07-07 20:50:15 +00:00
jenkins-bot 31c35992f4 Merge "CommentController: Scroll before focusing in showAndFocus" 2022-07-07 20:26:23 +00:00
Ed Sanders d367b1fc50 ReplyWidget: CSS tweaks for monobook
Use 12.8px for interface, and 12.7px for content.

Move mode tabs away from the reply body so the underline can be seen.

Change-Id: I9cb9a611ca64595152f800e1e15b640402f6cb74
2022-07-07 16:24:49 +01:00
Ed Sanders 9f670d0ee0 ReplyWidget: Don't add border-radius when hovering mode tab
Change-Id: Ied05b70119ea724c126e88d30aa62e0f7526ba12
2022-07-07 16:24:06 +01:00
Ed Sanders 2a31eed846 CommentController: Scroll before focusing in showAndFocus
This removes the need for a setTimeout before scrolling.

Change-Id: I1c47d5635f66ed523b492c384464e2e6accabf01
2022-07-07 13:43:16 +01:00
Esanders d6a8c75899 Hide the lede section on mobile when DiscussionTools is enabled (2nd attempt)
Previously this was reverted in I28a5c774f5f after the initial
commit I3736b488046 caused T312177.

Bug: T311760
Change-Id: Iba65615378b183f0c970afff565f45cc878f1d71
2022-07-06 16:03:27 +01:00
Ed Sanders 72bb4aed13 Revert "Hide the lede section on mobile when DiscussionTools is enabled"
This reverts commit 69bfc6d6a2.

Reason for revert: Caused T312177

Bug: T312177
Change-Id: I28a5c774f5f9d0391a8addf5b31b9c229fb40948
2022-07-06 00:31:54 +01:00
Bartosz Dziewoński 5c3277a196 Format number of comments in reply tool new comment warning
Bug: T312033
Change-Id: If8e95b9554eddec2f00c492885575266b02cc1af
2022-07-04 17:57:41 +02:00
jenkins-bot 00d63026a3 Merge "Halve the initial height of the reply widget on mobile" 2022-07-01 22:20:06 +00:00
jenkins-bot 4ed36bc03b Merge "Reply widget mobile: Reduce space between footer and footer-links" 2022-07-01 22:19:25 +00:00
jenkins-bot 8a0703f29d Merge "Reply widget mobile: Move reply/cancel buttons up into empty space of "advanced" bar" 2022-07-01 22:19:22 +00:00
jenkins-bot 11961a85a7 Merge "Reply widget: Simplify LESS expression" 2022-07-01 22:12:40 +00:00
Ed Sanders 9d9dc7f26a Halve the initial height of the reply widget on mobile
Vertical space is at a premium on mobile with the virtual keyboard.
The widget will auto-size when more text is entered.

Bug: T311836
Change-Id: I03ff7217f9ffe217f93a3dc95db2df018bd0d221
2022-07-01 15:05:00 +01:00
Ed Sanders 172960f887 Reply widget mobile: Reduce space between footer and footer-links
Bug: T311836
Change-Id: I6275ff67a909125398872e2f691e5b62d165d546
2022-07-01 15:05:00 +01:00
Ed Sanders 5014aa3c50 Reply widget mobile: Move reply/cancel buttons up into empty space of "advanced" bar
This reduces the overall vertical height of the tool

Bug: T311836
Change-Id: I095bff00686a54779d45efa73c3f8b74ba016702
2022-07-01 15:04:58 +01:00
Ed Sanders 1ad01e661a Reply widget: Simplify LESS expression
Change-Id: I1d00c81377cfe83167384c83d3abd3f1bcdc2497
2022-07-01 13:38:01 +01:00
Ed Sanders 98b5371a8c Have "Read as wiki page" link remove all DT content changes
As well as visual enhancements:
* Reply links
* Mobile lede section hiding

Change-Id: I14d591830620edf8bbaccb76b4bce0e87971d7c3
2022-06-30 23:02:50 +01:00
Ed Sanders 69bfc6d6a2 Hide the lede section on mobile when DiscussionTools is enabled
Bug: T311760
Change-Id: I3736b4880465359bcae9b903eecc57f1cd7674ef
2022-06-30 23:02:50 +01:00
Ed Sanders ae3be4aaf5 Always hide overflow menu when topic containers disabled
Change-Id: I05fbaa89992cfec8db50407f74061da7d1aabe2d
2022-06-30 23:02:50 +01:00
Bartosz Dziewoński b7d65bcaa7 Remove some unused or redundant styles
All of these either do nothing, or cancel out with other styles.

Change-Id: Ic2372bdc74efea288b4b906d16a6d17c86c217c4
2022-06-30 02:32:48 +02:00
Bartosz Dziewoński 6042778678 Prevent the "Subscribe" button focus outline from being cut off
We tried to align the buttons with the far edge of the page, but due
to skin styles setting `overflow: hidden` on the content, this is not
possible without causing the focus outline to be cut off.

Bug: T311662
Change-Id: Ie7c10c7564450c06231632892341c7fb232e7041
2022-06-30 02:32:48 +02:00
Bartosz Dziewoński aedb682e06 Use interface language direction for topic metadata wrapper
Bug: T305286
Bug: T311663
Change-Id: I31d9f7997c8894c344548636eea6c9a823698269
2022-06-30 02:32:48 +02:00
Bartosz Dziewoński e48f34e558 New topic hint: Avoid error about section editing when opened from diff
Bug: T311665
Change-Id: I22120a4d4dbe9ff6b9a285932ee9656bdfa0de09
2022-06-29 21:42:52 +02:00
jenkins-bot 9a531f1c68 Merge "Set height of ellipsis button to fix MenuWidget position" 2022-06-29 15:00:49 +00:00
jenkins-bot a78cacc618 Merge "Mobile topic containers: Fix right alignment of ellipsis button" 2022-06-29 14:27:32 +00:00
jenkins-bot 45e7c01b62 Merge "New topic hint: Cleanup CSS" 2022-06-29 14:23:37 +00:00
jenkins-bot c44da3739d Merge "New topic hint: Add clear:both" 2022-06-29 14:22:49 +00:00
Ed Sanders 12dae82c70 Set height of ellipsis button to fix MenuWidget position
Bug: T311558
Change-Id: I6dedf488ec19cef02949f65a5b92e38f4e4c5f85
2022-06-29 12:28:01 +01:00
Ed Sanders 26cdf6789d Mobile topic containers: Fix right alignment of ellipsis button
The icon element should be aligned with the right side
of the content area, like the expand/collapse button, and
the edit pencil in the main namespace.

Change-Id: I191a5984bafc6a478674dd5dccff0594a743ff18
2022-06-29 12:22:53 +01:00
Ed Sanders ff97a06522 New topic hint: Cleanup CSS
* Use sibling selector instead of negative margin to reduce
  space between hint and reply widget.
* Remove upstreamed right-padding for close button.

Change-Id: Ie51cd2208c2bebcbfeff08c249389085523193f0
2022-06-29 11:58:51 +01:00
Ed Sanders 90b2222341 New topic hint: Add clear:both
Bug: T311597
Change-Id: Id7e545b0c18fdd407cb096e3cc3d51415be9839c
2022-06-29 11:58:44 +01:00
Ed Sanders 56989d18a3 Fix hiding of topic container top-border when mw:tocplace present
Change-Id: I382cfeb10c7f8407b559526b0ca06e0dcddd2191
2022-06-28 15:18:13 +01:00
jenkins-bot cd86854235 Merge "Pass useskin/mobileformat when previewing/refreshing page contents" 2022-06-27 21:57:02 +00:00
Ed Sanders d00fa80ff4 Use $.html to refresh page after save
As per If549a0e647ce8.

Change-Id: I6afdc4a80615617678d2d31c2c9e5830b07a6ef0
2022-06-27 17:34:32 +01:00
Ed Sanders 639fabf647 Pass useskin/mobileformat when previewing/refreshing page contents
These are required to render content correctly on mobile.

Change-Id: I421e1f172e208c4bf9d50eee68f1b0220a78dfbe
2022-06-27 17:15:28 +01:00
Ed Sanders 7fc5a0c29d Topic containers: Design iterations
Bug: T310914
Change-Id: I9000f9902d612c58c6b3bc8b762232ca6dd9724f
2022-06-25 12:54:39 +00:00
Bartosz Dziewoński 109a50cb34 Truncate timestamps in comment IDs / names
For comments posted on or after 2022-07-12 (configurable), use a
shorter format, identical to the timestamps MediaWiki uses in URLs.

Changing the format for already existing comments would involve
difficult migrations, therefore we elect not to do it.

Bug: T304595
Change-Id: I387051a6a3a1d84cfae45c3e1516db870cc8b977
2022-06-24 00:49:58 +02:00
Ed Sanders da64c43ccc Show thread metadata in section headers
Bug: T269950
Change-Id: Ifa47ddcbccf288be0bbecd5961eab7c5122aab7b
2022-06-23 17:17:09 +01:00
Bartosz Dziewoński 1ec97b18d9 Fix race condition causing highlights to not be cleared
We cleared the highlight outside the setTimeout(), then set a new one
inside the setTimeout(). If this method was called twice quickly, two
highlights would be created, and the first one of them would become
impossible to clear.

Move the setTimeout() outside of the method to avoid this.

Bug: T311021
Change-Id: Ic8b2cf2a782a429c4ea073871efd215f4b300ed8
2022-06-20 22:51:39 +02:00
Bartosz Dziewoński d73ce24059 Tweak positioning of highlights to make them prettier
* Fix math and styling for RTL
* Make highlights for headings and framed comments cover them fully
* Align the far edges of wide comments

Bug: T309444
Change-Id: Iadbf83e02801fd9bd6336c84015994ee2819ce51
2022-06-20 19:03:50 +02:00
Bartosz Dziewoński a0750129e7 Set rootNode for items from in ThreadItemSet#newFromAnnotatedNodes
It's needed for the fix for T303396 to work correctly (in the case
where there's exactly 1 thread item on the page), and for the
highlight improvements in Iadbf83e02801fd9bd6336c84015994ee2819ce51.

Change-Id: I2b2f5535ebbf792910133622a271ac1491c74de6
2022-06-20 19:03:09 +02:00
Bartosz Dziewoński df22a66e42 topicsubscription: Reduce code duplication
Rather than making our own ThreadItem objects from scratch,
reuse those used by the rest of the code.

Change-Id: I67f5ea3ad26baffe51b66d0c75467ac00185dd0a
2022-06-20 19:02:46 +02:00
jenkins-bot 9058467403 Merge "ReplyWidgetVisual: Pass in memory-wrapped store to VE" 2022-06-17 22:26:06 +00:00
jenkins-bot 39401c4b6b Merge "ReplyWidgetVisual: Handle VE surface 'cancel' event" 2022-06-17 13:24:13 +00:00
Ed Sanders af5b9a9b46 ReplyWidgetVisual: Pass in memory-wrapped store to VE
We switched to our memory-wrapped store everywhere outside the
VE surface, but not in the VE surface itself.

Change the way we construct MemoryStorage objects so that they can
be constructed from a specific mw.SafeStorage instance.

Ensure MemoryStorage's cache is populated with initial storage object
data, and that the cache is copied over when we create derivative
objectes.

Bug: T310438
Change-Id: I652428f114dc5169195887cb8ca719ae196bb76f
2022-06-17 14:05:54 +01:00
Ed Sanders 7befd4a8fc Use new function signature for Target#initAutosave
Depends-On: I6ab00c089c9ae1a8bb05ce9405f1f1f2fd0915ca
Change-Id: I23eb131082260540d2cf5e2cad92c9514333862d
2022-06-15 23:49:49 +00:00
Bartosz Dziewoński 9eb200024e ReplyWidgetVisual: Handle VE surface 'cancel' event
Since change I29f6af4cc7c71a63a6d1bafc53d16b9abd1b60ec, VisualEditor
handles the Escape key to emit a 'cancel' event. We need to listen to
this event to allow Escape to close our editor when the surface is
focussed, in addition to the existing handling for the Escape key.

Change-Id: I8c0f2678d104a76d6a223aca9b57123b9f587ac7
2022-06-15 21:09:06 +02:00
Ed Sanders 0ad9b4c6b2 Move placeholder heading level (99) to a constant
Change the HeadingItem constructor to take a 'null' headingLevel
and store this internally with the constant. Change the JSON
serializer to convert this back to null.

Change-Id: I27508eed75d94b99c5189548919309f8da7deb75
2022-06-14 22:51:49 +01:00
Ed Sanders c2535e26dc MemoryStorage: Setup this.data before calling parent constructor
The parent constructor may trigger read/writes in the future
so this.data should always exist as early as possible.

Change-Id: I79a795a26c4ce1381d2a0b15329f7df1d6ab77ca
2022-06-10 15:10:01 +01:00
Sam Smith e31f8e6681 logger: Also log EditAttemptStep events via Metrics Platform
The EditAttemptStep instrument is a candidate for migration to the
Metrics Platform [0]. The first step of the migration is to log events
both using the Event Platform (i.e. via mw.eventLog.submit()) and using
the Metrics Platform Client (i.e. via mw.eventLog.dispatch()).

The Metrics Platform Client can mix in additional information -
so-called context attribute [1] - based on the stream configuration. The
majority of the default values mixed into each event via the
mw.eventLog.Schema defaults mechanism are already known to the Metrics
Platform Client.

Note well that the Metrics Platform Client will not log an event without
one or more streams being configured to receive that event. Therefore,
this change is a NOP.

An example stream configuration is given in [2].

[0] https://wikitech.wikimedia.org/wiki/Metrics_Platform
[1] https://gerrit.wikimedia.org/g/mediawiki/libs/metrics-platform/+/aed6738b845/js/src/StreamConfig.d.ts#31
[2] https://phabricator.wikimedia.org/T309013#7953227

Bug: T309013
Change-Id: Ic88225111132b440657aab85c34b36a642a7e602
2022-06-08 11:31:28 +01:00
Ed Sanders 32e306f6e1 Hide icon in anon warning below tablet width
Bug: T307709
Change-Id: I800153cabc1ba14fd249c106d57162fd0cd9dbe1
2022-06-03 16:33:26 +01:00
jenkins-bot f460ce39bc Merge "Add attributes for Minerva click tracking" 2022-06-02 15:29:50 +00:00
Ed Sanders c8570b95f9 Fix CSS selector after upstream changes to CompletionWidget
Bug: T307712
Depends-On: Ie590eb6b6c38531b959eadc1fcd5ba108180fdc8
Change-Id: Id39e680cbea54d77f061936c8876ecf7ed28e8b2
2022-05-31 20:39:39 +00:00
Ed Sanders 0f0e8fca9a ThreadItem.js: Only search CommentItem's for authors
If the thread contains a sub-heading, this would add
'undefined' to the list of local authors.

Change-Id: I696c56d07f30c6de2550e5f89b8cefcb3c17a259
2022-05-31 20:16:42 +00:00
Bartosz Dziewoński 28124e7f1e Add attributes for Minerva click tracking
Bug: T295490
Change-Id: I05fa96280c8dacc801b071d22086568ee0f11d86
2022-05-27 03:55:09 +02:00
Bartosz Dziewoński d7209b13b9 CommentTarget: Clean up toolbar actions
When moving the edit mode switcher outside of the toolbar actions,
we apparently forgot that we can disable this feature entirely.

Also remove $overlay: true, which isn't needed after the changes
from T307849.

Change-Id: I005cf18853305edd162c613f60b1ac45f42c3093
2022-05-21 20:28:54 +00:00
David Lynch b6f554a945 Ready A/B test code for topic subscriptions
Topic subscription test is going to be all logged in users only, no
transitory enrollment conditions, so we can remove the anonymous user
handling and DB writes.

Bug: T302515
Bug: T304030
Change-Id: I5e57bb9b7958576f3a04373748331a86f4626fb5
2022-05-19 01:09:40 -05:00
jenkins-bot e792fa0159 Merge "CommentTargetWidget: Exclude save commands" 2022-05-19 01:14:11 +00:00
Ed Sanders 1cc94f91bc CommentTargetWidget: Exclude save commands
Bug: T308709
Change-Id: Id614c8ecbdcdab237828d998fe898dcb9517ff47
2022-05-19 00:58:40 +01:00
jenkins-bot 3141a9ed18 Merge "Ignore LRM and RLM in more places in the timestamp" 2022-05-17 19:42:05 +00:00
Bartosz Dziewoński 6a59149132 Ignore LRM and RLM in more places in the timestamp
We previously ignored them before timezone indicator (e9c401e3aa),
but they can end up in other places too, e.g. after the time.

Now we ignore them after every token. This is way overkill, but it
shouldn't hurt.

Bug: T308448
Change-Id: I20f7aaa34dba23f2a2faf1be258c1aea32ab770f
2022-05-17 02:00:22 +02:00
jenkins-bot df0e84c0d1 Merge "Remove code for handling legacy HTML with data-mw-comment-name" 2022-05-15 20:20:43 +00:00
jenkins-bot 37b28fb36b Merge "Fix reply links sometimes not working after visiting action=edit&section=new with new topic tool enabled" 2022-05-15 13:45:06 +00:00
Ed Sanders bfb3c24ecc Remove code for handling legacy HTML with data-mw-comment-name
This can be merged a few weeks after the commit that introduces
it (If28e1588742), once all the HTML caches have been purged.

Change-Id: I96d2de081a23137fe11a66c8213535219ebfb230
2022-05-14 20:23:45 +00:00
Bartosz Dziewoński 28db9b8350 Fix error message when trying to reply to transcluded comment on a protected page
If the user can't edit, tell them why, instead of trying to
advise them to use the edit button that they cannot see.

Bug: T303110
Change-Id: Ibc41732a55443331e432987e630976610901c599
2022-05-13 01:56:51 +02:00
jenkins-bot 521760ecdc Merge "Redesign "new comments" warning" 2022-05-12 17:21:23 +00:00
Ed Sanders cf3e7c49d8 Redesign "new comments" warning
Bug: T300560
Change-Id: I5abf22b5a11c2639392a3d571c987ed5afaac2d6
2022-05-12 18:02:32 +01:00
Bartosz Dziewoński f534e78cde Fix reply links sometimes not working after visiting action=edit&section=new with new topic tool enabled
getPageData() had an optimization where, when it was called with
isNewTopic=true, it would skip querying 'linterrors' and
'transcludedfrom' data and return fake empty responses.

The issue is that they were cached, and then returned when it was
called with isNewTopic=false later.

Remove this optimization, as we make those queries anyway on init.

Change-Id: I1990b16f574c1aec385bd0fa46a9f39c6c2c1df2
2022-05-12 03:38:31 +02:00
Bartosz Dziewoński d7c390a6ca ReplyWidget: Fix 'returntoquery' handling for anon links
mw.util.getUrl() already encodes the values, encodeURIComponent()
isn't needed.

Also, slice off the leading '?' – while MediaWiki seems to accept it,
it looks like it is never present in any other place using this
parameter (this is fine even if there are no query parameters).

Bug: T308198
Change-Id: Iee3747ab53e3b0a5a0b43a7701205ac0c7f07e7f
2022-05-12 03:23:29 +02:00
Bartosz Dziewoński 523efb065c Make comment markers inline-block to fix comment wrapping in Safari (in headings only)
Previous attempt: I40da5272fd9c44a5a81e303349d0e8fc404e344d.
Limit the hack to only end markers and only inside headings
to avoid causing issues with page content.

Bug: T298371
Change-Id: I9dc95e17752b7f048eb3343dbeea3526359197c3
2022-05-12 02:31:22 +02:00
Ed Sanders b76cf89b9b Add missing 'undo' button on mobile
Bug: T308033
Change-Id: If3126cb213fb4a22a419b9b85fdca32b20863f03
2022-05-11 17:37:08 +01:00
Ed Sanders 95ec3e7920 Dismiss "new comment" highlights when clicking
Bug: T307807
Change-Id: I40ae5fdbadfb223b1484ebf6041d29263aafa347
2022-05-06 17:44:21 +01:00
Ed Sanders 4fb474d611 build: Update stylelint-config-wikimedia to 0.13.0
Change-Id: I164d6175f8077487e2d8dfbf0bcfbd13f1545cae
2022-05-04 23:25:06 +01:00
jenkins-bot 4f25201193 Merge "highlighter: Set the location hash for new topics on desktop as well" 2022-04-21 23:55:19 +00:00
jenkins-bot 90018a5b55 Merge "highlighter: Ensure items in .ranges and .$element are in the same order" 2022-04-21 23:55:17 +00:00
jenkins-bot d35c96db97 Merge "Mobile empty state adjustments: hide image, bigger button" 2022-04-21 21:48:07 +00:00
Bartosz Dziewoński f411f1c342 highlighter: Set the location hash for new topics on desktop as well
The old section=new wikitext editor does this, and I'd rather support
the same behavior on desktop and mobile than different ones.
Follow-up to 89a1efc9d8.

Change-Id: I5371f932680638ee159f2f713bbca44bba5675aa
2022-04-21 22:36:35 +02:00
David Lynch faff90b96b Mobile empty state adjustments: hide image, bigger button
Bug: T305261
Change-Id: I503a62fafaebfe17e1dd2181e543dcc2dbac9eb1
2022-04-21 11:48:23 -05:00
jenkins-bot 40b9b7a536 Merge "Avoid duplicating page content if there are multiple .mw-parser-output elements" 2022-04-21 01:02:06 +00:00
Bartosz Dziewoński d910663bbc highlighter: Ensure items in .ranges and .$element are in the same order
jQuery#add sorts the nodes in DOM order (and removes duplicates).
We did not sort the ranges, so they could end up in a different
order, causing #update to apply the CSS to the wrong nodes.
This was usually harmless, but it could cause incorrect rendering
when some elements are positioned or hidden.

Change-Id: Ic359db08dafa3d86a5778426a7dc2419c94feabd
2022-04-20 19:41:44 +02:00
Bartosz Dziewoński 0c6013c582 ReplyWidget: Fix text-align when content and user language have different direction
Bug: T306137
Change-Id: Ibb0accc210f3cd922ddfb4f0d95df2f98f684425
2022-04-19 22:05:09 +02:00
Bartosz Dziewoński 1ad185e097 Avoid duplicating page content if there are multiple .mw-parser-output elements
Bug: T306388
Change-Id: Iaee2999f02929d562ae9f78ef50913d515c72bb3
2022-04-19 21:46:59 +02:00
Ed Sanders 89a1efc9d8 Fix highlighting and expanding of new topics on mobile
Set the location hash to that of the new topic, then wait
for the section to expand before drawing the highlight.

Bug: T306399
Bug: T301840
Change-Id: I8bc78b49f359e10279584c16269fcb78a087eae0
2022-04-19 15:41:28 +00:00
Ed Sanders 64c76f54a3 Don't reload the page on mobile
Bug: T301839
Depends-On: I0985dd5e8db6f82df882c6f4de4ef3821a0eef13
Change-Id: Ic02de79627b813c1fa6f0e537288206bfb1dbd1c
2022-04-12 18:23:57 +01:00
jenkins-bot b0be1cbf21 Merge "Revert "Make comment markers inline-block to fix comment wrapping in Safari"" 2022-04-11 19:20:30 +00:00
Esanders 0e5ce694f3 Revert "Make comment markers inline-block to fix comment wrapping in Safari"
This reverts commit b4b6ae4e81.

Bug: T305721
Bug: T298371
Change-Id: I108595da651f5a746043b553c2bcf4bdfc64c437
2022-04-11 12:32:52 +00:00
jenkins-bot e87d2117e9 Merge "Replace mediawiki.Uri with native URL (or polyfill)" 2022-04-08 08:49:35 +00:00
Bartosz Dziewoński cf255f28bf Replace mediawiki.Uri with native URL (or polyfill)
Depends-On: I7c4f9b6449a4317d68f4923fb4f198181bbfe800
Depends-On: I04464c17369ffb0dd4e7c33d2bd4db7b2d050bf4
Bug: T305010
Change-Id: I02da91010304af35f0b1f2bd4d65a84d51f29930
2022-04-08 00:35:37 +02:00
David Lynch 0fc474d66f Log saveSuccess more consistently
Cases where saveSuccess wasn't logged:
* creating a new page with the New Topic tool
* any replies on mobile
* successful replies made through transclusions which then couldn't
  purge the current page

These were all cases where we abandoned the post-save process early to
reload the page.

Bug: T305541
Change-Id: I1366a3e0a4b03ac67f926284f1aa718ae552d852
2022-04-06 11:37:29 -05:00
jenkins-bot 4da9fdc80a Merge "Make comment markers inline-block to fix comment wrapping in Safari" 2022-04-01 15:44:16 +00:00
Bartosz Dziewoński b00b7cd5b5 debughighlighter: Fix date highlighting
Follow-up to 4c29304484.

Change-Id: Id088465c3060bcceb2c2b51d784fa60b9005e867
2022-03-29 23:52:00 +02:00
Ed Sanders 48fdcf1056 Remove data-mw-comment-name attribute from subscribe links
The HeadingItem's name is now present in the DOM, so just traverse
to it and use that instead.

Change-Id: If28e1588742513d606e3d8fcfb259b85acc0a873
2022-03-28 22:30:59 +01:00
jenkins-bot 63c6aceb2c Merge "Implement getTimestampString on CommentItem" 2022-03-26 21:25:13 +00:00
Ed Sanders 215695ad2c Refactor topic subscription logic
This will make it easier to support subscription buttons with
visual enhancements enabled.

Change-Id: I3614eada32885216358143a0cacf65966381679e
2022-03-25 11:57:58 +00:00
Ed Sanders 579b8bb1d4 Implement getTimestampString on CommentItem
Change-Id: I1768e9993debe904d6a228942ad0188486d65c0b
2022-03-24 16:49:35 +00:00
Bartosz Dziewoński c7723baf72 CommentParser: Replace uses of Title with TitleValue
Another small step towards removing the reliance on global state.

Change-Id: Ifb4a5bcbef6606d02f1c7aa7385d72822cb0bad0
2022-03-18 18:24:34 +00:00
Ed Sanders b4b6ae4e81 Make comment markers inline-block to fix comment wrapping in Safari
Bug: T298371
Change-Id: I40da5272fd9c44a5a81e303349d0e8fc404e344d
2022-03-18 14:31:36 +00:00
Ed Sanders 3c66f066c2 Refactor highlights into a class, and add window resize listener
Bug: T303616
Change-Id: Id369cdfc511a7f0f5e19fff4c6424bec2f34ff55
2022-03-14 14:57:19 +00:00
Bartosz Dziewoński 01b253c5b6 Don't allow the root node to be treated like a comment frame
Also fix a bug where headings would be ignored while checking for
comment frames. See task for detailed explanation.

Bug: T303396
Change-Id: I6495826b4b050ea80680e0798ac6ab4497a7c09e
2022-03-10 17:45:08 +00:00
jenkins-bot dd24b0edcd Merge "Improve handling for comments after fake headings using wikitext ;" 2022-03-10 16:21:18 +00:00
jenkins-bot 32d9ef573a Merge "CommentParser: Avoid using a dynamic undeclared property" 2022-03-10 00:22:16 +00:00
jenkins-bot 76478dda26 Merge "Move signatureScanLimit to a constant in JS" 2022-03-10 00:22:14 +00:00
jenkins-bot dfcb2f4fc7 Merge "Fix highlighting of comments when reloading" 2022-03-09 22:44:48 +00:00
Ed Sanders 457f6eb7d1 Fix highlighting of comments when reloading
The CommentController stores a list of the new comments that
triggered the reload warning. Just highlight all the comments
in this list, as we always reload to the revision we got from
the same API call.

Bug: T303261
Change-Id: I960f3cf33e25004bad6ab6df907121a87555aaf4
2022-03-09 14:47:03 +00:00
Bartosz Dziewoński 4c29304484 CommentParser: Avoid using a dynamic undeclared property
Change-Id: Iefa8dea83bc0d31b9c6b3509189eeaa652dd9ea0
2022-03-08 23:30:11 +00:00
Bartosz Dziewoński 08c79142fb ImmutableRange: Add @property annotations for magic props
Phan can analyze them now and reports some issues with types.

* Add some assertions on types where we're sure that we're using an
  Element or non-null, but Phan can't prove it
* Fix incorrect type hints on getFullyCoveredSiblings() and
  getCoveredSiblings(), luckily it was harmless

Change-Id: I8cc12450378efa7434c4d66882378b715edd4a70
2022-03-08 23:29:40 +00:00
Bartosz Dziewoński eb1fe7a8fb CommentParser: Fix redundant uses of getHeadlineNodeAndOffset()
We call CommentUtils::getHeadlineNodeAndOffset() before constructing
the HeadingItem in CommentParser, so the range's startContainer
is always the headline node.

Change-Id: I2afb6ba9100e785cd91f31d82f4cea59fa8b5443
2022-03-08 23:29:34 +00:00
Bartosz Dziewoński 0e576216b2 CommentUtils: Fix confusing types in getIndentLevel()
Change-Id: I548cf4ad54e92c22da64caf53ee028a906cd3b62
2022-03-08 23:29:15 +00:00
Bartosz Dziewoński 584f6a020c Use tagName rather than nodeName when we know the node is an element
`tagName` is only defined on Element, and it returns its tag name.

`nodeName` is defined on Node, and it returns the tag name for Elements,
and a string like '#text' or '#document-fragment' for other types.

We were using both, which made it harder to reason about what types
we're dealing with.

Change-Id: I8e621e5872bdf78c84ec553cfbfcdbf0192f0589
2022-03-08 23:29:05 +00:00
jenkins-bot 1f7ff387a7 Merge "New topic: skip tabbing into the mode tabs until you've focused the body" 2022-03-08 23:18:37 +00:00
jenkins-bot 4b2f9ede8e Merge "Use MessageWidget's showClose option" 2022-03-08 22:41:39 +00:00
Ed Sanders 6869112aad Use MessageWidget's showClose option
Change-Id: I81292bd84ce6feefdb852f6a636109f68e55291d
2022-03-08 01:25:22 +00:00
Bartosz Dziewoński b2ee19b441 Remove check for CDATA nodes
Added in 76289cdf73,
should no longer be needed since we switch to Parsoid's
HTML parser in 3e6ab2c4d2.

Change-Id: Ic0b7ed8089b71f2338e604f68d547759e069f0b2
2022-03-04 22:14:41 +01:00
Ed Sanders 4f91a0b883 Highlight new comments when refreshing
Bug: T300215
Change-Id: I72655e05dccbe96f9dfa4ccca4e91b3edf133d97
2022-03-04 00:40:29 +00:00
Ed Sanders 487be9e202 Show error message as soon as we detect the parent comment has been deleted
Bug: T300504
Change-Id: I654422f7931f50503e51500508aea728adf327a1
2022-03-04 00:40:29 +00:00
Ed Sanders d619308098 Don't show auto-save notifications when dynamically updating the page
Bug: T302327
Depends-On: If94e603458a385ba6eb15c4e29144f72e3ad12ca
Change-Id: I28f965137b986d00ac7a020ca93d8dc5195f5d4f
2022-03-04 00:40:29 +00:00
Ed Sanders da49448f43 Poll for new comments in the section you are replying in
Bug: T300504
Change-Id: I3a887ab2f5260bb4893a3d680103c9d8ec767f45
2022-03-04 00:40:29 +00:00
jenkins-bot 094b77b4bb Merge "Handle reply/topic preview entirely server-side" 2022-03-02 14:13:59 +00:00
Ed Sanders 1032db4878 Move (auto) topic subscription initialisation to separate file
Bug: T302805
Change-Id: Ia901cba731233719dd1d5916eb5211a551d34091
2022-03-01 21:27:08 +00:00
Ed Sanders c70c1e76f3 Only bind page-level handlers once
Raise scope of pageThreads variable (renamed from `result`)
so we don't have to re-bind when it is updated, and use a
flag to ensure we only bind the handlers once.

Bug: T302810
Change-Id: I0a5b122b8e3f656f28f3dd4fa6aca8e7839be06b
2022-03-01 21:26:36 +00:00
Ed Sanders f5d4df12a9 Move highlightPublishedComment to highlighter.js
Bug: T302805
Change-Id: I429148b16f790e1d1f5cbbd84fc35139727b4402
2022-03-01 14:44:21 +00:00
Ed Sanders ecbe75c453 Move highlighting methods to separate file
Bug: T302805
Change-Id: Ie4a8ea3f351015ab5bb4b817ef997cf6d77428da
2022-03-01 14:29:10 +00:00
Ed Sanders b6136c9a58 Rename highlighter to debughighlighter
Change-Id: I8c3873fb345fee3687efb1632f3eae36c030f9cf
2022-03-01 14:20:18 +00:00
jenkins-bot 0dc293fc20 Merge "Warn when target comments in a link can't be found" 2022-02-28 23:24:15 +00:00
jenkins-bot e15ccb8a07 Merge "Highlight all comments since the oldest in a thread bundle" 2022-02-28 23:24:12 +00:00
Bartosz Dziewoński be74938855 Warn when target comments in a link can't be found
Links are generated to:
* Single comments, by a user or by a notification
* Potentially multiple comments (new comments since T),
  usually just by notifications.

If in either case no comments are found to highlight, warn the
user so they get some visual feedback that the notification worked
as expected, but that the comment was just deleted since.

Bug: T301602
Change-Id: I090c904481cf6f3e9f964fa43b10001e75b0bc90
2022-02-28 21:58:59 +00:00
Ed Sanders dc8b4e8d4f Highlight all comments since the oldest in a thread bundle
For topic subscriptions, further restrict this to comments
in the same thread.

Bug: T302014
Change-Id: Ifba218871122901031a891034e709b886fc406da
2022-02-28 21:58:10 +00:00
jenkins-bot e4fa34f025 Merge "Don't insert comment markers inside replaced elements (like <video>)" 2022-02-28 17:16:11 +00:00
jenkins-bot 542da89530 Merge "Don't detect comments within references" 2022-02-28 16:47:21 +00:00
David Lynch 039372e925 New topic: skip tabbing into the mode tabs until you've focused the body
Bug: T295511
Change-Id: I23f964b5d02dc1486e1dcf71c64d337a600fdf9d
2022-02-23 11:24:58 -06:00
Ed Sanders ae554cdd66 Fix legacy hint URI on mobile
Bug: T302307
Change-Id: I7ce370bb011f0b30505c1b195bf6c96317b159e7
2022-02-22 15:31:13 +00:00
Bartosz Dziewoński 1e3ce9c88a Don't insert comment markers inside replaced elements (like <video>)
Also special-case thumbnail wrappers generated by
MediaTransformOutput::linkWrap, for compatibility with
TimedMediaHandler.

Bug: T301427
Bug: T302296
Change-Id: I7f48d8b2261507c5a33526c54109f5187d062ed3
2022-02-22 15:11:34 +00:00
Bartosz Dziewoński 8a2715bdd5 Move signatureScanLimit to a constant in JS
Change-Id: Ieb60c148fd060ab62e4a493e2d0dff6c051f945c
2022-02-21 22:42:14 +01:00
Bartosz Dziewoński 4244418e56 Don't detect comments within references
Bug: T301213
Change-Id: Ifd5198651c8ed0ce53379fb5e35938089cd54a09
2022-02-21 19:57:44 +00:00
Bartosz Dziewoński 1d43a024f9 Handle reply/topic preview entirely server-side
We were rendering the preview in a completely different way from how
we would add the real reply, and the results would be different
sometimes, particularly for multi-line comments with messed-up markup.

Render it server-side instead, in a very similar way to real replies
(generating a DOM list node and transforming it through Parsoid),
although without the whole context of the page to improve performance.

We can remove a lot of client-side code that was used solely for this.

This will allow the preview to accurately display the signatures when
we change how they are added (T278442), without us having to implement
those changes again from scratch for the preview.

Change-Id: I53341f4d4075c25b67ec3b3032bff9b8a880dcd3
2022-02-21 17:42:28 +01:00
Bartosz Dziewoński 8e44b43df0 Split off ThreadItemSet from CommentParser
Goal:
-----
Finishing the work from Iadb7757debe000025e52770ca51ebcf24ca8ee66
by changing CommentParser::parse() to return a data object, instead of
the whole parser.

Changes:
--------
ThreadItemSet.php:
ThreadItemSet.js:
* New data class to access the results of parsing a discussion. Most
  methods and properties are moved from CommentParser with no changes.

CommentParser.php:
Parser.js:
* parse() returns a new ThreadItemSet.
* Remove methods moved to ThreadItemSet.
* Placeholder headings are generated slightly differently, as we process
  things in a different order.
* Grouping threads and computing IDs/names is no longer lazy. We always
  needed IDs/names anyway.
* computeId() explicitly uses a ThreadItemSet to check the existing IDs
  when de-duplicating.

controller.js:
* Move the code for turning some nodes annotated by CommentFormatter
  into a ThreadItemSet (previously a Parser) from controller#init to
  ThreadItemSet.static.newFromAnnotatedNodes, and rewrite it to handle
  assigning parents/replies and recalculating legacy IDs more nicely.
* mw.dt.pageThreads is now a ThreadItemSet.

Change-Id: I49bfe019aa460651447fd383f73eafa9d7180a92
2022-02-21 16:22:32 +00:00
Bartosz Dziewoński 4613ae78e7 Change CommentParser into a service
Goal:
-----
To have a method like CommentParser::parse(), which just takes a node
to parse and a title and returns plain data, so that we don't need to
keep track of the config to construct a CommentParser object (the
required config like content language is provided by services) and
we don't need to keep that object around after parsing.

Changes:
--------
CommentParser.php:
* …is now a service. Constructor only takes services as arguments.
  The node and title are passed to a new parse() method.
* parse() should return plain data, but I split this part to a separate
  patch for ease of review: I49bfe019aa460651447fd383f73eafa9d7180a92.
* CommentParser still cheats and accesses global state in a few places,
  e.g. calling Title::makeTitleSafe or CommentUtils::getTitleFromUrl,
  so we can't turn its tests into true unit tests. This work is left
  for future commits.

LanguageData.php:
* …is now a service, instead of a static class.

Parser.js:
* …is not a real service, but it's changed to behave in a similar way.
  Constructor takes only the required config as argument,
  and node and title are instead passed to a new parse() method.

CommentParserTest.php:
parser.test.js:
* Can be simplified, now that we don't need a useless node and title
  to test internal methods that don't use them.

testUtils.js:
* Can be simplified, now that we don't need to override internal
  ResourceLoader stuff just to change the parser config.

Change-Id: Iadb7757debe000025e52770ca51ebcf24ca8ee66
2022-02-19 19:51:57 +01:00
Bartosz Dziewoński 99b5de8038 Split Data class into ResourceLoaderData and LanguageData
The Data class contained utilities for two unrelated purposes.
Split each half to a separate class.

Notably, this improves the signature of the getLocalData() function.

Change-Id: Icde615fb9d483fee1f352c34909b37f8ffde8081
2022-02-19 19:37:34 +01:00
Bartosz Dziewoński ae9f26a9e5 Various code quality tweaks
(suggested by PhpStorm)

composer.json:
* Document required PHP extensions

Parser.js:
* Remove incorrect param documentation
* Fix some typos in comments (missing parentheses)

CommentParser.php:
* Fix some typos in comments (missing parentheses)

ImmutableRange.php:
* Remove unused property
* Add a `throw` to indicate that code path is unreachable

SubscribedNewCommentPresentationModel.php:
* Add missing `return false`

CommentParserTest.php:
* Remove unnecessary pass-by-reference

CommentModifierTest.php:
* Remove unused variable

CommentParserTest.php:
* Don't construct Element objects directly. PHP's DOMElement allows
  it, but Parsoid/Dodo's doesn't, and we use the latter for static
  analysis. This generates all kinds of confusing warnings.

Change-Id: Ia9598ebea0e99830dd485296e94a9d96acc4b258
2022-02-19 19:36:52 +01:00
Bartosz Dziewoński f9f7aeb295 Prevent floated content from leaking out of the preview container
Change-Id: Ic4c5267cbe44fa22537a708f66e08503d0c1f816
2022-02-14 20:47:39 +01:00
Bartosz Dziewoński e414d1acaf Improve handling for comments after fake headings using wikitext ;
Bug: T265964
Change-Id: I77db68928c5426fd885a277eec52c6e164d559bb
2022-02-11 23:35:32 +00:00
Bartosz Dziewoński 4ff65cf5e2 Update references to warningbox class
Bug: T301401
Depends-On: I632e42ee9065b38dca443beae1cb01ef714cae7b
Depends-On: I7a7046bf9b9765cbb82ec3caa1530de7f05e0da4
Change-Id: Ia42cf9cd5b63cfe679bdf90bfcbf528f14f9ebcc
2022-02-09 21:36:50 +01:00