Commit graph

2353 commits

Author SHA1 Message Date
Timo Tijhof 9c5b7cef9e Improve localisation on Special:Gadgets, minor code cleanups
For each item, either display human-readable and translated text,
or display a technical non-translatable identifier as `<code>`,
with optional localised text in the title attribute.

* Re-format "rights" as a sentence instead of a bullet list. It was
  the only one using a bullet list, which made it feel a bit long.

* Re-format "actions" as `<code>` since they are not localised.

* Re-format "contentModels" as `<code>`, and add the localised display
  name in a title attribute, same as we do with "rights" already.
  ContentHandler::getLocalizedName() is also used already on
  Special:ChangeContentModel.

* Fix "contentModels" to set `needLineBreakAfter = true`, otherwise
  if a gadget also sets "supportsUrlLoad", then that sentence is
  appended to the previous line.

Update phrasing and sorting to be consistent everywhere, and adopt
native PHP types where possible.

In most cases, I made things alphabetical, with the exception of
Special:Gadgets user interface output, and Gadget class methods,
which both follow the order of most recently added feature last
(rights, skins, actions, namespaces, contentmodels, categories).

Highlights:

* Fix namespace IDs type. These can be strings when they are parsed
  from the gadget definition text, not always integers.

* Add explicit default for 'category'. In theory not needed because
  MediaWikiGadgetsDefinitionRepo has a `$section = '';` default, and
  MediaWikiGadgetsJsonRepo uses GadgetDefinitionContentHandler where
  `category: ''` is part of both the initial page content, as well
  as merged via getDefaultMetadata.

  This default benefits simpler test cases, and static analysis,
  since the Gadget class constructor does not (yet) require it.
  Without this, getCategory() could TypeError due to returning null.

Bug: T63007
Change-Id: I3b2c72a6424d520431d03761d23a5a222518ce3d
2024-03-25 15:37:40 -07:00
Translation updater bot 0daef7e54b Localisation updates from https://translatewiki.net.
Change-Id: I680e123bc3d75d2238603fc94f6083f5f457c1f5
2024-03-25 08:35:57 +01:00
Translation updater bot e3ea7d97b2 Localisation updates from https://translatewiki.net.
Change-Id: Iad57fc6d1d1f048f02144445bdf9398c020429b7
2024-03-21 08:55:15 +01:00
Translation updater bot 4711609d13 Localisation updates from https://translatewiki.net.
Change-Id: Ie3b9db92189bd19e39486907de051dca4adf4942
2024-03-19 08:25:05 +01:00
Translation updater bot 0170bfc967 Localisation updates from https://translatewiki.net.
Change-Id: Ia1f36a8f95130ebca2e91db5ac4f43df01ff9531
2024-03-18 08:31:00 +01:00
jenkins-bot 8c5a03862a Merge "hooks: Migrate buildLike to expression builder" 2024-03-17 21:58:35 +00:00
jenkins-bot d6e1510af0 Merge "Add support for categories in definitions" 2024-03-16 22:54:42 +00:00
Sophivorus e2cb01ddcd Add support for categories in definitions
Adds a "categories" option to the gadget definition, which takes a
list of category names. Enabled gadgets will only load when the
viewed page is in one of the required categories.

Bug: T204201
Bug: T63007
Change-Id: I0ced9507bdab6cacd0baf2a331859099f35b73e5
2024-03-16 22:31:03 +00:00
Translation updater bot 33ff6adb15 Localisation updates from https://translatewiki.net.
Change-Id: Ifd3abf64b68860a8128c7611acb24294fb81049e
2024-03-13 08:25:37 +01:00
Atieno cd585ee7b3 hooks: Migrate buildLike to expression builder
Bug: T350963
Change-Id: I50303841351fdfe37ee50f25d8f8de38d799d9e0
2024-03-11 13:04:13 +03:00
Translation updater bot 4b9f6f2a09 Localisation updates from https://translatewiki.net.
Change-Id: I54a6dbf16486187909ae2d0be68938e67ba82e0a
2024-03-11 08:27:01 +01:00
Umherirrender c5ce0b1a7c build: Upgrade mediawiki/mediawiki-codesniffer to v43.0.0
Change-Id: I36974f572bbf3e7fcd504496769ee7b6b28651b1
2024-03-10 19:23:46 +01:00
Translation updater bot 2c99c24a15 Localisation updates from https://translatewiki.net.
Change-Id: Ie8db699049f5519c01347a5a1e7278455ab02571
2024-03-08 08:23:04 +01:00
Translation updater bot b09872b79d Localisation updates from https://translatewiki.net.
Change-Id: I763caede8eca0546a5d1b4775cc99e0c7027baa1
2024-03-07 08:48:37 +01:00
thiemowmde 32aa712323 Add missing type hints to untyped …->getService() calls
IDEs can't discover this without the extra type hints.

Bug: T359290
Change-Id: Ibb4462911d04397beabf1884c4f7c90eaa740d3b
2024-03-06 14:50:16 +01:00
thiemowmde ac5db23b17 Add missing function argument to titleWithoutPrefix call
This is the most minimal patch possible to fix the regression. More
can be done in later patches.

Bug: T359290
Change-Id: I9351bdbc2f985e72fb253e424cd7523b73820dcd
2024-03-06 10:25:40 +00:00
Translation updater bot 76cfeb1ebb Localisation updates from https://translatewiki.net.
Change-Id: I40ba4d233b44100aea3e13b66cdf566e2c55019d
2024-03-05 08:27:39 +01:00
Siddharth VP 9d05af9df8 Replace uses of deprecated wfGetDB()
Bug: T357642
Change-Id: I868133bca622ad2af851e874b450fe0be53017d2
2024-03-04 18:39:15 +05:30
Translation updater bot 056fb151e7 Localisation updates from https://translatewiki.net.
Change-Id: I79757339442a5e50220d1ce5ff53c5c600611cfa
2024-03-04 08:23:26 +01:00
jenkins-bot 0b9f7f907d Merge "Introduce MultiGadgetRepo to facilitate repo migration" 2024-03-02 18:43:01 +00:00
Siddharth VP a629d7f71d Introduce MultiGadgetRepo to facilitate repo migration
MultiGadgetRepo is a wrapper around two or more GadgetRepos so that
they can be used at the same, facilitating migration from one repo to
another.

If a gadget appears in both repos, the definition in the first repo
takes precedence, and a warning is shown on Special:Gadgets.

This can be enabled to wrap GadgetDefinitionNamespaceRepo and
MediaWikiGadgetsDefinitionRepo by setting $wgGadgetsRepo to
'json+definition'. In this configuration, once a new JSON definition
exists for the same name, it is used instead of the old one, and the
old one can then safely be removed at a later time in the safe
knowledge that it is no longer used.

Adapted from If3cc5e22e9812d0fd1a9e8e269ea74a7f667dadd

Bug: T140323
Co-authored-by: Kunal Mehta <legoktm@debian.org>
Change-Id: Ibad53629e63ec8713d7a3b84a19838b94600588e
2024-03-02 18:22:04 +00:00
Translation updater bot 773af86f13 Localisation updates from https://translatewiki.net.
Change-Id: Ibff44c7bd8349e26056fd04252b6d302f63750ae
2024-02-29 08:36:00 +01:00
Translation updater bot 820a010016 Localisation updates from https://translatewiki.net.
Change-Id: I6d53731629c54c66d2888ffa83a8aa3145fc8175
2024-02-26 08:36:07 +01:00
jenkins-bot a5707f810e Merge "tests: Widen @covers annotations" 2024-02-24 16:56:15 +00:00
jenkins-bot af3ab84860 Merge "Content: Use DI for GadgetRepo service" 2024-02-24 16:51:09 +00:00
jenkins-bot 88e934c6cb Merge "Goodbye Gadget/Gadget_definition namespaces!" 2024-02-24 16:50:56 +00:00
Translation updater bot 305ef9b6ce Localisation updates from https://translatewiki.net.
Change-Id: I34e80febbc04435f64bf3820ce76a0b1b8f19187
2024-02-23 08:44:27 +01:00
Translation updater bot 1093394176 Localisation updates from https://translatewiki.net.
Change-Id: I979a52f6620f13b716e5833f58406cef74644426
2024-02-22 08:43:35 +01:00
Bartosz Dziewoński 9cc4ff546e Use OutputPage::setPageTitleMsg() instead of ::setPageTitle()
Bug: T343994
Change-Id: I71d1ffabd3fca96c6a3b2a9f1647edf9e675e332
2024-02-17 02:57:11 +01:00
Translation updater bot d8130a9cb0 Localisation updates from https://translatewiki.net.
Change-Id: I7fbc148288412de930e2d5c9acd8de6ebbd99649
2024-02-15 13:28:16 +01:00
Translation updater bot c8a8348fd9 Localisation updates from https://translatewiki.net.
Change-Id: I1bf93d9e612090fa09fc4d01a030ba48a7eb6793
2024-02-14 08:18:48 +01:00
Timo Tijhof 9b6d34ddf2 tests: Widen @covers annotations
https://gerrit.wikimedia.org/r/q/owner:Krinkle+is:merged+message:%2522Widen%2522

Change-Id: I1d2a75a7f64500b81f95d895ce065e80e336fba7
2024-02-13 16:11:35 +00:00
Timo Tijhof 107428075e Content: Use DI for GadgetRepo service
Change-Id: Idfabb0dfc15bdb9527f7a0018313dc9606cbd715
2024-02-13 13:45:30 +00:00
Timo Tijhof fce6fdfb20 Goodbye Gadget/Gadget_definition namespaces!
== What ==

* Remove the empty Gadget and Gadget_definition namespaces.
* Remove the "gadgets-definition-edit" user right.
* Remove need for custom namespace permissions that previously
  had to extend editsitejs to apply to NS_GADGET.

== Why ==

Simplify the (unused) "GadgetDefinitionNamespaceRepo" backend for
Gadgets 2.0 by making it less radically different from the status quo.

The experimental 2.0 branch will now make use of the "gadget definition"
content model via "MediaWiki:Gadgets/<id>.json" pages, instead of
through a dedicated namespace.

When I first worked the Gadgets 2.0 branch, content models
were not a thing in MediaWiki, and interface-admin wasn't a thing yet
either. Now that we have per-page permissions and per-page content
models, we don't really need a separate namespace.

This follows the principle of least surprise, and fits well with other
interface admin and site configuration tools such as:
- Citoid, MediaWiki:Citoid-template-type-map.json,
- VisualEditor, MediaWiki:Visualeditor-template-tools-definition.json,
- AbuseFilter, MediaWiki:BlockedExternalDomains.json,
- the upcoming "Community Config" initiative.

If/when we develop the SpecialPage GUI for editing gadget definitions,
this can save its data to these pages the same as it would in
any other namespace. Similar to how Special:BlockedExternalDomains
operates on MediaWiki:BlockedExternalDomains.json.

See also bf1d6b3e93 (I6ffd5e9467), which recently removed the
gadgets-edit user right in favour of the editsite{css,js,json} rights.

Change-Id: I5b04ab251552e839087d0a8a6923d205adc7f771
2024-02-13 13:30:26 +00:00
Translation updater bot 64c44829b9 Localisation updates from https://translatewiki.net.
Change-Id: I41e50302641f7b7bedc4912b0cb811957c27e534
2024-02-12 14:49:39 +01:00
libraryupgrader 00ce2a1e58 build: Updating dependencies
composer:
* mediawiki/mediawiki-phan-config: 0.12.1 → 0.14.0

npm:
* grunt-banana-checker: 0.11.0 → 0.11.1

Change-Id: I5af3357248500669710cd4bdb3bc4f788392415a
2024-02-10 17:22:54 +00:00
jenkins-bot ac7cec5d57 Merge "Move "gadgets" message to "special-gadgets"" 2024-02-10 00:27:29 +00:00
Timo Tijhof a8c3eb1282 Move "gadgets" message to "special-gadgets"
This makes way for "MediaWiki:Gadgets/<id>.json" to be used free of
any confusion or misinterpretation about the subpage being a
translation of "MediaWiki:Gadgets".

Change-Id: Icb68ce6c26a83d7201a97a5406f8752b3c5b0855
2024-02-09 19:10:54 +00:00
libraryupgrader 862f3b5e2e build: Updating npm dependencies
* eslint-config-wikimedia: 0.25.1 → 0.26.0
* grunt-eslint: 24.2.0 → 24.3.0

Change-Id: Ic0bb253bdf98fa02fb1dacd9cc2c6c34867d1f50
2024-02-09 03:48:56 +00:00
jenkins-bot c6b47d5bfd Merge "Follow-Up 27f913cc96: Drop complicated MobileContext injection, now unused" 2024-02-07 18:15:34 +00:00
Translation updater bot 86000a8718 Localisation updates from https://translatewiki.net.
Change-Id: I19ae09d1edb8ae8fdb4bc8ad33eb53d1be466526
2024-02-05 08:49:44 +01:00
libraryupgrader ac42f4ee8e build: Updating npm dependencies
* eslint-plugin-compat: 4.1.4 → 4.2.0
  * https://github.com/advisories/GHSA-c2qf-rxjj-qqgw
  * https://github.com/advisories/GHSA-c2qf-rxjj-qqgw
  * https://github.com/advisories/GHSA-c2qf-rxjj-qqgw
* semver: 7.3.8 → 7.5.4
  * https://github.com/advisories/GHSA-c2qf-rxjj-qqgw
  * https://github.com/advisories/GHSA-c2qf-rxjj-qqgw
  * https://github.com/advisories/GHSA-c2qf-rxjj-qqgw

Change-Id: I130054bdeb83e505f96378adc077526e8f7dbf32
2024-02-03 20:55:23 +00:00
Reedy 1b2a84aaff Gadget: Bump GADGET_CLASS_VERSION
Bug: T356322
Follows-Up: If6d742ea719e4c8db9d915e8297d915d2150ef50
Change-Id: Id5f60e054304e6a715f0f54d11fd2f467fe4c5c7
2024-01-31 19:37:07 +00:00
Translation updater bot 5ec56bef7d Localisation updates from https://translatewiki.net.
Change-Id: I82f87498d700c4be85ef94bd0dd03c273aa8fae0
2024-01-31 08:29:04 +01:00
Translation updater bot 11fa3db4a4 Localisation updates from https://translatewiki.net.
Change-Id: I7c634517cd4dfbf7bbcf967ce726d239870fae6a
2024-01-30 09:39:04 +01:00
Translation updater bot e87235edaf Localisation updates from https://translatewiki.net.
Change-Id: Icb93c28cc7e06f137617865c45da70b6b405ced1
2024-01-28 16:06:41 +01:00
James D. Forrester 9d6b0e8206 Follow-Up 27f913cc96: Drop complicated MobileContext injection, now unused
Change-Id: I8b32abd4bcc0b588972c65956d08c4b29bf6b4aa
2024-01-26 12:48:18 -05:00
James D. Forrester 27f913cc96 Drop RL targets definitions from module class, and validation / error code
Bug: T328497
Change-Id: If6d742ea719e4c8db9d915e8297d915d2150ef50
2024-01-24 12:11:20 -05:00
jenkins-bot 677e3a86ff Merge "Make Special:Gadgets [Edit description] link smaller" 2024-01-24 00:51:15 +00:00
jenkins-bot 705c01a7ca Merge "SpecialGadgets: refactor" 2024-01-19 09:26:20 +00:00