Commit graph

414 commits

Author SHA1 Message Date
Ed Sanders d8f564fe71 Show confirmation prompt if trying to submit a new topic without a title
Bug: T334163
Change-Id: Ib961632636d5b7134219cddde1638c6962209001
2024-08-06 09:44:27 -05:00
Umherirrender 2a932e598c Use expression builder instead of raw sql
Change-Id: I0cb5fa07d63bc93089a4956097eee7a41dbc99e7
2024-07-21 23:25:41 +02:00
Fomafix b06b96b915 Inject services into DiscussionToolsHooks
Change-Id: If15fd7cca27832ed8ff6738c90556be701be269f
2024-07-03 15:00:54 +00:00
Ed Sanders 66ddcf5b64 Remove A/B test code
It's unlikely we'll do another feature A/B test any time soon.

Bug: T322492
Bug: T341491
Depends-On: Ia3712e2930fcd971bce44f568430602ce3949f23
Change-Id: I1ef4191f9466b7420a2fead571615ed6d49f873e
2024-06-21 21:08:15 +00:00
jenkins-bot d8da88055a Merge "Remove WMF-specific "discussiontools-autotopicsub" settings" 2024-06-16 09:32:41 +00:00
jenkins-bot 7c9450489d Merge "Use ConditionalUserOptions for "echo-subscriptions-email-dt-subscription"" 2024-06-16 09:32:34 +00:00
Bartosz Dziewoński 0f601b690a Remove WMF-specific "discussiontools-autotopicsub" settings
WMF config change should be deployed first: Ica7dba4f17eb3e57a1a2415cc970c54a67eac696

The default value for this preference was already '1', and this code
was a no-op unless it was overridden to '0' like it was in WMF config.

Bug: T357221
Change-Id: I6b09bbea9bfb7a8f8ed17114dc59e657c5b66e91
2024-06-15 13:05:07 +00:00
Bartosz Dziewoński 488e35d82e Use ConditionalUserOptions for "echo-subscriptions-email-dt-subscription"
WMF config change should be deployed first: Iaff2d5ffee78d6200e1fa971c5c62137a400005d

Bug: T357221
Change-Id: I2744d52c5ff8c89166c19ab0ff2b4a27bfbf7cd7
2024-06-15 13:04:58 +00:00
Ed Sanders a86897f890 Comment thanking
Bug: T249893
Change-Id: I64f7abc26bfc3e7b226340934a637a555edf754f
2024-05-28 17:47:09 +02:00
Bartosz Dziewoński 52ae0f3152 Special:TopicSubscriptions: Use permalinks when available
When permalink data is available, display a permalink using
the current page title, instead of a plain link to the section
at the time of subscription.

Consolidate and clean up some existing permalink code.

Bug: T306373
Change-Id: Ie2f63cbfdbfa703530205201dfcfb0e5ad053b35
2024-04-04 13:44:06 +00:00
Ed Sanders 5ba0bfa026 Remove temporary newsectionlink_enable config
This was intended as a temporary config to facilitate a
staged rollout (T331635) which has now completed.

Change-Id: I432ec0a24b8e8c12b62556ff6703abff32a2fced
2024-02-19 17:34:23 +00:00
jenkins-bot a386c3a251 Merge "Remove "Read as wiki page" feature on mobile talk pages" 2024-02-15 23:42:09 +00:00
James D. Forrester e0fa5168fa extension.json: Drop RL targets definitions, no longer honoured
Bug: T328497
Change-Id: I0b6639e6e08373c5425a8035761d9a0b73e0e7d7
2024-01-12 08:44:20 -05: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
Umherirrender 64bcb583e9 Use namespaced classes
Done automatically via script
Change to extension.json done manually

Change-Id: Ied7bbddd357290ac6be6bf480be0ee9116e77365
2023-12-11 16:38:02 +01:00
Ed Sanders 4733eb0362 Show new location of missing comments in notification
Bug: T304579
Change-Id: I5c9229a25875f0bb73c2a4dbfd0e1ac25f9c893e
2023-12-06 18:39:27 +00:00
jenkins-bot d4d595c1b8 Merge "Check language fallbacks in isLanguageRequiringReplyIcon" 2023-12-01 21:29:23 +00:00
Ed Sanders 40ce262d7e Check language fallbacks in isLanguageRequiringReplyIcon
Bug: T352289
Change-Id: I0a1466c871143af85e7eeb07572021c387074705
2023-12-01 13:57:08 +00:00
gerritbot 5a51c63687 Update UserOptionsLookup's FQN
User-options related classes are being moved to the MediaWiki\User\Options namespace in MediaWiki Core; reflect that change here.

Bug: T352284
Depends-On: I9822eb1553870b876d0b8a927e4e86c27d83bd52
Change-Id: Iaf161106c323461929abe9b8a021bbb3e34c4ae7
2023-11-30 17:35:15 +00:00
thiemowmde 12e7fba827 Remove small pieces of unused code from PageHooks class
Change-Id: I557bfb0f688d3e9455b5187df3cbbe67697fbd55
2023-11-28 15:39:20 +00:00
jenkins-bot 9699e57275 Merge "SpecialDiscussionToolsDebug: Replace Title::getPageViewLanguage()" 2023-11-22 21:55:13 +00:00
jenkins-bot 1cbba98cad Merge "Drop meaningless VisualEditor version number 0.1.2" 2023-11-14 20:57:54 +00:00
Bartosz Dziewoński 90c6e64a49 SpecialDiscussionToolsDebug: Replace Title::getPageViewLanguage()
Bug: T350806
Change-Id: Iaf6d849867af4ce2cdc8210ae4707a6744b271dd
2023-11-10 02:44:34 +01:00
Subramanya Sastry a1c5130414 Add ParserOutputPostCacheTransformHook handler for Parsoid HTML
* This patch enables DT to work with Parsoid HTML without changing
  the functionality for legacy HTML.

* The code comments document some of the decisions being made here.
  Some of these decisions are temporary and need better solutions
  but this patch will let us run visual diff tests and expose any
  other latent bugs.

TODO
----
* We need to add new tests to verify CommentFormatter expectations
  for Parsoid HTML. I'll tackle this in a followup patch.

Known issues:
-------------
* Performance: Since the getText() transformed output in ParserOutput
  is not cached, if DiscussionTools is to switch over to Parsoid HTML,
  we have to add some form of caching of the transformed output because
  transformHtml can take a couple seconds in the p99 case which is too
  long to render uncached!

* Longer-term: Since this hook is called when getText() is
  called, all calls to getText() will now invoke this handler
  (which will return but still has to do a bunch of checks to
  determine this won't apply). Presumably, transformHtml() is
  idempotent because when some other code (other extensions, for ex)
  calls getText(), we will run the transfromHtml() on previously
  transformed content.

  My understanding is that getText() is going the way of the dodo
  and that getText() callers will have to explicit call the output
  transform pipeline code (and presumably this issue of repeatedly
  calling the same transforms on previously transformed content will
  be addressed there).

* Some CSS doesn't apply to Parsoid HTML because intervening <section>
  tags interfere with existing query selectors -- will be addressed
  separately.

Bug: T341010
Change-Id: I9846193656cdc658f5237df0a133d9d4dcc20d00
2023-11-09 18:37:56 +00:00
thiemowmde 28ebaae999 Drop meaningless VisualEditor version number 0.1.2
This number is from 2020. It's meaningless by now.

Required for Iaa56abb.

Change-Id: Iaae0ac43174f471d8d210958704f98182e9979c5
2023-10-30 09:03:13 +01:00
Ed Sanders f2265f918f highlighter: Show a different message for missing heading links
These are not widely used anywhere, but linking to an #h- heading ID
that doesn't exist should say "topic not found" rather than
"comment not found".

Change-Id: Ifd269cc72e640f36431f85c751874ca06229ba9f
2023-10-28 15:28:30 +01:00
Ed Sanders 7215fd0d7b Make 'any' the default for DiscussionToolsAutoTopicSubEditor
All features should be enabled by default for 3rd party installs.

I74ecd243 ensures this will have no effect on WMF wikis.

Depends-On: I74ecd2438c86d99b5727de488c928cc7d37da6db
Change-Id: Ia3245902abf2601f53065f1ffb94133d7b25e223
2023-10-20 14:50:41 +00:00
jenkins-bot 4729a2757d Merge "Fix topic subscription icon in Minerva" 2023-10-17 19:49:34 +00:00
Ed Sanders 2095c5113b Fix topic subscription icon in Minerva
Change-Id: Ic8940696fcabd677e896aeeb7c14cdc2a5df1382
2023-10-13 14:23:10 +01:00
Ed Sanders 185396a8e5 Merge ReplyWidget[Plain/Visual] modules
Only a fraction of a percentage of users are still using
ReplyWidgetPlain, and keeping these modules separate:
* Adds to code complexity
* Adds to ResourceLoader module bloat
* Causes bugs when we use VE dependencies in the
  core ReplyWidget class

The disadvantage is that ReplyWidgetPlain will now be
loading all of the VE dependencies, but this will make
switching to visual mode faster.

Bug: T348834
Change-Id: Ifb0cfd43fdab761c3321ad01fa9fefca26473f86
2023-10-13 11:58:12 +01:00
Kosta Harlan 60bcf84dbb overflow menu: Factor code into its own file
Why:

- We'll reuse this functionality on desktop, so it makes sense to
  extract it to a standalone file

What:

- Remove relevant code from mobile.js and place in overflowMenu.js

Bug: T342251
Change-Id: I98f1253e8d6db31c1f71203b50911b6f1b92778b
2023-10-12 06:03:11 +00:00
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