Commit graph

383 commits

Author SHA1 Message Date
Kosta Harlan c6c7dd2fb0 overflow menu: Add hooks for registering and interacting with items
Why:

- We want to allow extensions to register interactive menu items in the
  overflow menu.

What:

- Create a PHP hook to allow extensions to provide menu items
  for rendering in the overflow menu
  - The hook allows for registering resource loader modules required by
    the menu item
  - The hook passes in some contextual information, like the thread
    item data, context source object, and if the page is editable
- Create a JS hook that fires when a user selects one of the menu items
- Example implementation: Ie9afbedb4f24cbd75eb48bb21dc9f6d8d732d853

Misc:

- Remove b/c code that existed to handle a transitional period where
  JSON encoded overflow menu data did not necessarily exist in the
  parser cache
- Rename code instances of ellipsis button / data / menu to refer to
  "overflow menu"
  - Some renames will have to wait until parser cache is updated; these
    are noted with TODOs

Bug: T342251
Change-Id: I5f2a51791f8ba7619d1399a4b93111e9bb44e172
2023-10-05 15:50:33 +01:00
Ed Sanders 58cb277ced Factor out permalink code into separate file
Change-Id: Ib56a0b9766529f517ae8c5f743f891b06f3cf690
2023-10-05 10:55:00 +01:00
jenkins-bot a475754d68 Merge "Permalinks: Replace hard-coded notification with i18n string" 2023-10-03 14:49:01 +00:00
jenkins-bot 0e6ca97067 Merge "Show a hint for ctrl-enter for comment submission if just enter is used" 2023-10-03 14:41:11 +00:00
Ed Sanders 8405305f2a Permalinks: Replace hard-coded notification with i18n string
Change-Id: Id68006b67a055c32e2ecccdac94a37e03c0d722e
2023-10-03 15:31:48 +01:00
David Lynch 5b6018b244 Show a hint for ctrl-enter for comment submission if just enter is used
Bug: T326500
Change-Id: I7dc0e2ed7ccc101e896c18969b1f7d679150190b
2023-10-03 09:04:59 -05:00
Ed Sanders b63884f561 Turn comment timestamps into permalinks
Bug: T275729
Change-Id: Ica9cfd9743a67fce170e8b078016fa79bf6fbb84
2023-10-02 14:53:47 +01:00
Bartosz Dziewoński 5c612862a1 Acquire a temporary user username before previewing
When rendering a preview of the comment in order to check whether it's
signed, use the previously acquired temporary user username for the
signature.

Depends-On: Iec8a15dadd595bed0f7e54f907fbb8e192b45cf3
Bug: T331397
Change-Id: I7aeb1cc4c107ed752dc805405780a7609a6d4d3c
2023-08-22 23:42:32 +02:00
James D. Forrester 7c3ffa1107 build: Update MediaWiki requirement to 1.41
All extensions in the MediaWiki tarball are expected to track MediaWiki's release directly.

Change-Id: Ib1d90e83ad03887b40908fdc422dc6a9cf708be3
2023-08-19 13:14:07 +08:00
jenkins-bot a7b703c589 Merge "Use HookHandlers for BetaFeatures hook" 2023-08-16 08:51:41 +00:00
Umherirrender e5cbc838a8 Use HookHandlers for BetaFeatures hook
Bug: T273303
Change-Id: I685eb618b7ca2dc5b10bc5f08bfd235f682ff3c5
2023-08-16 05:23:25 +00:00
Umherirrender 3515751592 Use HookHandlers for Echo hook
Bug: T273303
Depends-On: Iffa2b409502b4269c9746e0304feb4aaee37a86e
Change-Id: I489a37b7b377b874ab3384bdc071e9c63701345a
2023-08-16 00:39:43 +02:00
Ed Sanders df6a5e0d6e Add extra documentation to config for ...reply_icon_languages
Change-Id: Ib03fe30a85046f96adf65c0b7a92f920c4585465
2023-07-24 18:50:38 +01:00
jenkins-bot 671ee1c685 Merge "Replace the last use of mediawiki.Uri" 2023-07-07 15:00:37 +00:00
Bartosz Dziewoński cd6bccbb5a Replace the last use of mediawiki.Uri
Depends-On: Ia95a27c7d7ebc9e4779f82598152145f02993b29
Change-Id: I5bd5f1ea0c708d685fbfa104a03844275c61dae7
2023-06-21 15:33:15 +02:00
Bartosz Dziewoński f7d98d7690 Redo wrapper for localStorage integration
I think the issues in T329299 are caused by partially autosaved
comments. We store data in multiple localStorage keys, and if some of
them are stored but others are not (due to exceeding storage quota),
our code can't handle the inconsistent state.

We already have a wrapper around localStorage that tries to cover up
these issues. Change it so that all values specific to an instance of
a reply tool are stored under one localStorage key. This ensures that
all updates consistently succeed or fail, with no partially stored
state.

One of the reasons we haven't done this is because this requires the
whole data to be serialized to JSON every time, but our experience
with VE change 4355d697aa shows that this is fast enough.

Extra changes:
* Remove storagePrefix, now redundant
* Remove use of createConflictableStorage, now redundant
* Prefix the key with 'mw' as advised by mw.storage documentation
* Use ES6 syntax for the new code (just for fun)
* Use consistent expiry (T339042)

Bug: T329299
Change-Id: I347115f7187fd7d6afd9c6f368441e262154233b
2023-06-19 16:45:08 +02:00
Ed Sanders 0672f4c74a Remove DiscussionToolsEnableMobile
This existed to do a staged rollout to WMF wikis.

Bug: T322497
Change-Id: I4562c166f3f07bce972f9d599de211147d2dc631
2023-06-06 13:25:21 +01:00
Ed Sanders 99f132f05e Remove most DiscussionTools feature configs
Only visual enhancements are yet to be made available everywhere.

Bug: T322497
Change-Id: Ia8a7673f23d1ee31bb7e53d8e75f982d1e48d1ec
2023-06-06 13:25:19 +01:00
Ed Sanders 3b4673bfad Drop the DiscussionToolsEnable feature flag
This existed to do a staged rollout to WMF wikis, which was
finished in March 2021 (T276497).

Bug: T322497
Change-Id: I8851f0243e6920d93f3eb1870d1604bf201ed5a4
2023-06-06 13:08:35 +01:00
Bartosz Dziewoński fda08f7b54 Remove the new topic tool hint
This temporary message has been shown for long enough.

This mostly reverts:
* d0eec56f6d
* f24a73a05a
* bd40523843

Bug: T322495
Change-Id: Ic1762e170547fba8b5fda225eff21e515ace512d
2023-05-24 20:15:49 +02:00
jenkins-bot 8e94616fad Merge "Update warning about logged-out editing for temp user creation" 2023-05-16 17:51:45 +00:00
Bartosz Dziewoński 8b2e0d7be9 Update warning about logged-out editing for temp user creation
Depends-On: I2ea656a8a1704a495f1a94fede1a8829ba7325a1
Depends-On: I84ce108b4d46b4e19fad032382f8b69a1b0065d5
Bug: T332432
Change-Id: I8487d7d249c66bf3c3c60120f490a6ba72745aac
2023-05-16 18:57:46 +02:00
jenkins-bot 518d6c406c Merge "Add maint script to opt out active users from the new topic tool" 2023-05-16 16:05:52 +00:00
David Lynch 71d2e76d7f Update a/b test code for visual enhancements a/b test
Strip it out from applying to logged out users and make the test work
for multiple features

Bug: T333715
Change-Id: Id15a8a99c2ea8e6fc14fc83baf2ed6ebaaf754c8
2023-05-08 01:30:21 -05:00
Bartosz Dziewoński 2321e645f4 Add maint script to opt out active users from the new topic tool
Opt out users who are active (according to Special:ActiveUsers)
and have at least 100 edits, unless they have already opted in
by enabling the beta feature.

To run the script, use the new run.php wrapper:

  php maintenance/run.php MediaWiki.Extension.DiscussionTools.Maintenance.NewTopicOptOutActiveUsers

Bug: T317375
Change-Id: I953c4c9d00a60b00a621049b119ba96c9682004d
2023-05-05 18:51:38 +02:00
jenkins-bot d74fff198d Merge "Add an API version of Special:FindComment" 2023-04-26 18:02:09 +00:00
Ed Sanders 0be67d3f20 Add an API version of Special:FindComment
Bug: T333375
Change-Id: I02f032b0a36d384b9ac9e397106eb30d325421d8
2023-04-26 17:09:15 +01:00
jenkins-bot 12abc51940 Merge "resources: Use core's manageForeignResources script now we can" 2023-04-25 19:09:28 +00:00
James D. Forrester a8a645e9e4 resources: Use core's manageForeignResources script now we can
Depends-On: I5df95ea4799d0efce60b58a35cb916c8e0f555b0
Change-Id: If6b323a46ec8eff1b908b4524b48527913a6f343
2023-04-25 14:46:16 -04:00
gerritbot 605b6f96bf Update moved class WikiMap
See T321882. Moved in I60cf4b9ef02b9d5

Bug: T321681
Change-Id: I2381ae00735c6924eba97141e3194ee111f75cc7
2023-04-25 09:53:18 +00:00
Bartosz Dziewoński 316e741868 Support topic subscriptions when JavaScript is disabled
Unsubscribing was already available from Special:TopicSubscriptions
when JavaScript is disabled.

* Add links to subscribe/unsubscribe in CommentFormatter
* Update links in skin navigation
* Add support for subscribing in the actions

Bug: T321431
Change-Id: If3c4bf7df309d0d98237c3b7b9c129cc2f72cda3
2023-04-10 21:30:19 +02:00
jenkins-bot 2b5c98c42c Merge "Add optional tracking category for comments in the lede section (before first heading)" 2023-04-08 01:15:37 +00:00
Bartosz Dziewoński 6a7d949703 Remove integration with removed MobileFrontend talk page tools
* Remove the hook we used to disable that feature
* Remove CSS that only applied when it was enabled
* Update code comments that referred to it

Bug: T319145
Change-Id: If21a04f6a087289d8249a786f7c991e5e12c9bed
2023-04-04 17:17:49 +02:00
jenkins-bot 24185a1471 Merge "styles: Replace 'mediawiki.ui/variables' call with skin variables" 2023-04-04 15:12:11 +00:00
Volker E 03d1ea70ab styles: Replace 'mediawiki.ui/variables' call with skin variables
Replacing 'mediawiki.ui/variables.less' @import with
new skin-aware 'mediawiki.skin.variables.less' standard.
Also
- replacing several static values with new Codex design token featuring
  skin variables – `background-color` `color`, `border-*`, `box-shadow`.
- removing skin overrides like `.skin-monobook`, they are now covered
  by the skin variables.
Patch requires MediaWiki core version >= v1.41.0.

Bug: T332541
Co-Authored-by: Volker E. <volker.e@wikimedia.org>
Change-Id: I36c7a0f5ed06c3eccd792b19b6a1972663f20df6
2023-04-04 01:14:24 -07:00
Ed Sanders 856b90fa3e Support hiding reply links in archived pages or sections
This can be done within sections using CSS:
* mw-archivedtalk

Or at a page level using a magic word:
* __ARCHIVEDTALK__

"archivedtalk" still detects the comments, but disables features
as appropriate for an archived conversion, i.e. the reply tool.

Bug: T295553
Bug: T249293
Change-Id: Ic47693e9a2f53f92563ccdd50203fb55c12d0493
2023-04-03 18:34:57 +02:00
David Lynch fed37fcc82 preloadparams on other platforms supports numbered indexes
Change-Id: I4f1f5e8758007ab95e342ad5429c909f495d8deb
2023-04-01 22:49:06 +02:00
Bartosz Dziewoński 18689b370a Add optional tracking category for comments in the lede section (before first heading)
The tracking category is disabled by default and has to be
enabled by overriding the localisation message
'MediaWiki:Discussiontools-comments-before-first-heading-category'.

Bug: T324139
Change-Id: I6e4818e9421f76aec814444b2da9f5d8585c75fd
2023-03-28 01:32:04 +02:00
jenkins-bot 9e51f11b8c Merge "Add new topics subscription button in Minerva" 2023-03-27 23:04:55 +00:00
Ed Sanders e6a255215f Add new topics subscription button in Minerva
Bug: T332730
Change-Id: Ib6915319eeae4aa32c875decd51e7fd8db4dbd16
2023-03-27 23:28:38 +01:00
jenkins-bot d08871fdae Merge "Centralize EditAttemptStep logging code in WikimediaEvents" 2023-03-27 15:30:43 +00:00
Bartosz Dziewoński 8d2304b3ed Add Special:DiscussionToolsDebug
It demonstrates how the DiscussionTools extension recognizes
the threads and comments present on a page, to help in debugging
or understanding its behavior.

Co-Authored-By: Ed Sanders <esanders@wikimedia.org>
Change-Id: Idbc90bd8d7742615178331889daae5f94a007fcc
2023-03-23 20:43:31 +01:00
Ed Sanders 80dd6e2d7c Add new topic subscription button to page actions
Bug: T263821
Change-Id: Iab7f7d5fd1f7c229c2e0cda9369676cfd401a24e
2023-03-20 14:51:10 +00:00
Ed Sanders 2bae1864bd New topic notifications
Bug: T263821
Change-Id: Ied465e732122a1ee39ab4510f73aca11ef556c35
2023-03-20 14:41:53 +00:00
Bartosz Dziewoński dcecf76ff1 Centralize EditAttemptStep logging code in WikimediaEvents
PHP logging code is not moved.

* Use the new mw.track() handlers from WikimediaEvents
* Ensure that 'integration' and 'editor_interface' are set on init
  events, since they're not hard-coded in the handler any more
* Remove the setting of 'editingStatsId' tracking parameter,
  now happens in WikimediaEvents (by way of VE ArticleTargetSaver)
* Remove code connecting ve.track to mw.track, now happens in VE

This must be merged together with WikimediaEvents change
Iace4d53a972396ca5b8713000570cc47c9986034 (but we can't use
Depends-On, because CI requires code here to be removed first).

Bug: T332438
Change-Id: I0ef0a96aafdf89a4ebe32131a85b18c25744bb2c
2023-03-18 13:26:10 +00:00
Ed Sanders 12e8d1a17d Allow visualenhancements on pages with __NEWSECTIONLINK__
Exclude the main namespace unless it allows signatures.

Allow this feature to be disabled via config so
we can do a slow rollout.

Bug: T331635
Change-Id: If46bff5620c5245d5b82653ee96282532fd00c28
2023-03-13 15:32:23 +00:00
Bartosz Dziewoński fce317ace4 Move TOC metadata generation to a post-processing step
Instead of generating the TOC HTML additions immediately, store
the data we need using ParserOutput::setExtensionData(), and use
the OutputPageParserOutput hook to fetch it and generate the HTML.

We check that the stored data is present before using it to avoid
issues with cached ParserOutput objects.

Bug: T328122
Change-Id: I7d4988cd568f10b7995a4d744e0ec6e7ce081b0e
2023-02-07 02:39:11 +01:00
Bartosz Dziewoński 48fd5e09bb Remove 'DiscussionToolsLegacyHeadingMarkup' config option
Bug: T314714
Change-Id: Ie268d1282f81c81c5a18d5858dcf7023515101b7
2023-01-22 19:24:36 +01:00
Ed Sanders 5c5073b5ba Enable visual enhancements on all talk namespaces
Bug: T325417
Change-Id: I099a7d03f059f08595dec43ff0205fd5ba765885
2023-01-11 18:35:51 +00:00
David Lynch d3a44b1092 Language code for zh-yue wiki is just yue
Bug: T323537
Change-Id: Ia6563b15ac92afc79eb3507bdd69bc4bf3000e33
2022-12-22 14:04:49 -06:00