Commit graph

1189 commits

Author SHA1 Message Date
jenkins-bot e3dbe7dd3a Merge "MWCitationDialog: Use const instead of let" 2024-06-05 10:10:16 +00:00
jenkins-bot 70dd8cf815 Merge "Use array spread syntax instead of Array#concat" 2024-06-05 10:10:16 +00:00
jenkins-bot 27dc7e46b5 Merge "Remove unnecessary local variable for this" 2024-06-05 10:07:47 +00:00
jenkins-bot 863dd201ad Merge "ESLint: Enforce prefer-arrow-callback" 2024-06-05 10:07:46 +00:00
Translation updater bot 943326590e Localisation updates from https://translatewiki.net.
Change-Id: I7e122c6273d34aabba5f3e797e915c5eb27ed0cf
2024-06-05 09:22:31 +02:00
Ed Sanders cc2105e4a3 MWCitationDialog: Use const instead of let
Change-Id: I4f516505566ade57ede2a5c644f6215c786920c5
2024-06-03 12:31:33 +01:00
Ed Sanders d468e9fd55 Use array spread syntax instead of Array#concat
Change-Id: I38db1d3db51033e99dd55ccc867fb6ad0452640f
2024-06-03 12:31:33 +01:00
Ed Sanders aaeedee289 Remove unnecessary local variable for this
Change-Id: Id71b30552597e052f861de21347d3b4f55debee3
2024-06-03 12:31:33 +01:00
Ed Sanders 5a2154de38 ESLint: Enforce prefer-arrow-callback
Change-Id: I8d96b69e8c15bc8ad84cfb0c511396e5b3e7ac20
2024-06-03 12:31:33 +01:00
Translation updater bot 85fddfb1e4 Localisation updates from https://translatewiki.net.
Change-Id: I067a734c6a89950aa56be3551e9ae3fedc4f9fed
2024-06-03 09:31:09 +02:00
thiemowmde 7981f4d430 JSDoc: convert @cfg to @param
Bug: T138401
Change-Id: I5aec31b9a05b41ceb6a4a78c75cb0395aa1880b7
2024-05-28 10:38:26 +02:00
jenkins-bot fc9a610c2f Merge "Streamline code dealing with (undeployed) extends attribute" 2024-05-24 10:57:03 +00:00
Translation updater bot 59b733969b Localisation updates from https://translatewiki.net.
Change-Id: Iaac4b948ab0596347cba67c87b32cd32e794db84
2024-05-23 09:26:46 +02:00
Translation updater bot 422bd03b74 Localisation updates from https://translatewiki.net.
Change-Id: I010fd555406fe85013cb0bc5d2b68bd88589a430
2024-05-21 09:27:42 +02:00
thiemowmde 6c5c2dc6cb Remove separate private deferDoc property in ve.dm.MWReferenceModel
This is a direct follow-up for what I started in I3c9b9bb. Again all
this does is moving existing code around. The separate this.deferDoc
property is never used anywhere:
https://codesearch.wmcloud.org/search/?q=deferDoc&files=%5C.js%24
Instead I store the deferred function directly in the target property
this.doc and resolve it when needed.

Note that the concept of a parentDoc still exists. I tried to make
this as obvious as possible via comments and by arranging the code
accordingly:
1. A lot of code calls setDocument which directly sets this.doc. The
   parentDoc is never used in this case.
2. The parentDoc is only needed to auto-generate the (empty) document
   for the reference when a new reference is created.

That's also why the existing code always calls the constructor with
the parentDoc, even if this ends being unused in many cases: It's a
simple fallback.

Bug: T363096
Change-Id: I7874f187b2b397ed511b695ca9ff95838fcff302
2024-05-13 22:25:06 +02:00
thiemowmde 81f774c789 Don't call things "attrs" that aren't mw.attrs
mw.attrs does have a special meaning in this code. Together with
mw.body it reflects 1:1 what was written in the original wikitext
in the <ref …> and <references …> tags. Let's avoid using the same
(or almost same) variable name for other kinds of attributes.

Bug: T363096
Change-Id: I3e599ab910b9639e121f9b9d532b0f57f08f1e73
2024-05-13 18:37:17 +02:00
jenkins-bot 0c846421b3 Merge "Consolidate duplicate "is reference list empty" code paths" 2024-05-13 13:28:20 +00:00
jenkins-bot f9ba47d7f0 Merge "Drop separate MWReferenceModel.parentDoc property" 2024-05-13 13:01:26 +00:00
thiemowmde c921c76dd2 Consolidate duplicate "is reference list empty" code paths
Introduce a static method so we don't need to copy paste code.

Note that the static method still largely duplicates what the method
.buildIndex() will later do. Both loops iterate the reference groups
and the references in each group. The main difference is that the
"is empty" check stops extremely early the moment it finds any
non-empty group.

That's also why I'm convinced it's not worth caching the result.
I benchmarked it and it's nanoseconds. But there are more reasons:

The non-static .isIndexEmpty() method is currently only used when
Citoid is active the same time. Which means the cached result was
entirely unused on installations without Citoid.

Bug: T356871
Change-Id: Id5c4295086bc977ef52ad141be9962d2eecb1bcc
2024-05-07 15:51:12 +02:00
jenkins-bot 2349c3ceec Merge "Use OOUI's native "unselect all" feature" 2024-05-07 12:15:20 +00:00
WMDE-Fisch 52b9521dc9 Add tracking for VE Cite re-use interaction
Includes a minor drive by cleanup for an obsolete JSDoc block.

Bug: T362347
Change-Id: Ie4a6ebc5a468c0419001b0170c9cc7e13de616ba
2024-05-07 12:47:37 +02:00
Translation updater bot 48a4eb029e Localisation updates from https://translatewiki.net.
Change-Id: I0db6b2fce7293962a8f715ab746c3a8162a75cc1
2024-05-06 09:25:14 +02:00
Translation updater bot fd85662ab7 Localisation updates from https://translatewiki.net.
Change-Id: I80558444c309afb41efef8cbba144bbd16343a20
2024-05-03 09:28:19 +02:00
thiemowmde a531d4d82d Streamline code dealing with (undeployed) extends attribute
No need to create an expensive model here when all we need is a
single attribute.

Note this code is still behind a feature flag and not running
anywhere, except on the beta cluster.

Bug: T247922
Change-Id: Iea48837213b72a8d0f4b3cc9d9688d9a08315509
2024-05-02 17:13:24 +02:00
thiemowmde 790b46d41f Reduce minor code duplication in MWReferenceNode class
Parts of this was already done via I3edf0df.

Change-Id: Id71904ab9387c114b15757d35442e6e6632e87f2
2024-04-30 14:02:43 +02:00
jenkins-bot 29e8ba9ea0 Merge "Further delay search index build in ReferenceSearchWidget" 2024-04-30 10:49:17 +00:00
jenkins-bot 74b42ace80 Merge "Make ReferenceSearchWidget code a bit more functional" 2024-04-30 10:49:14 +00:00
jenkins-bot 18635f501d Merge "Unify and streamline code working with mw.attrs" 2024-04-30 10:39:01 +00:00
jenkins-bot a6405f230e Merge "Add safe-guard to ReferenceSearchWidget.buildIndex" 2024-04-30 10:38:09 +00:00
thiemowmde f61b840dc8 Drop separate MWReferenceModel.parentDoc property
We can re-use the existing this.deferDoc property to achieve the
same. There is apparently no need for a separate "parentDoc"
property for anything else but what can be seen in this patch.

https://codesearch.wmcloud.org/search/?q=%5CbparentDoc%5Cb

And no need to keep neither the parentDoc reference nor deferDoc
callback indefinitely. We can drop it after it got resolved.

This really just moves existing code around without changing
anything.

Bug: T363096
Change-Id: I3c9b9bbdff29a3f35d5a0710b48ca59bf592c6ab
2024-04-24 14:49:05 +02:00
thiemowmde 1391f43d03 Drop unused setters from MWReferenceModel class
These aren't used anywhere:
https://codesearch.wmcloud.org/search/?q=%5Cbset%28ExtendsRef%7CList%28Key%7CGroup%7CIndex%29%29%5Cb
These setters are reaching into internal details that currently
aren't ever modified from outside of the class, and shouldn't.
If it turns out we ever need to modify one of these we can easily
re-introduce setter functions, but probably give them more
meaningful names.

Bug: T363096
Change-Id: I2c9efc114bdc110a29b8d7fb48ea8c1814cdeb21
2024-04-24 14:17:49 +02:00
thiemowmde 14fe315c62 Mark private MWReferenceModel setters as such
This just documents the current status quo. These methods are not
used anywhere, and probably shouldn't:
https://codesearch.wmcloud.org/search/?q=%5Cbset%28ExtendsRef%7CList%28Key%7CGroup%7CIndex%29%29%5Cb
The only place these should ever be called from is from
newFromReferenceNode in the same class.

Bug: T363096
Change-Id: Ic28dbb5cbb2beb98c9fe6d283ed87d879728da0f
2024-04-24 14:16:52 +02:00
Translation updater bot d1e164ca8a Localisation updates from https://translatewiki.net.
Change-Id: I5bc4cea5b42fbd4be477cd2452df99593eb2dc0b
2024-04-22 09:27:49 +02:00
Translation updater bot cbfea786d8 Localisation updates from https://translatewiki.net.
Change-Id: If856eec18b5fc87044445ffb1a45edbfa58473c3
2024-04-19 09:46:00 +02:00
Translation updater bot 98a99171c9 Localisation updates from https://translatewiki.net.
Change-Id: I434483e134ceef88df5d6f53499ac0d60f75cfd8
2024-04-17 09:27:45 +02:00
Translation updater bot b21dbff0cc Localisation updates from https://translatewiki.net.
Change-Id: I5d6258de46d20fb6375f3bba4c481b99ef67a373
2024-04-15 09:27:38 +02:00
Translation updater bot 7b8ee26b51 Localisation updates from https://translatewiki.net.
Change-Id: Icfbf342ff65adcfcbd6013e5493a1111025fa784
2024-04-09 09:26:16 +02:00
thiemowmde e925fb4e16 Add safe-guard to ReferenceSearchWidget.buildIndex
Note this is only a bandaid patch that avoids the failure in this
place, but doesn't solve the fundamental problem. It appears like
the data coming from Parsoid (in internalList.….firstNodes and
internalList.….indexOrder) is somehow out of sync, and one of the
numbers in the .indexOrder array points to an element in .firstNodes
that doesn't exist (any more?). I don't know why.

Bug: T351550
Change-Id: Iaa4c748462d90d7783edb89713b61ffff6d70765
2024-04-09 09:23:32 +02:00
Translation updater bot 54c8aa860d Localisation updates from https://translatewiki.net.
Change-Id: Ib3b06dc0f0f3efe062ed39d674c0ed6960eda70f
2024-04-05 09:37:44 +02:00
thiemowmde 203a1cde34 Further delay search index build in ReferenceSearchWidget
The search index is really only used in a single place, in the
buildSearchResults method at the very bottom of the class. I find it
more obvious to understand what's going on when the places where the
search index is populated and used are as close together as possible.

This again really only moves existing code around without actually
changing anything.

We can also drop the extra "built" property and use a special null
value instead. This is possible because we know the only consumer of
the this.index property and can guarantee it can't get confused by
the null.

Bug: T356871
Change-Id: Iaddb3b16b3aa776f89fca2bf0350cce9b6bb1a23
2024-04-04 15:13:50 +02:00
thiemowmde e9561ade15 Make ReferenceSearchWidget code a bit more functional
This turns two methods with side-effects into more pure functions
with more obvious input and output. buildSearchIndex rebuilds the
internal search index from the internalList. buildSearchResults
filters and creates the result widgets the user will see.

This patch really only moves existing code around but doesn't change
anything. Except that this.built is set before onQueryChange is
called, not after. This avoids potential endless loops in case
onQueryChange happens to trigger buildIndex again.

Bug: T356871
Change-Id: Ib80a2dcb85779d64bec53caf90c49879d0ea2258
2024-04-04 15:12:57 +02:00
thiemowmde b02028b671 Move ve-cite QUnit tests to top-level tests/ directory
It's just hard to find and confusing when hidden in that
sub-directory.

Bug: T358851
Change-Id: I19ffe73b79fa9add52af12f477afe7abbc6db836
2024-04-03 12:03:33 +02:00
Translation updater bot c9a93cb3f4 Localisation updates from https://translatewiki.net.
Change-Id: I662c8bfc31d27125e969f8c7dfe8440effec62e8
2024-03-29 08:46:22 +01:00
jenkins-bot f4c690fa1a Merge "ce.MWReferenceListNode: Only open dialog on unmodified left clicks" 2024-03-28 16:14:32 +00:00
Ed Sanders d368f45c17 ce.MWReferenceListNode: Only open dialog on unmodified left clicks
Change-Id: I06f6e2cc89f595e6dcc931b78c908ff2270e4629
2024-03-28 15:30:43 +00:00
jenkins-bot 7906b2147a Merge "Remove confusing, unnecessary .length check on a string" 2024-03-27 08:15:09 +00:00
thiemowmde 61a49f4337 Remove confusing, unnecessary .length check on a string
I find this particularly confusing because it makes it look like this is
an array. As a reminder, while empty arrays are false in PHP they are
not in JavaScript. An extra `if ( array && array.length )` is really
critical. But this is a string. Empty strings are false in JavaScript.
No problem.

This was originally written in 2013 via Ib244ff6 as a pure .length
check. The duplication was added a year later via Id401d97 for an
unknown reason.

Bug: T356871
Change-Id: Ied335f170a9a0a7bbc8c8fd12f95b6902f401bbf
2024-03-27 07:16:54 +00:00
Translation updater bot 6ca87923bb Localisation updates from https://translatewiki.net.
Change-Id: I0c667f3a28bf61f9304ffe4f3c7844f17cf6af8e
2024-03-26 08:19:09 +01:00
jenkins-bot b0b356f4e8 Merge "Add initial QUnit tests relevant for reference re-use in VE" 2024-03-22 10:49:33 +00:00
Translation updater bot 7535cf0b3d Localisation updates from https://translatewiki.net.
Change-Id: I7b2bb4d2cf0dd4180484dc9fdd1361ddc1a576ac
2024-03-22 08:43:46 +01:00