Commit graph

160 commits

Author SHA1 Message Date
Ed Sanders b9b966de6e Avoid Array.concat
See I9addf43b2857de7bcac.

Change-Id: Ic1998ab6f7dedf6946d7ae63a985a76031f8eecf
2024-05-29 21:16:25 +01: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 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 373538d206 JSDoc: Add namespaces
Change-Id: Id9a5e2633667786d3bd1c900893007f0ec71a8a5
2024-04-30 12:24:10 +01:00
Ed Sanders afbed7c5b3 JSDoc: Fix event documentation and complex return types
Change-Id: I5dbce39294a34a999303ccfec88261d8c92b17ca
2024-04-29 19:14:26 +01:00
libraryupgrader c51ec255d7 build: Updating dependencies
composer:
* php-parallel-lint/php-parallel-lint: 1.3.2 → 1.4.0

npm:
* eslint-config-wikimedia: 0.26.0 → 0.27.0

Change-Id: Icb8391aaa2eb5826cc13bcb2b2a06f53d56bc41c
2024-03-30 16:51:06 +00:00
jenkins-bot ef3c244834 Merge "Compatibility with new heading HTML" 2024-03-14 18:48:26 +00:00
Divec 013a9216df Merge "Improve opening editor when collabSession is in URL" 2024-03-14 17:00:59 +00:00
Ed Sanders 7aa6e7b250 DesktopArticleTarget.init: Document methods
Change-Id: Ida207aa83b0fb6e646c376fb4a0ff51a3bd67e57
2024-03-13 16:01:15 -07:00
Ed Sanders 46afa48a14 Improve opening editor when collabSession is in URL
* Suppress the welcome dialog
* Always load VE if collabSession is set

Change-Id: Icb61b0b06ecc477125b8deb05d5309fe34605914
2024-03-13 22:45:51 +00:00
Bartosz Dziewoński 5fb480fa9e Compatibility with new heading HTML
Small fix to support new HTML markup for headings, which will soon be
used by Parsoid page views (T269630) and by the old parser (T13555).

This fixes two issues that were only apparent when using
`$wgVisualEditorEnableVisualSectionEditing = true`:

* When starting an edit from a section edit link, the viewport was
  not scrolled to align with the clicked heading and thus didn't
  provide a smooth transition into edit mode.

* If the editor was started from a section edit link, then when
  leaving the editor without saving changes, the viewport would jump
  to the top of the page instead of returning to the clicked heading.

This is similar to change If71d4d8292 in MobileFrontend editor.

Bug: T13555
Change-Id: I89f8abac521e635f8eaa782703bdb6f6323098b0
2024-03-08 18:54:45 +00:00
Sam Wilson 9226a67ea1 editSwitch: Use secondary group for WikiEditor switch menu
Instead of inserting the editSwitch menu manually to the WikiEditor
toolbar, use the 'secondary' section which is already aligned to
the right.

Bug: T308423
Depends-On: Iff6d80628ebb5ec5685136fa02c2345eb5b49d42
Change-Id: Ic307f9dc7ad976862c8d8c6551ed29e6071f655f
2024-01-31 06:49:14 +03:00
Ed Sanders dd4e766d4b Remove { passive: true } from removeEventListener
This option doesn't exist when removing an event.

Change-Id: I74cc8c41ad13ae7d2b4932c41d8dc51b764e1b6b
2023-12-08 11:00:01 +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
jenkins-bot 8411bd0954 Merge "Remove handling of Minerva edit links" 2023-11-16 18:37:24 +00:00
Bartosz Dziewoński 5667832c1b Attach content to teleport target instead of <body>, remove Vector hacks
In MediaWiki, OO.ui.getTeleportTarget() is overridden to return
a different element (itself attached to body), which is supposed
to be styled appropriately by skins (e.g. z-index above any
floating header, font-size same as body text, etc.).

As a result, we no longer need to do weird things with the
'vector-body' class to achieve correct font size on Vector,
and we can remove some font-size overrides for Vector and MonoBook.

Bug: T348288
Bug: T339058
Change-Id: I6329b3023573b3dcfc8f471c4693be9bb1e9e430
2023-11-06 14:29:12 +00:00
Bartosz Dziewoński 8ec439d417 Remove handling of Minerva edit links
After the other changes in T346944, desktop Minerva can display
multiple edit tabs and section edit links without these hacks.

Bug: T346944
Change-Id: I3721f9387303386493664366988961242a26dba5
2023-10-24 03:27:09 +02:00
Bartosz Dziewoński a60b3719f6 Don't try to update tab text if a custom message is incompatible
Some wikis customize messages, e.g. 'skin-view-create-local', in ways
that are not compatible with the client-side message parser.

Bug: T306807
Change-Id: Ie2f2ba4bba3b5b6f4fd6dbed6773d87f096a8944
2023-10-12 21:01:39 +02:00
Bartosz Dziewoński fa889154c2 Fix handling of 'edit-local' and 'create-local' messages
* Remove incorrect overrides in VisualEditorTabMessages. Since
  I44bd632682d5cc52b2660ad72a492f95a04be36e, the interface should use
  'skin-view-edit-local' and 'skin-view-create-local' respectively.

* Fix the fallback mechanism in DesktopArticleTarget.init.js
  to handle these keys correctly.

Change-Id: I7dad7e3a6fb920c5caf175e0e7500fd0c4b4d0ae
2023-10-12 20:05:06 +02:00
Bartosz Dziewoński be36f1fab1 DesktopArticleTarget.init: Remove code for updating edit links
This JS code duplicates the PHP implementation in VisualEditorHooks
in order to allow changes to the configuration of edit tabs
(e.g. wgVisualEditorUseSingleEditTab and wgVisualEditorTabPosition)
to take effect for logged-out users immediately, without waiting
for the HTML caches to clear.

It was worthwhile 10 years ago when VisualEditor was being rolled out
to new wikis or reconfigured daily, but it is not today when we hardly
ever change these settings.

It proved difficult to maintain as the skins change, it has several
known bugs (T292125, T306807, T346944), and probably several more
unknown ones, given that it hasn't been tested in about 10 years.

Let's remove it and save ourselves the headache. (Also also reduce the
amount of code we ship on all page views by almost a kilobyte.)

Bug: T292125
Bug: T306807
Bug: T346944
Change-Id: Ib82f5402872a2429445463a1e1ef92806d3326f9
2023-10-05 03:11:40 +02:00
Bartosz Dziewoński 1fcd67b368 Remove use of wgFlaggedRevsEditLatestRevision
Renamed to wgEditLatestRevision in FlaggedRevs.

Change-Id: I9310aaacc475b40cd886b2be2d5dc25c0f152db2
2023-09-06 19:21:12 +02:00
Ed Sanders a54f36c886 Use passive event listeners for window scroll events
TODO comments suggested using the VE helper util, but
that is no longer necessary since all our browsers
support passive events.

Change-Id: Idb7e702d58931208d555a3f994cd0b73abec2e20
2023-08-09 16:42:23 +01:00
Dringsim cce52fae65 Use different tooltips for ca-edit and ca-ve-edit links
Bug: T337653
Bug: T341424
Change-Id: I3aa79fec71ca2c40a0ece3ca73dd934cf6c9d5a8
2023-08-02 16:36:54 +00:00
jenkins-bot b9f0764711 Merge "Prevent JS code from changing 'skin-view-edit-local' message to 'skin-view-edit'" 2023-07-17 23:54:53 +00:00
jenkins-bot 4231c7a328 Merge "Use different titles for "Edit" and "Edit source" links (section headings)" 2023-07-17 23:07:44 +00:00
David Lynch 7d1e9f3eaf When switching from WikiEditor activate VE *after* notifying WikiEditor
This affects logging behavior -- notifying WikiEditor lets its logging
clean up after itself before the init event for VE fires. This was only
an issue when switching *with* changes, because that path resulted in
the timings being cleared, making future events whose timing depended
on the init event have NaN timings.

(This wasn't an issue before we centralized the logging code into
WikimediaEvents, as before that WikiEditor and VE were maintaining
separate timing registries.)

Bug: T237063
Change-Id: Icdb307fa0ce0d1dac3744e4bab41b3588f14777f
2023-07-13 09:32:55 -05:00
沈澄心 70cb30c2a8 Prevent JS code from changing 'skin-view-edit-local' message to 'skin-view-edit'
Change-Id: I33ab649959226a848e1c57fc7c2b7e95a014e4bd
2023-07-13 02:51:12 +00:00
沈澄心 8523b5a876 Use different titles for "Edit" and "Edit source" links (section headings)
Bug: T337653
Change-Id: I6793d458b7a1573de6752177cab5a9bfae9ffca0
2023-07-13 02:47:50 +00:00
jenkins-bot 7ae61934a3 Merge "Remove remains of lossy-switching and discard-switching" 2023-07-11 15:34:52 +00:00
jenkins-bot 5574237f47 Merge "Support '&editintro=…' etc. on subsequent loads via page tabs" 2023-07-11 15:33:30 +00:00
jenkins-bot 55b04b8820 Merge "Replace the last use of mediawiki.Uri" 2023-06-30 19:57:45 +00:00
Bartosz Dziewoński 34c6d3e1a3 Remove remains of lossy-switching and discard-switching
After the demise of RESTBase we are always able to switch from
wikitext to visual mode with changes, and we no longer need to
support these two poor experiences.

Bug: T339871
Bug: T339872
Change-Id: I2be4068447b21e16c87db0e56d6422ea64ba4708
2023-06-25 09:16:45 +00:00
jenkins-bot 68265fcd14 Merge "Use new helpers to show the post-edit message" 2023-06-22 15:33:28 +00:00
Bartosz Dziewoński dd509c1072 Use new helpers to show the post-edit message
Undo some changes from 95454e710f1b619f7c538bc1dc88f238409719ca,
as this functionality is now provided by the core code.

Depends-On: I1c9020b2efb2785279f5c09539a49208a310ccf7
Depends-On: Ifeffcf214719f0d5c1371dc7d51a410fb313c978
Bug: T338003
Change-Id: I90a618897699c844f9c558bbeb4d1563f8050fe3
2023-06-22 13:51:59 +00:00
Bartosz Dziewoński eedafae69e Support '&editintro=…' etc. on subsequent loads via page tabs
Before this change DesktopArticleTarget's history management was not
working correctly because .currentUrl was not being updated on every
activation, and we worked around this problem by activating it in a
different way on subsequent loads in DesktopArticleTarget.init.

Fix the first bug by updating .currentUrl whenever we activate it,
and remove the guards around the normal way of activating it, which
fixes the parsing of 'editintro' parameter.

Bug: T56029
Change-Id: Ifd6af60cdf1d2c87536017b316ab8da1f5133400
2023-06-21 13:35:43 +00:00
Bartosz Dziewoński 2b8c3edab2 Replace the last use of mediawiki.Uri
Depends-On: Ia95a27c7d7ebc9e4779f82598152145f02993b29
Change-Id: I8736111c4ec3cf9a9480df2efbdf080b5d72d514
2023-06-21 15:35:06 +02:00
Bartosz Dziewoński a35698fea5 Fix '&editintro=…' not working on Vector with some settings
In Vector the edit tab links have an extra <span> inside, and so
we couldn't find the parameters in the <a> href, because we were
actually looking at the <span>.

It worked in cases where we override the edit tab labels, since
we trample over the spans, e.g. in multi-tab mode.

Bug: T56029
Change-Id: I96935490418d7c3be4d417aaa71cb6e9608fd77f
2023-06-21 13:08:05 +00:00
Bartosz Dziewoński d8c3d007ff DesktopArticleTarget.init: Remove error logging for URL errors
Detailed logging is no longer needed after T328094 was resolved.

Change-Id: I49fa8598aa442445e12e553ebfd6680d9fe12a1b
2023-06-21 15:07:47 +02:00
Bartosz Dziewoński 99b326286c DesktopArticleTarget.init: Fix bad parameter to activateTarget()
The 4th parameter is a boolean 'modified', not a node. I'm not sure
what this was supposed to do. It looks like the parameter was being
ignored in all cases anyway.

Change-Id: I559ab2bdb02c4a3e39b44487cf36122332d61fd1
2023-06-21 15:07:47 +02:00
Dringsim d27825caa1 Set a JS config var to force VisualEditor to edit the current version
Rename wgFlaggedRevsEditLatestRevision to wgEditLatestRevision (not use 'VisualEditor' - this config may be used by other editors)

Bug: T338312
Change-Id: I6c9c46774fe197ca7775b65f12e62bb3bcbe53b4
2023-06-09 12:45:37 +00:00
Bartosz Dziewoński 872679aeec DesktopArticleTarget.init: Support '&editintro=…' in edit links
Support gadgets adding '&editintro=…' to the default edit link.
It was already supported when opening the link in a new window, or
following an external link, or when clicking a section edit link.

Also, clean up these parameters when leaving the editor. This also
applies to 'preload', 'preloadparams', 'preloadtitle', 'summary'.

KNOWN BUG: Only works the first time the editor is loaded on the page.
Afterwards, DesktopArticleTarget.init lets DesktopArticleTarget handle
initialization, and it ignores extra parameters. I made a few attempts
at fixing this, but I only broke it further. I don't understand why
the history handling code even works. Maybe I'll come back to this.

Bug: T56029
Change-Id: I38fcde573f728250aaa125b391815e7fac7df362
2023-05-30 12:52:53 +00:00
Bartosz Dziewoński 53217d24e0 DesktopArticleTarget.init: Simplify parameter types
I prefer not having to think what type `link` is.
Just pass `linkUrl` everywhere.

Add and correct some related doc comments.

Change-Id: I5aa03149d7e1b32cd9ec19c589b16d03a9981857
2023-05-30 14:51:53 +02:00
jenkins-bot 929b4d405d Merge "Prevent desktop init from running on mobile" 2023-05-12 10:32:22 +00:00
Ed Sanders ee33c850ae Prevent desktop init from running on mobile
3rd parties may load this module inadvertently.

Change-Id: Ie545dc2bf95eae862340531cc36e88a592882c53
2023-05-10 15:25:06 +01:00
Bartosz Dziewoński 3b1a2d9dce Handle temporary users when dealing with user preferences
As temporary users will not have access to user preferences (T330815),
use cookies or localStorage to save them, like we already do for
logged-out users.

Also add some comments to point out where we intentionally distinguish
logged-out and temp users.

Bug: T332435
Change-Id: Ic83dd8bc8bc107f603a9b0340bd9e2bcaad8ff5a
2023-04-28 15:57:46 +02:00
Bartosz Dziewoński 766bdedf70 Centralize EditAttemptStep logging code in WikimediaEvents
* Use the new mw.track() handlers from WikimediaEvents
* Ensure that 'integration' and 'mode' are set on init
  events, since they're not guessed in the handler any more
* Remove the setting of 'editingStatsId' tracking parameter,
  now happens in WikimediaEvents by setting an API AJAX option
* Replace ve.track with mw.track in VE-MW, so that we don't have
  to copy the events manually here and in other extensions

This must be merged together with WikimediaEvents change
Iace4d53a972396ca5b8713000570cc47c9986034 (but we can't use
Depends-On, because CI requires code here to be removed first).

Bug: T332438
Change-Id: I0ef0a96aafdf89a4ebe32131a85b18c25744bb2c
2023-03-24 21:48:45 +01:00
jenkins-bot b9691dcd09 Merge "Set editor preference even when disableForAnons is set" 2023-03-13 14:19:33 +00:00
Ed Sanders 1044753245 Set editor preference even when disableForAnons is set
disableForAnons is used to present a single wikitext tab on
dual-edit-tab wikis, and/or default-wikitext red links.

Users who open the editor and then switch to VE should still
have that preference stored in a cookie when that happens.

Bug: T331462
Change-Id: If2a866cff7e54d2832f6aa22eb268eb125f2d1c2
2023-03-08 15:12:07 +00:00