Page MenuHomeMiraheze

Improve ManageWiki extension interface
Closed, ResolvedPublic

Assigned To
Unknown Object (User)
Authored By
labster
Apr 11 2021, 08:15
Referenced Files
None
Tokens
"Yellow Medal" token, awarded by Mazzaz."Party Time" token, awarded by Joritochip."Love" token, awarded by Redmin.

Description

After a fruitful discussion in Discord today, we came up with a few ways we might be able to improve the interface to ManageWiki. The first couple have to do with discoverability -- unless you know the name of the extension you want, it's hard to find something useful.

  1. Split the long extension list into multiple categories, so that similar functionality is grouped together (kind of akin to what Special:SpecialPages does). While it might be possible to get this from extension.json, this might end up with too many groups. We may want to choose a smaller group to be manually determined, like "User rights and moderation" "Wikicode functions" (parser functions), "Appearance", "Editing", Special Pages", "Other". The categories might be grouped into tabs or with ordinary headers; I'm fairly agnostic on this point.
  2. Next to each extension, load descriptionmsg from extension.json (or the translation files). The intent here is likely to be able to read what is not applicable before reading every page on Wikimedia.
  3. The save tab is a little weird. If it's at all possible, can we steal CSS from Special:Preferences? Similar functionality should look similar, and the MW design team did a fairly good job on "page with tabs and checkboxes".
  4. Stretch goal: configure extension variables from this screen, which also increases discoverability. If this is even possible, or a good idea.

Honestly you've done a really good job with ManageWiki, I'm just proposing to add a little more polish.

Event Timeline

labster triaged this task as Low priority.Apr 11 2021, 08:15
labster created this task.

Agree with just about everything said and surprised there isn't a task for it already.

Some of this has been discussed before but we're lacking in developers with the experience to do it.

Unknown Object (User) added a comment.Apr 11 2021, 16:36

This is was talked about on Discord. Thank you for creating the task! I will work on this when I return to Miraheze full time.

Now that I have CreateWiki and ManageWiki working on my local MediaWiki install, I will attempt to start working on some of these changes when I get the chance.

Unknown Object (User) added a comment.EditedApr 11 2021, 20:04

Split the long extension list into multiple categories, so that similar functionality is grouped together (kind of akin to what Special:SpecialPages does). While it might be possible to get this from extension.json, this might end up with too many groups. We may want to choose a smaller group to be manually determined, like "User rights and moderation" "Wikicode functions" (parser functions), "Appearance", "Editing", Special Pages", "Other". The categories might be grouped into tabs or with ordinary headers; I'm fairly agnostic on this point.

Already supported, just needs mw-config change for that. You just need to add the 'section' => 'section' key => value to ManageWikiExtensions.php.

Unknown Object (User) added a comment.EditedApr 11 2021, 20:06

Next to each extension, load descriptionmsg from extension.json (or the translation files). The intent here is likely to be able to read what is not applicable before reading every page on Wikimedia.

$extensions = ExtensionRegistry::getInstance()->getAllThings();
$descriptionmsg = $extensions['ExtensionName']['descriptionmsg'];
$description = wfMessage( $descriptionmsg )->parse();

Should work for this (provided that the extension or skin is loaded with ExtensionRegistry (extension/skin.json))

I have a couple additional plans for this though.

Unknown Object (User) subscribed.Apr 11 2021, 21:19

Split the long extension list into multiple categories, so that similar functionality is grouped together (kind of akin to what Special:SpecialPages does). While it might be possible to get this from extension.json, this might end up with too many groups. We may want to choose a smaller group to be manually determined, like "User rights and moderation" "Wikicode functions" (parser functions), "Appearance", "Editing", Special Pages", "Other". The categories might be grouped into tabs or with ordinary headers; I'm fairly agnostic on this point.

Already supported, just needs mw-config change for that. You just need to add the 'section' => 'section' key => value to ManageWikiExtensions.php.

Added in this pull request. Currently this just uses the type value from extension.json, but we may want to consider changing these categories to be more useful and balanced in the future.

Unknown Object (User) added a comment.EditedApr 12 2021, 00:20

https://github.com/miraheze/mw-config/pull/3830/ reorders the sections created by @Joritochip (thanks for that by the way)

https://github.com/miraheze/mw-config/pull/3830/ reorders the sections created by @Joritochip (thanks for that by the way)

Note that some extensions define custom types (see Wikibase, for example). I suggest adding those sections. There should be a way to automatically detect this (not very important but would be good).

I'd like to suggest the addition of a search tab to it and an 'All' tab that is just like the previous versions.

Unknown Object (User) claimed this task.May 12 2021, 19:59

I plan to work on the rest of this over the coming weeks.

Unknown Object (User) moved this task from Backlog to Short Term on the Technology-Team (MediaWiki) board.May 15 2021, 15:11
Unknown Object (User) moved this task from Short Term to Long Term on the Technology-Team (MediaWiki) board.
Unknown Object (User) moved this task from Unsorted to Goals on the Universal Omega board.
Unknown Object (User) removed a project: Configuration.
Unknown Object (User) added a comment.EditedJun 29 2021, 00:18

https://github.com/miraheze/ManageWiki/pull/278 will support pulling descriptionmsg, namemsg, description, and name to use as the description and name within ManageWikiExtensions. It requires that the name set in ManageWikiExtensions.php is the same as the name in extension.json or $wgExtensionCredits so it also introduces new optional parameters for ManageWikiExtensions:

  • displayname: allows for a plain text or localised message key display name for use in ManageWikiExtensions.
  • description: allows for a plain text or localised message key description for use in ManageWikiExtensions.

https://github.com/miraheze/mw-config/pull/3990 updates ManageWikiExtensions.php for this usage.

The "improvement" in #1 has actually made my life harder and I am pretty sure many others feel the same way. The types defined in extension registry are not useful at all to the end user; they make navigating ManageWiki harder. I suggest adding custom sections.

Unknown Object (User) added a comment.Jul 17 2021, 17:01
In T7125#153783, @R4356th wrote:

The "improvement" in #1 has actually made my life harder and I am pretty sure many others feel the same way. The types defined in extension registry are not useful at all to the end user; they make navigating ManageWiki harder. I suggest adding custom sections.

I actually agree. I'm going to redefine #1 and make it a preference likely or completely revert the change. Or do something else as it makes it much harder I think.

I think instead of having tabs on the form, we should have a filter that simply updates the visibility of the different items (I think we do something similar with the yearly Survey, where checking a checkbox makes more questions visible). This way we could default the page to showing all items, but also easily filter it down to categories. Additionally, depending on how it's implemented, it could display multiple categories at once, and the same item could be in multiple categories.

Unknown Object (User) updated the task description. (Show Details)Jul 19 2021, 02:47

Descriptions are now displayed.

The third part of this should be done with https://github.com/miraheze/ManageWiki/pull/281.

In T7125#153926, @Void wrote:

I think instead of having tabs on the form, we should have a filter that simply updates the visibility of the different items (I think we do something similar with the yearly Survey, where checking a checkbox makes more questions visible). This way we could default the page to showing all items, but also easily filter it down to categories. Additionally, depending on how it's implemented, it could display multiple categories at once, and the same item could be in multiple categories.

should be nice, and actually may work better with a search instead of tabs. However the list will have to be vertical because of the many categories (assuming an extension can fall in at least 2 different categories).

Unknown Object (User) added a comment.Jul 23 2021, 06:43

The PR to change the way the submit is done, does many other improvements as well. I explained that on https://github.com/miraheze/ManageWiki/pull/281#issue-692147089.

Unknown Object (User) updated the task description. (Show Details)Jul 23 2021, 17:06

Part 3 now deployed.

Unknown Object (User) closed this task as Resolved.Jul 23 2021, 18:47
Unknown Object (User) updated the task description. (Show Details)

Closing as resolved since the first 3 parts are done, and the final part is quite difficult and not necessarily worth it at this time. If it is wanted enough later it can be reconsidered.