Commit graph

1165 commits

Author SHA1 Message Date
Fomafix 22a66a8aa7 Use ?? instead of default value in getRawVal()
Bug: T376245
Change-Id: I2f997b9b39850bc5f2ed31e04f457f43eeb054a2
2024-10-02 10:52:51 +00:00
Arlo Breault 4399d9a458 Always set a value for isEmptyTalkPage when transforming html
For interface messages, like the talk page header, tranformHtml isn't
run so no value is set while parsing it.  The double negative in
I5c1877f7f9eb73f88a33e001ca3c2f3d06bb90e4 failed to account for that and
was reverted in I23a3f937201d93c7c7645a09c4fccfcf1c14008a.

By always setting a value, we'll overwrite a value that may have been
set when Parsoid calls the legacy parser to parse extension content for
which it doesn't have a native extension, which then gets merged into
the metadata for the main parse.  However, setting with a different
value is deprecated and will eventually throw, but we already need to
find a solution for T372592 so what's one more.

Bug: T371125
Bug: T372592
Change-Id: Id73a1b5751cfc055e84188bcb19583c72b84032f
2024-09-20 18:17:16 -04:00
Arlo Breault 40f85d8852 Revert "Document shortcoming of CommentFormatter::isEmptyTalkPage"
This reverts commit 8245b94c4c.

No longer relevant after the revert in f96eba7.

Change-Id: Id81e68b4eaacb4b8a594ac97f75f1a7f5540b78c
2024-09-20 18:15:24 -04:00
David Lynch 9492fcc1f8 Find comment: limit DB query for page comments, use a custom exception
Follow-up to b7af4e87f5

Bug: T374598
Change-Id: Ibc958f84991198ebb616cf41258e70968353f7fe
2024-09-18 11:43:59 -05:00
Ed Sanders b7af4e87f5 Find comment: Don't show notice if "talk" page has never had any discussions on it
Some extraSignaturesNamespaces often have pages which are never
used as talk pages. This check will suppress "topic not found"
messages from appearing on those pages.

Bug: T374598
Change-Id: I0073807b7f0291fb64aab54a19a4c05fceff968c
2024-09-13 11:52:02 +01:00
Ed Sanders 3dc503c43b Enable visualenhancements on archived talk pages
Bug: T374198
Change-Id: I50f566934bd0f3962741557ca24f1ef4af288eee
2024-09-06 10:00:28 +01:00
jenkins-bot f57ee98ee8 Merge "Revert "Invert logic on empty talk page"" 2024-08-22 18:29:00 +00:00
DLynch f96eba7e6e Revert "Invert logic on empty talk page"
This reverts commit 7e5f9b59a2.

Reason for revert: Causes empty state to always appear on wikis using Talkpageheader

Bug: T373100
Change-Id: I23a3f937201d93c7c7645a09c4fccfcf1c14008a
2024-08-22 17:48:33 +00:00
Arlo Breault 8245b94c4c Document shortcoming of CommentFormatter::isEmptyTalkPage
Follows-Up: I5c1877f7f9eb73f88a33e001ca3c2f3d06bb90e4
Change-Id: Idb74807c105062f81954917fe4e8296be2b428f6
2024-08-16 12:28:02 -04:00
jenkins-bot ccb4ad5c7a Merge "Revert "CommentFormatter: Switch from deprecated addJsConfigVars to new setJsConfigVar"" 2024-08-15 21:43:31 +00:00
jenkins-bot 2a6100b294 Merge "Invert logic on empty talk page" 2024-08-15 20:56:39 +00:00
Bartosz Dziewoński 3ec0789d06 Revert "CommentFormatter: Switch from deprecated addJsConfigVars to new setJsConfigVar"
Silence the deprecation warning instead to avoid regressing T372193.
I filed T372592 about the bigger problem we have here.

This reverts commit fe8526caf2.

Bug: T372499
Change-Id: I47884f99e9c18fffd22ffdc27f5c61515b60c8f8
2024-08-15 19:52:29 +00:00
Arlo Breault 7e5f9b59a2 Invert logic on empty talk page
Record if a talk page is not empty, rather than empty.

This helps prevent Parsoid from mislabelling pages as empty when they
contain extension tags it needs to call out to the legacy parser to
process.  Metadata from the legacy parse is merged into the overall
metadata for the page.

For example, a templatestyles extension tag parsed in the context of a
talk page would set the empty state which would then fail to cleared if
the overall parse of the page wasn't empty.

Bartosz (@matmarex) proposed this idea in T371125#10053043

Setting and using these flags all appear to be post-retrieval from
cache.

Alternative to I1deb679ef0e19dc3a36e377c183dd1b4ab0003e9

Bug: T371125
Change-Id: I5c1877f7f9eb73f88a33e001ca3c2f3d06bb90e4
2024-08-14 18:26:25 -04:00
Arlo Breault 69fd71b260 Parsoid's templated content have other attrs as well
Bug: T372019
Change-Id: Ic1d32570f5fed4d48a126d0ef4c8c04a82d7bbb4
2024-08-14 17:30:31 -04:00
Máté Szabó 55665a3f93 Avoid primary DB query for non-talk page edits
While investigating primary database queries as part of T370304,
we found that EventDispatcher currently issues a primary DB query
to fetch the previous revision of the newly created revision on
every edit, but discards the result for non-talk pages. So, as an
optimization, have it fetch the previous revision only after the page
has been established to be a talk page.

Bug: T370304
Change-Id: I301f5c3c002c6953ef0b3919a33667a809342b84
2024-08-14 18:18:02 +02:00
James D. Forrester fe8526caf2 CommentFormatter: Switch from deprecated addJsConfigVars to new setJsConfigVar
Bug: T372193
Change-Id: Ib3ec31ac78aee59325b3b1be3bb66f5c4a73715a
2024-08-10 13:51:50 +02:00
Amir E. Aharoni 15f3f80378 Consistent spelling of "subpage"
"Subpage" is usually written as one word
in core and in other extensions.

Change-Id: Ie10a500790c321e866c02264d55449e42b0110bb
2024-08-06 03:44:51 -04:00
Umherirrender 2a932e598c Use expression builder instead of raw sql
Change-Id: I0cb5fa07d63bc93089a4956097eee7a41dbc99e7
2024-07-21 23:25:41 +02:00
Bartosz Dziewoński a38ebc00d8 Restore "empty state" on existing but empty talk pages
The previous approach no longer works due to changes in MediaWiki.
We must now pass the data between the hook which has access to request
state needed to determine if we should show this, and the hook that is
capable of showing it in the right place.

Bug: T362496
Change-Id: I290422c4249d288badd7c7d25e5e7e435dfd1800
2024-07-09 19:31:55 +00:00
jenkins-bot 961d36f13e Merge "BetaPreferenceHooks: Reuse $this->config" 2024-07-03 16:08:26 +00:00
Fomafix c675410755 BetaPreferenceHooks: Reuse $this->config
Change-Id: I782da96af4786ce812665a1e08bd89cacc52747e
2024-07-03 15:14:47 +00:00
Fomafix b06b96b915 Inject services into DiscussionToolsHooks
Change-Id: If15fd7cca27832ed8ff6738c90556be701be269f
2024-07-03 15:00:54 +00:00
Fomafix 3c76c7918b Inject service ContentLanguage into ThreadItemStore
Change-Id: Ie9b7d462c8ddf4abb749ee07537ccec1949b8fba
2024-07-03 10:16:27 +00:00
Fomafix f6c3c98bc3 Use service 'GadgetsRepo' instead of deprecated GadgetRepo::singleton()
Change-Id: I226b259e361d3d27ec89975353fdf6396ba60ccb
2024-06-30 09:03:11 +00:00
Ed Sanders 08d540f6b5 Disable beta feature automatically when all sub-features are available
Change-Id: I87886c894f652db339d3f07630366b3b4ff74e9e
2024-06-26 12:03:58 +01:00
jenkins-bot 7281eec5b2 Merge "Improve unwrapFragment() for multi-paragraph comments" 2024-06-22 09:48:56 +00:00
jenkins-bot da90f4b049 Merge "Remove A/B test code" 2024-06-21 21:35:20 +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
Bartosz Dziewoński 674353691b Improve unwrapFragment() for multi-paragraph comments
I've been reading some discussions in Special:DiscussionToolsDebug
and saw a good number of comments where the first paragraph has
a bullet point (`*`), and the following paragraphs are indented (`:`).

Change-Id: I1afadc49565e843c97286a3744941ffb4062ddec
2024-06-21 22:37:09 +02:00
jenkins-bot c11460a527 Merge "Fix parsing usernames with +" 2024-06-21 15:19:33 +00:00
jenkins-bot fb4d4d77a5 Merge "Trim whitespace from truncated heading titles in IDs" 2024-06-20 02:20:23 +00:00
Bartosz Dziewoński 20ff1a519f Fix parsing usernames with +
urldecode() should be used for decoding URL query parameters,
rawurldecode() should be used for decoding URL paths.

Bug: T367977
Change-Id: I7a7b14da85fb89f612c701d2746803d830017842
2024-06-19 17:14:10 +02: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
jenkins-bot a3adda8ed7 Merge "Remove jquery.makeCollapsible workarounds for mobile" 2024-06-10 19:29:49 +00:00
Umherirrender 3dc5e88842 Use namespaced classes
Changes to the use statements done automatically via script
Addition of missing use statement done manually

Change-Id: I492ddae3c3e9f81d551ea8b348b7148893f4f590
2024-06-09 00:02:35 +02:00
Bartosz Dziewoński 2c9264e412 Remove jquery.makeCollapsible workarounds for mobile
The module is now loaded normally by the Minerva skin (T111565).

Bug: T323639
Change-Id: I9121410c20fffd651c81c26b84b861ec9300881f
2024-06-04 00:56:58 +02:00
Umherirrender 8145e7ae74 Add caller when running query builder
Change-Id: Icc9f640ff8a67d582448e4f05a4456a54218b72d
2024-05-31 00:25:03 +02:00
Ed Sanders 6237d6068b Follow-up I80377881: Add missing Echo namespace
Change-Id: I3f94d8d91d78eba1eb16ac34b027cd2e9d66649d
2024-05-28 18:28:38 +01:00
Ed Sanders a86897f890 Comment thanking
Bug: T249893
Change-Id: I64f7abc26bfc3e7b226340934a637a555edf754f
2024-05-28 17:47:09 +02:00
Ed Sanders d1bffdee70 Use namespaced notification classes from Echo
Change-Id: I80377881e6aabf3014394c024fca6af50166aa1a
2024-05-28 15:48:56 +01:00
Ed Sanders ea5639b20b ESLint: Enforce prefer-const
Change-Id: I5985d1b532988bb3b71ff1aa24eae57ac2e1b9c5
2024-05-24 16:50:13 +01:00
Amir Sarabadani 320da37512 Fix static cache access
Currently, DT is making more than 30 exact queries back to back in every
request. It is clear the caching is completely broken.

It is because when the properties don't exist (majority of the cases),
it returns an empty array making the caching noop.

Tested in mwdebug1002 and it fixes the issue.

Bug: T364693
Change-Id: I182ae121999df1a04cfb7399bc49891587a37074
2024-05-12 18:23:41 +02:00
wfan 2b41719f96 Migrate MediaWiki.discussiontools.addReplyLinks to statslib
Bug: T359463
Change-Id: I93f7872818a27e5a5aac6ed4c44302bdc78b0613
2024-05-05 13:59:04 +00:00
Ed Sanders 501046f38c Trim whitespace from truncated heading titles in IDs
Bug: T356196
Change-Id: Iddcda0cee624fda7f78a05e0a3d70eaee2635da9
2024-05-01 14:20:12 +01:00
jenkins-bot dcb8d7175b Merge "ApiDiscussionToolsCompare: Show nice error for deleted revisions" 2024-04-30 20:03:06 +00:00
jenkins-bot af74638d08 Merge "ApiDiscussionToolsCompare: Deduplicate 'from'/'to' param handling" 2024-04-30 20:02:59 +00:00
jenkins-bot 8b9a813b11 Merge "Clean up handling of <span class="mw-headline">" 2024-04-30 16:48:56 +00:00