Commit graph

1429 commits

Author SHA1 Message Date
Ed Sanders a74c00ba8c Prefer arrow functions for callbacks
This allows us to remove our `this` bindings.

Change-Id: Ie8c8c38d36af8a033b5181870c39f8981a57b939
2024-04-19 12:34:23 +01:00
David Lynch ebc884e217 Also don't check for moved topics on fragments starting with !/
Similar reasoning for our existing filter on just `/`; it's only really
used in state routing.

Bug: T361322
Change-Id: Ibcf1a58a884b953003012640041471d3bb5c9450
2024-03-29 10:07:43 -05:00
Ed Sanders eb92db2b08 topicsubscriptions.js: No longer assume both buttons and links exist in DOM
Bug: T360942
Bug: T359751
Change-Id: I98d50a734dc9bd37d7d488ed97d5a47e65790587
2024-03-26 15:17:45 +00:00
jenkins-bot 29b4ec8b75 Merge "ReplyLinksController: url.searchParams -> searchParams" 2024-03-25 20:40:12 +00:00
jenkins-bot ab9aae8172 Merge "Pass through dtenable from main request query string" 2024-03-25 20:16:46 +00:00
Ed Sanders fba7edbbeb ReplyLinksController: url.searchParams -> searchParams
Cache the object property as we never use the rest of the URL.

Change-Id: I1a0ec90b2a4366f126150469c72908ec22817d4f
2024-03-25 18:33:16 +00:00
Ed Sanders 5957ac55df Pass through dtenable from main request query string
Instead of passing dtenable=1 unconditionally for API requests.

Bug: T360863
Change-Id: I42c651558d95a88eaf6006b6509caa4e41df8464
2024-03-25 18:26:53 +00:00
David Lynch 5276729d3e Add #top to the ignore list for checking for moved topics
Top is in the WHATWG spec as a magic value that always navigates to the
top of the document.

There used to be a #top element in pre-Vector2022 skins, and it's in
fairly wide use on some wikis in signatures and via gadgets, so many
links exist that point to it.

Bug: T360274
Change-Id: Ia12464239ab2cdc428c570d0cf5df1c0d1780b7a
2024-03-22 22:01:17 -05:00
jenkins-bot b8d42a0667 Merge "Use standard gray color for timestamp links" 2024-03-13 15:57:31 +00:00
jenkins-bot 63dd90a8dc Merge "Fix collapsed sections when recovering autosave on mobile, take 3" 2024-03-07 17:36:12 +00:00
David Lynch 01749e4970 Instrument when permalinks are copied
Bug: T359182
Change-Id: I3a7cfc0eaf6472804cc587cfa320bdc20b462492
2024-03-05 11:35:46 -06:00
Bartosz Dziewoński 4958416caf Only include one set of DiscussionTools buttons in the page HTML
We no longer need to support toggling visual enhancements without
reloading the page, so we can remove the extraneous set of buttons
to reduce HTML size.

Bug: T322457
Change-Id: I54e57c754c54b7e611069f9832d1ebabf141a396
2024-03-01 16:51:17 +00:00
Bartosz Dziewoński a9966234ac Fix collapsed sections when recovering autosave on mobile, take 3
We need to more carefully wait for mobile section toggling to happen.
Follow-up to 3957d7ac25.

Bug: T338920
Change-Id: I1bd31483c5be9428075f07494e89b06f19f8bf23
2024-02-28 04:43:59 +01:00
jenkins-bot 545d17d2c9 Merge "Replace spaces in link fragments before searching for topics/comments" 2024-02-26 19:21:11 +00:00
Ed Sanders 16e308119f Replace spaces in link fragments before searching for topics/comments
MediaWiki should never generate links like this, but users or 3rd
party tools probably create them accidentally quite regularly, and
we do a similar thing with Title normalisation.

Change-Id: Ia467f422578bcb9b4d3fb8feab0b85f4b6436f7e
2024-02-26 18:59:00 +00:00
jenkins-bot 85f75fb8ed Merge "Parser: Minor code cleanup" 2024-02-16 12:40:19 +00:00
jenkins-bot a386c3a251 Merge "Remove "Read as wiki page" feature on mobile talk pages" 2024-02-15 23:42:09 +00:00
Bartosz Dziewoński ef13c65d55 Use standard gray color for timestamp links
Bug: T275729
Change-Id: I122155f02a7cd771f358b7536909bc5f59abee2c
2024-02-15 03:23:53 +01:00
Ed Sanders c99e07881d Comment MonoBook fixes which are actually Apex fixes
Change-Id: I44ddc7ad4cef556b71fb3f6710d92500dfd4e9ac
2024-02-13 13:54:38 +00:00
Ed Sanders bb579ef4c6 Reduce opacity of overflow menu button
This is still an experimental feature and not deployed
anywhere, but as we mute the timestamp to indicate it
is more part of the interface than the content, we should
do the same with this overflow menu button.

Change-Id: I30391912377692fffa9e67e8c4ca63db715878bf
2024-02-09 23:53:20 +00:00
jenkins-bot 26abd2383d Merge "Fix collapsed sections when recovering autosave on mobile, take 2" 2024-02-08 16:38:22 +00:00
Bartosz Dziewoński 6a1f2accee Parser: Minor code cleanup
We had some unused variables and roundabout checks.

Change-Id: I454b60ffa05c1cc12288c5de88c849a25aa35447
2024-02-08 16:59:04 +01:00
jenkins-bot 297f4f01dd Merge "Parser: Fix the main loop getting stuck on some signatures" 2024-02-07 22:01:56 +00:00
Bartosz Dziewoński 9db35873a4 Parser: Fix the main loop getting stuck on some signatures
In certain cases the parser could go back rather than forward after
finding a signature, causing it to find the same signature forever
until it ran out of memory.

Test cases coming later in a separate patch.

Bug: T356884
Change-Id: I8ac72b05e5e4ed45e6119c012a69708c9d8eda29
2024-02-07 22:33:57 +01:00
jenkins-bot 6816c15a03 Merge "Fix exceptions on weirdly encoded URLs" 2024-02-05 22:22:02 +00:00
jenkins-bot 4c2442eeb6 Merge "Ignore transcluded items when finding permalinks" 2024-02-05 21:46:08 +00:00
Bartosz Dziewoński 3957d7ac25 Fix collapsed sections when recovering autosave on mobile, take 2
Follow-up to 8a8c7270cf.

I think this wasn't working becase we were doing it in the wrong
order (reply tool initialization would disable toggling section
state before toggler toggled it open).

Bug: T338920
Change-Id: I7ed3d5c149ddb3d33cb67010f032c63e175687f2
2024-02-04 00:21:45 +01:00
Bartosz Dziewoński f7a8ba08fb Ignore transcluded items when finding permalinks
* Keep the information about this in the API result, which we were
  previously omitting
* Use it instead of duplicating the logic client-side

Bug: T356131
Change-Id: I7e7342e9d94a171b5ef56e646871c18c8c39c44c
2024-02-04 00:07:37 +01:00
Bartosz Dziewoński 1bb3b597ec Fix exceptions on weirdly encoded URLs
`decodeURI( fragment )` can throw if the fragment isn't correctly
encoded – e.g. when it's just '#%'.

Use mw.util.percentDecodeFragment() instead, which uses a more
resilient algorithm.

Change-Id: I8447771ad2ae33da52b71d4127981dd8a2018a7d
2024-02-03 23:48:54 +01:00
Bartosz Dziewoński d0c72f155a Fix unexpected margin on footer links in new topic tool
The new topic tool is not nested in .mw-content-ltr/-rtl,
so the rule did not apply.

Change-Id: If231170f7ab394be075d4d936b8be4c8ae97931c
2024-02-03 23:37:21 +01:00
Ed Sanders df7d101cd2 Use decodeURI for comment ID searches as well as heading searches
Bug: T356199
Change-Id: I8d366c706692caf89a2af9f11c14a9aad9422b7c
2024-02-02 17:34:26 +00:00
David Lynch 7b941aae1c Add an exception for ConvenientDiscussions-style permalinks
Bug: T349653
Change-Id: I775774084bb8abf2bc99475b426d581bed306306
2024-01-30 16:44:30 -06:00
David Lynch c4bbf8756a decodeURI fragments before sending them to discussiontoolsfindcomment
Section titles containing non-ASCII characters were being passed through
URL-encoded, resulting in no results being found.

Bug: T356199
Change-Id: Iac56ee434a37baf3d170aec992d2f2d8679b6f1f
2024-01-30 14:14:18 -06:00
Ed Sanders 8069585489 CommentParser: Ignore generated timestamp links
This will be present in parser cache output and can
sometimes be mistaken for user page links.

Bug: T356142
Change-Id: I800b23d8466f72affcadfa336aab07abf7f8d79e
2024-01-30 10:29:36 +00:00
David Lynch 87c8a26483 Require is still required to load CommentTarget
Follow-up to d647870dca.

Change-Id: I63dbedbbd156a8b1619849170eac9dc6da262ddd
2024-01-23 14:58:23 -06:00
Ed Sanders d647870dca Use ve.init.mw.targetFactory.create()
Change-Id: Ie30d813ba933e03e9c712f78eac155a41052d4b0
2024-01-23 19:42:10 +00:00
David Lynch d74eccad34 Comment-not-found toast not showing when enablePermalinksFrontend==false
results[ 0 ] would be undefined, causing a later JS error before the
toast could be shown.

Bug: T355165
Change-Id: Ia591a1e4db0acfa377201c355938a32f680393ce
2024-01-16 11:13:18 -06:00
Ed Sanders 4f217f4dab controller: Use replyWidgetPromise when opening new topic tool
This prevents an exception being thrown if you open the
new topic tool when a reply widget is still loading.

Change-Id: I17da48ddf91394d05cc82613ce5517f1e176750b
2024-01-05 16:20:30 +00:00
Ed Sanders b6ebb5db56 CommentController/ReplyWidget: Document events
Also rename CommentController#teardown to onReplyWidgetTeardown,
and NewTopicController#clear(Storage) to onReplyWidgetClear(Storage).

Change-Id: Ib1dd50ca69aac6f1836674d1a6aefa2402844c57
2024-01-05 16:20:30 +00:00
Ed Sanders 811dce7bf7 CommentController#showAndFocus: Use replyWidgetPromise
We shouldn't assume callers of this method have waited
for the replyWidget to be built.

Bug: T354292
Change-Id: Ic66b4f04b8786b07f520e329adda37efcf498dad
2024-01-05 15:26:19 +00:00
Bartosz Dziewoński 91d7cdb704 Remove "Read as wiki page" feature on mobile talk pages
Bug: T280417
Change-Id: I8f24531cbe1b6bb3f434c91a9523b0a11110d8e6
2024-01-04 19:34:48 +01:00
jenkins-bot 3a2e10588b Merge "Tweak CSS to deal with Parsoid's <section> tags" 2023-12-19 16:50:41 +00:00
jenkins-bot 078f57b427 Merge "ThreadItem.js: Rename getNativeRange to getRange" 2023-12-18 17:21:34 +00:00
David Lynch 95121b7364 Stop comment-not-found notification always showing when requestedSince
`TEST && false || true` is always true regardless of `TEST`, we want
`TEST && (false || true)` instead.

Bug: T353568
Change-Id: I72fa6b87f43a9d8439883dfedc35fe82974b35de
2023-12-16 09:20:19 -06:00
Ed Sanders 329a268564 ThreadItem.js: Rename getNativeRange to getRange
Makes the class more similar to PHP. The non-native
ranges exist for efficiency, but users will usually
want native ranges.

Change-Id: Ifd7dd034d2e0f3b9af050ecdab3e063df73dde5e
2023-12-15 16:22:52 +00:00
jenkins-bot 264869a561 Merge "ReplyWidgetVisual: Replace deprecated selectLastContentOffset call" 2023-12-08 23:33:00 +00:00
Ed Sanders b60be160ac ReplyWidgetVisual: Replace deprecated selectLastContentOffset call
Change-Id: I80b64ec1d3ecf1985c29a8efc3d072778ffe783f
2023-12-08 11:09:20 +00:00
Ed Sanders a853e6f3d2 Remove { passive: true } from removeEventListener
This option doesn't exist when removing an event.

Change-Id: I2449fec2b2368f829d93eea9a13c13aea1ab75f8
2023-12-08 10:59:40 +00:00
jenkins-bot d69dc24161 Merge "Ignore signatures with invalid timestamps" 2023-12-07 18:00:09 +00:00
Ed Sanders c82783a5b6 Find a heading by title in archives
* Looks for heading IDs matching "h-<heading text>-%" that once
  existed on the target page.
* For such IDs, finds where those items currently exist,
  presumably in an archive.

Pros:
* Doesn't need to know anything about the local wiki's archiving
  conventions, so can be deployed universally.

Cons:
* ID conflicts will return matches in unrelated archives, e.g.
  MassMessages.

Bug: T349653
Change-Id: Ie94efd0503e9f4689d3421babe445f9f4e2b4fb7
2023-12-06 18:39:28 +00:00