Commit graph

4900 commits

Author SHA1 Message Date
thiemowmde c02595bb97 Drop obscure error message about an unused group
The message was part of the original patch that introduced the group
feature in 2009, see https://phabricator.wikimedia.org/rECIT75004e33.
Notice how there was never a test scenario for this message. A test
was added in 2020 via I07738cc.

The message appears only in a rare edge-case when a group is entirely
unused in the text, and only when the group is not empty. The shortest
possible example is:

 <references group=g>
 <ref group=g name=a>a</ref>
 </references>

Just adding something unrelated like `<ref group=g>x</ref>` to the
text changes the error message. Now the group is "used". But this
notion is confusing to begin with. References can be part of a group,
and we can use references, but we can't use groups as if they are a
separate entity.

A better error message already exists.

Notice how this special error message doesn't appear anywhere in the
Parsoid code path. That was already using the other, more generic
error message.

Bug: T269531
Change-Id: I63f663d76e45e6c3d664f145d9a564ee00ff53cd
2024-03-04 13:04:36 +01:00
thiemowmde e5eee2d049 Fix confusing error message with empty group
This is about the error message that currently says:

 »Cite error: <ref> tag with name "a" defined in <references> has
  group attribute "" which does not appear in prior text.«

This is a special error message that appears only when a group name
does not appear anywhere in the text. In all other cases a simpler
error message is shown:

 »Cite error: <ref> tag with name "a" defined in <references> is
  not used in prior text.«

While the first error message is not wrong in the edge-case
described in T269531, it's very confusing for a multitude of
reasons. For example:
* There is no group attribute in the wikitext.
* Just adding something completely unrelated like `<ref>x</ref>` to
  the text shows the other error message.

The reason for this behavior is that the assumed default is an empty
`group=""`. The error message changes the moment any other <ref> in
the same group appears in the text vs. when the group is entirely
unused.

We can probably remove this error message entirely, but should at
least not use it when there is no group.

Notice how the Parsoid code path was already using the other error
message.

Bug: T269531
Change-Id: Ifa2e97254f4cda72233a057d8760fb1116143552
2024-03-04 12:43:26 +01:00
Translation updater bot 15663dc283 Localisation updates from https://translatewiki.net.
Change-Id: I8eb8c35e3283224b8101ea59b421648f4dca24ad
2024-03-04 08:23:03 +01:00
jenkins-bot c30dbd9875 Merge "Use Types/#jQuery for external docs" 2024-03-01 08:42:47 +00:00
Translation updater bot aa1c82a1e3 Localisation updates from https://translatewiki.net.
Change-Id: I4ea5452e8cce05b60711813359dd162590f3425b
2024-03-01 08:32:41 +01:00
WMDE-Fisch c5e7fd35ea Use Types/#jQuery for external docs
Missed while merging Ia0a52cc7459d4e985349e8c0e4656f68e25d8afb
into Iaee1dadcc19a70c27839d0d27dfa6a07a70fb46b

Change-Id: I0a429a52bcf04bac9cc63cb5856f4c8fdd06b1fa
2024-02-29 18:57:36 +01:00
jenkins-bot 20d0b82969 Merge "Minor logic cleanup" 2024-02-29 12:43:26 +00:00
Adam Wight 8d0202a664 Minor logic cleanup
This didn't mean what it looked like: `||` has higher priority, so an
undefined elem would not result in an empty string.

Change-Id: I1e361842f060815b04802a1ab8f077faa1a8bc6b
2024-02-29 12:12:56 +00:00
Adam Wight 5c7e7f4fbd linters should ignore generated docs
Change-Id: Ice9eef1ba6e2b158ab3f7a9f45a4d1a7a41824b8
2024-02-29 12:09:09 +00:00
Adam Wight 73c90a0e7d Clean up and fix some jsdoc annotations
Some of the annotations were used in a way that confused jsdoc.  This
cleans up redundant annotations and uses more canonical tags.

These changes cause all classes to now appear in the generated pages.

Includes linking to external docs.

Bug: T358641
Change-Id: Iaee1dadcc19a70c27839d0d27dfa6a07a70fb46b
2024-02-29 13:05:42 +01:00
Adam Wight 5369076028 Initial support for generating jsdoc
Not perfect, some classes are missing.  But it runs successfully and
generates some docs already.

Bug: T358641
Change-Id: Ie10e48ab9ac80e4969a152562a746cb54c7ec0e4
2024-02-28 09:22:59 +01:00
Translation updater bot 104f94f546 Localisation updates from https://translatewiki.net.
Change-Id: Ibec48f697fafb316a33dcce97d2f9563101cab42
2024-02-27 08:19:41 +01:00
Arlo Breault 1ea6f53fde Less tabs in phan config
Change-Id: If9b35b1f1ae6e70917e17e85cb0f9a2b0fa959ee
2024-02-26 16:57:14 -05:00
thiemowmde 5d8e256fbc Remove obsolete @method annotations
These tags are 10 years old. Current documentation generators don't
need them.

Tagging something explicitely as being a @method can be useful in
an interface where the elements are initialized with e.g. `= null;`
instead of having an implementation. But we have implementations
here. Sure these are methods. No need to say that in the
documentation.

Also removing a comment that's obviously a copy-paste mistake from
what was the ve.ui.MWMediaSearchWidget back then. See Ib244ff6 and
before.

Change-Id: I7df6c789d10fd89e7fe97d56c942fd22c56d8458
2024-02-22 20:07:33 +01:00
thiemowmde 96da6cedfe Use OOUI's native "unselect all" feature
No need to manually scan for the currently selected item. And no
need to do it twice. The feature is a little hidden (calling the
method with no parameter) but always was supported.

Bug: T356871
Change-Id: I02401284eef5687eb0825d8d9ae0df294b3b4e03
2024-02-22 18:58:01 +01:00
thiemowmde 7151077e5f Unify and streamline code working with mw.attrs
I find it very helpful to use the name "mwAttrs" specifically for the
mw.attrs thingy that contains the original key-value pairs from the
wikitext.

An alternative is to use ve.getProp, which is helpful in other
situations.

Change-Id: I3edf0dfe5b9629fcda0bf8cb3b734215377a5c77
2024-02-21 13:52:12 +01:00
jenkins-bot 90dc52620c Merge "build: Resolve MediaWikiNoEmptyIfDefined suppression" 2024-02-16 23:25:32 +00:00
Umherirrender 8580b73320 build: Resolve MediaWikiNoEmptyIfDefined suppression
Follow-Up: I21a5260f36c4fa0d767ec6bba86fcfa35ff0a369
Change-Id: Ib97140baf68bfcc1fae4d9506f73503307f41719
2024-02-16 10:07:13 +00:00
jenkins-bot 5bad2b183f Merge "Revert "Avoid creating a MWReferenceModel if not needed"" 2024-02-16 08:30:13 +00:00
DLynch 6bc1ae4146 Revert "Avoid creating a MWReferenceModel if not needed"
This reverts commit 74f66bc478.

Reason for revert: this broke reference reuse from Citoid

Change-Id: I86efea4945c1795dbfd61f4e020d78ca81a6f4d1
2024-02-16 03:54:34 +00:00
Translation updater bot 834782f9e0 Localisation updates from https://translatewiki.net.
Change-Id: I18dcead460a5e780529118821ec1318d593fdb0b
2024-02-15 13:27:43 +01:00
jenkins-bot 1b9d856465 Merge "build: Updating dependencies" 2024-02-14 17:14:56 +00:00
libraryupgrader dfec4fa9f1 build: Updating dependencies
composer:
* mediawiki/mediawiki-phan-config: 0.12.1 → 0.14.0

npm:
* grunt-banana-checker: 0.11.0 → 0.11.1
* semver: 5.7.1, 7.5.4 → 5.7.2, 7.5.4
  * https://github.com/advisories/GHSA-c2qf-rxjj-qqgw

Change-Id: I21a5260f36c4fa0d767ec6bba86fcfa35ff0a369
2024-02-14 07:41:08 -05:00
Translation updater bot 11591f72cd Localisation updates from https://translatewiki.net.
Change-Id: I6fa8273a3bb51c75ec72e928d78d00a0ed66e137
2024-02-14 08:18:28 +01:00
jenkins-bot 882f3e5ee7 Merge "Revert "Accessors to find MWReferenceNode in the document"" 2024-02-13 14:51:09 +00:00
Esanders f7c8b63ed1 Revert "Accessors to find MWReferenceNode in the document"
This reverts commit 0566a495f3.

Reason for revert: Merged too soon, while discussion of the whole
approach is still ongoing.

Change-Id: I2d3d6455cd4ea12067e2020f6b41cfbb4672bbb5
2024-02-13 12:57:02 +00:00
jenkins-bot 49e3ab6595 Merge "Accessors to find MWReferenceNode in the document" 2024-02-12 15:55:17 +00:00
Translation updater bot a68be1ceda Localisation updates from https://translatewiki.net.
Change-Id: I65f69dd188a5745c2161492029dcac902a76bce9
2024-02-12 14:49:05 +01:00
jenkins-bot 2d714727f2 Merge "Remove dead variable from ReferenceListFormatter" 2024-02-10 10:41:38 +00:00
jenkins-bot 47b552f504 Merge "Avoid creating a MWReferenceModel if not needed" 2024-02-10 01:40:55 +00:00
Adam Wight 0566a495f3 Accessors to find MWReferenceNode in the document
These are provides as a replacement for internalList indexes.

Bug: T336417
Change-Id: Ifd3a1b667369074e2cefa4d70e4c090e91b010b5
2024-02-09 15:37:27 +01:00
thiemowmde 1eb84d0a8c Remove obsolete rtrim hack added in 2006
This was added in 2006 via commit eb3a3f78, see
https://phabricator.wikimedia.org/rECITeb3a3f78
Hard to tell what happened back then. It's obviously not needed any
more, as proven by the tests. I mean, even if there would be an
extra newline character, it would be irrelevant at the end of an
<ol>…</ol>.

Change-Id: I5715cd9f31ac7ef86c1ea227642336ae71684291
2024-02-08 11:02:12 +01:00
thiemowmde d96e4e97bb Remove dead variable from ReferenceListFormatter
This is unused since Id10db40 from 2019. Looks like we just forgot
it.

Change-Id: I3164f4841572ff19faa584fa2e6ed5aeb7aa2c30
2024-02-08 10:44:16 +01:00
jenkins-bot 46499cd9c0 Merge "Rename ReferencesFormatter to ReferenceListFormatter" 2024-02-07 18:00:04 +00:00
thiemowmde 7c75d44b8a Rename ReferencesFormatter to ReferenceListFormatter
I always found the name a little ambiguous. The fact that it outputs
an actual HTML list and not just some "references" – whatever that
means – is relevant, in my opinion.

Change-Id: I0d169455c8d2b42d62da4dccb8376c09fb6902bc
2024-02-07 18:20:02 +01:00
Adam Wight 74f66bc478 Avoid creating a MWReferenceModel if not needed
It's fine to copy attributes directly from the reference node rather
than go through the specialized model object.

Bug: T336417
Change-Id: Idaca192137dc762ddced2ee8446a7d838f97e317
2024-02-07 15:24:12 +01:00
Translation updater bot df2a713934 Localisation updates from https://translatewiki.net.
Change-Id: I86fedb483ef06b978e9e16cbc23cad0a72bf905e
2024-02-05 08:49:22 +01:00
thiemowmde 802b495160 Make it possible to disable the "cite_error" wrapper message
… as well as "cite_warning". Both are extremely trivial and don't
really do anything by default. All they do is to add the prefix
"Cite error:" or "Cite warning:" to all error messages.

This patch will make it possible to disable both messages by
default, i.e. replace their default in en.json with "-" without
breaking anything. That's part of the plan outlined in T353695.
Local on-wiki overrides will continue to work.

Bug: T353695
Change-Id: I374800d0d0b837cd17ed3a1fdde20b70325b06de
2024-02-01 17:36:27 +01:00
thiemowmde 5eea8ebd90 Simplify ErrorReporter PHPUnit test setup
This was slightly overengineered ever since I4b1f890 and slowly became
more and more complicated over time, notably when withConsecutive was
replaced in Icb951b4. Turns out this was never really needed. It's
impossible to get more than one tracking category from this code path.

While we might add more tracking categories later that will most
probably not happen in this code path.

Change-Id: Ie32d17bac8d3518c985b18f83a846c3fb2bd053f
2024-02-01 17:28:44 +01:00
Translation updater bot 8333e70453 Localisation updates from https://translatewiki.net.
Change-Id: Ic325aea9e6f28d870f3bfe5ad4962419723267ce
2024-02-01 09:01:15 +01:00
Adam Wight b0b628afd5 First tests for ve.dm.MWReferenceModel
Begin a QUnit test module for the reference model.  Tests demonstrate
that a new ref and a normal ref reuse from the full document both
behave as expected.

Bug: T336417
Change-Id: I1337806d41b50329ba971c8e68e1a62b52cc9a52
2024-01-31 13:52:40 +01:00
Translation updater bot f7d1ecb84b Localisation updates from https://translatewiki.net.
Change-Id: I4c21c3ea065de3e17672e19a7cb86907b4467d1c
2024-01-31 08:28:49 +01:00
jenkins-bot de17c57b98 Merge "[lint] Satisfy max-len rule" 2024-01-30 15:47:54 +00:00
mareikeheuer b411dc50a2 Write e2e test for Cite-VisualEditor integration in Cypress
Implemented the test case as described in the ticket.
Deviated from ticket's approach for creating a new page by manual creation instead of API,
to verify the end-to-end functionality through the interface & ensure the entire proccess works seamlessly.

Bug: T353439
Change-Id: I8f863ae0bd8fdb1fb0f1b103d98ba9f2306f3df2
2024-01-30 14:48:14 +01:00
Adam Wight 9535126304 [lint] Satisfy max-len rule
These changes mostly improve the code, and align the lint rules with
the MediaWiki base.

Change-Id: Ib4b0595fd9a9298039b8b44a0f1d4a9e90731527
2024-01-30 12:18:52 +01:00
Adam Wight 4a6b78ac0c Verify that the test page was created
Make sure that we're waiting for the page creation to finish, and
assert that the API request was successful.  This is mostly a
diagnostic improvement to help debug flaky tests.

Bug: T355602
Change-Id: I398cffa724e9b6d733df46676478cc98dccd884d
2024-01-30 09:46:53 +01:00
Translation updater bot 723571b5d3 Localisation updates from https://translatewiki.net.
Change-Id: Ic56560791c1d93bde35617b594126fec2c578f9a
2024-01-28 16:05:40 +01:00
Subramanya Sastry 15f5cc71be Add dummy html/parsoid sections for three failing tests
* This is to worka round some confusing html2html failures in CI
  for these tests (that are not reproducible locally for me).

Change-Id: I07725155ef5e04eb4346a90c34cbacbd70e88ea6
2024-01-26 23:56:41 -06:00
jenkins-bot b4d8b9ccc6 Merge "Enable all Parsoid test modes for citeParserTests.txt" 2024-01-26 23:18:46 +00:00
Subramanya Sastry b3dff81b6d Enable all Parsoid test modes for citeParserTests.txt
* Updated the known failures file.

Depends-On: I093aeed933fe5927e031c879d48e0191e8ef4685
Depends-On: I0df36653de4c70c7a4669b874f43385a18ac5e9d
Depends-On: Id81e2f4331ce73145389e717b7c78f49b29743bf
Depends-On: I7fb86778cfb674ecc76f748786fa08d8f6ac9c65
Change-Id: I101564587dc7959cd620f0b2cc4f8e436bfba6da
2024-01-25 22:11:49 +00:00