Commit graph

885 commits

Author SHA1 Message Date
Mahmoud Al-Qudsi a9278f654b Fix exception editing cross-wiki redirects
As described in T326169, when editing a (manually created) cross-wiki redirect,
VisualEditor will throw a null dereference exception causing it to fail to load
in the browser (looking like it is just taking forever to load).

This patch prevents the exception from occurring by not attempting to write to
the null object.

Bug: T326169
Change-Id: I50fa803c7b4ce65dac1fe345431d8b8f9d0b3d61
2024-08-28 13:27:09 -05:00
Sébastien Beyou 6ea7ab19fd Fix getTemplateDataQueryTitle() when the title ends with a newline
According to ECMAScript, .trim() and RegExp’s "\s" capture the same
characters, so I replace the initial "\s*" by .trim() to remove
whitespaces and line terminators at the beginning and at the end.

Bug: T371000
Change-Id: Id9188f97a3136b986b052b71cd4079c1109ea8ff
2024-07-26 16:18:29 +02:00
Bartosz Dziewoński 4c93b27c7d Update VE core submodule to master (65e536c1c)
New changes:
3135ad109 Update OOUI to v0.50.0
0eb93c340 Localisation updates from https://translatewiki.net.
2e23d8cac ve.ui.Surface: Improve documentation of surface padding
d42086d50 Allow TableCellableNode to span multiple DOM elements
65e536c1c Localisation updates from https://translatewiki.net.

Local changes:
* Allow MWTransclusionTableCellNode to span multiple DOM elements

Bug: T366984
Bug: T367061
Change-Id: I67239ac72f29b9729b73c7604ee3680ceb1b8475
2024-06-17 20:06:18 +02:00
libraryupgrader 9e9ee59272 build: Updating npm dependencies
* eslint-config-wikimedia: 0.28.0 → 0.28.2
  The following rules are failing and were disabled:
  * modules:
    * no-jquery/no-append-html
  * modules/ve-mw/dm:
    * no-jquery/no-append-html

* grunt-stylelint: 0.20.0 → 0.20.1
* stylelint-config-wikimedia: 0.17.1 → 0.17.2
* braces: 3.0.2 → 3.0.3
  * https://github.com/advisories/GHSA-grv7-fg5c-xmjg

Change-Id: If171a41f93d4e96606df99fb394a9f961dc36ebd
2024-06-16 15:25:54 +00:00
jenkins-bot 8e4d4959fc Merge "Avoid Array.concat" 2024-05-29 22:02:03 +00:00
Ed Sanders b9b966de6e Avoid Array.concat
See I9addf43b2857de7bcac.

Change-Id: Ic1998ab6f7dedf6946d7ae63a985a76031f8eecf
2024-05-29 21:16:25 +01:00
jenkins-bot 48823cad4b Merge "JSDoc: convert @cfg to @param" 2024-05-28 15:13:20 +00:00
Novem Linguae 9ffbfc77cd JSDoc: convert @cfg to @param
Bug: T250843
Change-Id: I53ef4fa4a65b017eec90cc1f2cbb7e7f0681e317
2024-05-26 21:59:02 -07:00
thiemowmde c3953814e4 Fix typos and outdated links in comments
That property in the magic word class doesn't exist any more.

Change-Id: Ife275944bd1c8dec603bd01dea6075ad36acf59e
2024-05-24 15:40:01 +02:00
Ed Sanders cb657e0bdf ESLint: Re-enable prefer-const and fix
Change-Id: I9dbc12335016a326f00bf5b9a960551f828c685d
2024-05-21 17:50:12 +01:00
Ed Sanders dbc696124f ESLint: Enforce no-var and autofix
Temporarily disable prefer-const as this requires
manual fixing.

Change-Id: I477b69a57e8d33535c6fc71dba196a8605780725
2024-05-21 17:40:52 +01:00
Ed Sanders a5de8d5653 Convert local functions to arrow functions and remove this bindings
Change-Id: I7987de8737103a1fc568944496c4d707dde60bc3
2024-05-09 10:33:44 +01:00
Ed Sanders eb757c4c9f Remove unnecessary context binding when using arrow functions
Change-Id: Ie25e90aeb0519b1e0f793348b27d4d4a6b686698
2024-05-03 12:47:47 +01:00
Ed Sanders 4db99d7a27 Use more arrow functions
Change-Id: Ifdb15ea9e5ca606e02ddaf822bfd6397c3ce639e
2024-05-01 14:11:55 +01:00
Ed Sanders e3659d4846 Prefer arrow callbacks
Change-Id: Ia05b27f7c71c33580ffd0718e3bbc673dd8b3d63
2024-05-01 14:11:54 +01:00
Ed Sanders 41cce182fe docs: Escape __magicwords__ to avoid bold formatting by markdown
Change-Id: Ic4660b12091429dd3f34d241b326350049a0019a
2024-04-30 22:32:03 +01:00
Ed Sanders 97955431aa JSDoc: Fix some more documentation warnings
Change-Id: Ib5cf7fd8a544d45274935e77b6c64f868e25ac85
2024-04-30 12:00:19 +01:00
Ed Sanders afbed7c5b3 JSDoc: Fix event documentation and complex return types
Change-Id: I5dbce39294a34a999303ccfec88261d8c92b17ca
2024-04-29 19:14:26 +01:00
Ed Sanders fd122da6fd JSDoc: @mixins -> @mixes
Change-Id: Ic06b8e058b387f8d683db6273f689694cf416ce6
2024-04-29 18:51:41 +01:00
James D. Forrester b518e55ef9 docs: Replace JSDuck with JSDoc (and pull-through VE with said change)
This is not great, but it's a start (and unblocks other pull-throughs).

New changes:
c401efc98 build: Replace jsduck with jsdoc for documentation
16ba162a0 JSDoc: @mixins -> @mixes
9e0a1f53b JSDoc: Fix complex return types
449b6cc0f Prefer arrow function callbacks
1539af2c8 Remove 'this' bindings in arrow functions
b760f3b14 Use arrow functions in OO.ui.Process steps
57c24109e Use arrow functions in jQuery callbacks
9622ccef9 Convert some remaining functions callbacks to arrow functions
f6c885021 Remove useless local variable
1cd800020 Clear branch node cache when rebuilding tree

Bug: T250843
Bug: T363329
Change-Id: I0f4878ca84b95e3f388b358b943f105637e455f9
2024-04-29 16:16:50 +01:00
Ed Sanders 4156acc5ba MWBlockImageNode: Re-use existing captionData slice
Change-Id: I9e79897bd3c28265e52c07cf6ab503a745bfd4cf
2024-01-23 15:18:28 +00:00
Ed Sanders d42a0772bb Move verbose copyright message to AUTHORS.txt
Avoids having to update the date in every file every year,
which we stopped doing.

Change-Id: I7bf7aa0937eef911e00772470091753a7b06fd3d
2023-12-01 16:07:39 +00:00
David Lynch 5db452f5fa Fix Gallery images always having |link=| and |alt=|
Link is fixed by having the gallery image search results automatically
link to the image, which will resolve down to there being no `link=` in
the output. This lets us preserve whatever existing link has been
applied from source when editing gallery images later.

Follow-up to Iefc520b8513e833665dae9d5c3a9dca2762264a6

Bug: T350912
Change-Id: Iab21f72b7f1625d75fe52471b33718606c469518
2023-11-28 11:42:56 -06:00
Ed Sanders 3966573f02 build: Update ESLint to 0.26.0 and autofix
Change-Id: Ia5e15684c1c3dcd69985445a09fc4e4910368b5b
2023-11-28 11:18:09 +00:00
Nardog 9b9f2c50b0 Recognize DEFAULTSORT again
Since Parsoid now treats DEFAULTSORT like any other template, we have to
scan mw:Transclusion spans.

Bug: T337398
Change-Id: Icba92fc14c1c56ec4711ba49407e8be368d57842
2023-11-09 21:26:20 +00:00
jenkins-bot bfb4f04635 Merge "Make GalleryImageNode dm match (Inline|Block)ImageNode imgWrapper" 2023-11-02 21:40:44 +00:00
jenkins-bot a7b7f659c7 Merge "Roundtrip media tag name in galleries" 2023-11-02 21:40:12 +00:00
jenkins-bot 979cc39472 Merge "Set alt in data-mw for non-img media" 2023-11-02 21:39:02 +00:00
Ed Sanders 09d60e784b Fix remaining uses of 'parent'->'super'
Bug: T120821
Change-Id: Id6ccb82d6d6027265d1595dbf11c1c4abeabc392
2023-11-02 16:42:31 +00:00
Arlo Breault 76960385db Make GalleryImageNode dm match (Inline|Block)ImageNode imgWrapper
The observation that the href for wrappers with mw-file-description
class will be the same as the resource still holds.  However, on the
other end, if the href is null, setting it to resource doesn't work.

Timed media and when the "|link=|" media option is used, result in an
imgWrapper that's just a span and wouldn't have an href.

This patch fixes a dirtying of timed media in galleries that was
preventing selser from being used.  Note, that <source>s in <audio> and
<video> tags are still dropped, so selser won't work yet.

Change-Id: Iefc520b8513e833665dae9d5c3a9dca2762264a6
2023-10-26 15:21:27 -04:00
Arlo Breault f909f87b02 Roundtrip media tag name in galleries
This should have been part of
If5dc6b794dacd6973d3b2093e6b385591b91d539

Bug: T348703
Change-Id: I85f83d8b336ab4d6799bbe8007ef0441570a84ca
2023-10-25 13:29:19 -04:00
Arlo Breault 2497a5254e Set alt in data-mw for non-img media
Follow up to I02ea8421e468635ba6297bb5cda488a5a79c9a1d the depends on
I7a5c24f6ffc15ff0455adf5b025b695ee71501b6 in Parsoid.

Note that the mediaTag isn't currently being passed around for gallery
image nodes so, for example, a <video> becomes an <img> as is.  But,
that's independent of this patch, and a follow up will fix it.
Noted in T348703#9278332

Bug: T348703
Bug: T214603
Change-Id: I5f7d3dfe0a41fac1568c97dccc41209c14e741d0
2023-10-25 13:23:47 -04:00
David Lynch c65662ebfc Gallery image nodes: fall back to alt attributes in container mw-data
Video thumbnails have no alt attributes, and so we were causing dirty
diffs in any edit of a page that had a gallery containing a video.

Bug: T348703
Change-Id: I02ea8421e468635ba6297bb5cda488a5a79c9a1d
2023-10-16 11:58:50 -05:00
Arlo Breault 674095bbaf Port Parsoid's WTUtils::textContentFromCaption
Matches the changes in Ice62d61d1a4f661770869b43d54eb8fc20824b71

Bug: T339237
Change-Id: I16301750ae8693e850aa3ce83bbb477f820d5cae
2023-08-10 18:06:27 -04:00
Ed Sanders 1c592ae93d MWImage: Use mw-file-element class in converter methods
Change-Id: I7415a61a9d19242a8aec87fb719e0f4990aeedfb
2023-06-01 15:53:46 +01:00
Ed Sanders 9e64821bd6 Add i18n for category sort key changes
Also treat the empty string as unset.

Change-Id: I72d9ab0180f416122ca31c44787fe86aa32e88e2
2023-06-01 00:23:23 +02:00
Ed Sanders a2d4cca0f5 Never compare different categories
Bug: T336313
Change-Id: I287b228c5559ff1dd35226a9533a8a160dc70009
2023-05-30 21:13:29 +00:00
Ed Sanders dfe0283b07 Drop incomplete images generated by legacy parser
Bug: T337438
Change-Id: I076dd91bad9e5fe2758d41ac158cad8b86dbadce
2023-05-25 16:06:45 +01:00
Arlo Breault 780639f8c5 Preserve classes on all file elements, not just broken images
This also adds mw-file-element to new image nodes.

Bug: T270150
Bug: T314097
Change-Id: I545ed75ed3c87e88b5e776696754e23c05645f81
2023-05-12 10:12:15 +00:00
jenkins-bot b82f8283b9 Merge "Add test for MWTemplateSpecModel.getDocumentedParameterOrder" 2023-04-26 01:45:37 +00:00
thiemowmde 1a09676159 Add test for MWTemplateSpecModel.getDocumentedParameterOrder
It appears like this was never tested.

Now that it is covered it's much easier to play around with the
implementation and compact it a bit.

Change-Id: Ie9cc14082f69e7240380d352fb362d0a3fa4d341
2023-04-26 01:29:23 +00:00
Thiemo Kreuz 5b42d900cc Minor documentation updates in the TemplateSpecModel class
Change-Id: Idcbd600c1bee29c1ebdbc1acddbe9953b4e359a1
2023-04-21 16:16:22 +02:00
thiemowmde 5343e9a015 Fix template dialog when TemplateData contains empty parameter
It's possible to specify a parameter with no name via TemplateData.
This confuses the template dialog because the empty string is a
reserved, internal value for parameters that are in the process of
being named.

Fixing TemplateData is not so easy. Therefor this workaround here.

See T333826 for a detailed description.

Bug: T333826
Change-Id: I5f4efd7069e71ba51138a23f3c3cb40e1b50d339
2023-04-11 18:19:34 +02:00
Ed Sanders db5f13fc93 Show redirect meta items in visual diff
Bug: T161290
Change-Id: Icf68f6d085ab2de802350df0d29208f0653ceb66
2023-03-15 14:46:28 +00:00
Ed Sanders 860d9ae926 Render category diff
Bug: T161290
Depends-On: I118e85d7fa8202717db3a323e3e3dd9bc8a25be5
Change-Id: Iaa401b130bd81b8960f799dc9de6f172d9ba86a3
2023-03-15 13:10:23 +00:00
jenkins-bot 7f647a5135 Merge "Avoid/simplify possibly slow regular expressions" 2023-03-14 22:50:06 +00:00
Ed Sanders 950fc45cf0 MWGalleryImageNode: Handle own children
This means that DOM attributes are deep-restored and so
selser runs properly.

Change-Id: I2fdfc04aee5e8b3524214e25afd8443b5f6b240d
2023-03-13 16:14:06 +00:00
Arlo Breault c068c166e2 Preserve link content for broken media
Parsoid will start populating the link content with the alt text if it's
available before falling back to the filename.  Preserving what's there
is needed to avoid dirty diffs during the transition and for cached
content.  In the future, we can remove errorText and replicate Parsoid's
new behaviour..

Bug: T273014
Needed-By: Iddf3e204d6e489cc8a33034da0d9e540efe65553
Change-Id: I7ab3d141b1df92d4447f7e3d6164082844d5bd10
2023-02-22 00:40:20 +01:00
Ed Sanders 1d4f828cbd Don't allow table attributes to be edited when hasExpandedAttrs
...but do allow table contents to be edited.

Bug: T307305
Change-Id: I4d714b35d2787d7259aab8250d6a772533dfde2e
2023-02-20 23:35:27 +00:00
jenkins-bot 9272edcbba Merge "Update eslint-config-wikimedia to 0.24.0" 2023-01-18 15:04:45 +00:00