Page MenuHomePhabricator

Convert Special:GlobalPreferences to OOUI
Closed, ResolvedPublic5 Estimated Story Points

Description

Once T117781 is done, GlobalPreferences should follow suit.

OOUI is a UI library that we're beginning to use on MediaWiki special pages. Special:Preferences is being converted to use OOUI in T117781. Once that happens, we should also convert Special:GlobalPreferences to use OOUI.

To see OOUI in action, go to https://en.wikipedia.org/wiki/Special:Preferences?ooui=1

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript

The blocking task is essentially fixed as we now have an OOUI mode (?ooui=true, or $wgOOUIPreferences = true;), so work can begin on this.

@Samwilson Can you link to the patches you made for doing this when you worked on it in the past? I recall that all this work was done but rolled back because OOUI on Special:Preferences was rolled back.

No, I'm afraid I can't find the specific OOUI changes... I think they were made as part of https://gerrit.wikimedia.org/r/#/c/mediawiki/extensions/GlobalPreferences/+/370152 and then undone in the same patch, before merging. It wasn't all that complicated, and I think quite a few things have change with core Preferences since then (i.e. with how it's done OOUI) so probably wouldn't be of massive help anyway.

Niharika added a project: Community-Tech.
Niharika moved this task from Bug backlog to Needs Discussion on the Community-Tech board.
Niharika set the point value for this task to 5.Jul 17 2018, 11:34 PM
Niharika moved this task from Needs Discussion to Up Next (May 6-17) on the Community-Tech board.
jmatazzoni subscribed.

Here's my suggested language for this:

Make all selections below global

@jmatazzoni To be very clear, we're talking about this occurrence of the sentence:

image.png (552×814 px, 69 KB)

I like your brevity and think it's also easier to translate, as non-native English speaker, I'd propose additionally to add “settings”

Make all selections below global settings

The right place for that conversation is T194908. Updating the message text can be done independent of OOUI conversion. Hence removing that as subtask.

@Mooeypoo In the meeting yesterday you briefly mentioned that you will try to work on the checkmatrix compatibility issues for GlobalPrefs. If so, do claim this ticket and put it in the sprint. This ticket is broader but since we got help from Prateek, we didn't do anything on it ourselves. Feel free to modify the description and change the point value if you want.

Change 448190 had a related patch set uploaded (by Mooeypoo; owner: Mooeypoo):
[mediawiki/core@master] [wip^N] OOUIfy CheckMatrix in PHP and JS

https://gerrit.wikimedia.org/r/448190

Change 449375 had a related patch set uploaded (by Mooeypoo; owner: Mooeypoo):
[mediawiki/extensions/GlobalPreferences@master] Add OOUI-JS widget for CheckMatrix so it can be disabled/enabled

https://gerrit.wikimedia.org/r/449375

Mooeypoo moved this task from In Development to Ready on the Community-Tech-Sprint board.

There was a confusion; the ticket the patches above refered to is the fix for Special:Preferences for local override checkboxes T199946: Checkboxes for local overrides added by GlobalPrefs extension do not work as expected with OOUI

This ticket -- to completely OOUI'fy GlobalPreferences specifically, is still open and needs to be worked on.

Change 450262 had a related patch set uploaded (by Mooeypoo; owner: Mooeypoo):
[mediawiki/extensions/GlobalPreferences@master] OOUI'fy Special:GlobalPreferences

https://gerrit.wikimedia.org/r/450262

Poke. This ticket has been in this column for quite long now. It seems like the tests are failing on the patch.

Change 454886 had a related patch set uploaded (by Mooeypoo; owner: Mooeypoo):
[mediawiki/core@master] SpecialPreferences: Make $oouiEnabled protected

https://gerrit.wikimedia.org/r/454886

Change 454886 abandoned by Mooeypoo:
SpecialPreferences: Make $oouiEnabled protected

Reason:
Actually, sorry, this is probably better handled in the child if the parent constructor is always called first, especially since this is a temporary variable until ooui is made default.

https://gerrit.wikimedia.org/r/454886

Change 450262 merged by jenkins-bot:
[mediawiki/extensions/GlobalPreferences@master] OOUI'fy Special:GlobalPreferences

https://gerrit.wikimedia.org/r/450262

@jmatazzoni To be very clear, we're talking about this occurrence of the sentence:

image.png (552×814 px, 69 KB)

I like your brevity and think it's also easier to translate, as non-native English speaker, I'd propose additionally to add “settings”

Make all selections below global settings

I like that formulation. Thanks.

@jmatazzoni It's more complex than thought of at first. That specific message also needs to work in non-JavaScript enabled mode:

image.png (407×1 px, 61 KB)

That hinders “all” to be added to the message IMO.

I therefore suggest using “Make options below global preferences“.

There is no way to write one label that will work for JavaScript and non-JavaScript versions, since the functionality is completely different. The answer here is that we need two different messages: one for JavaScript (with a check box) and one without JavaScript (where there is no check box).

Javascript version

Let's not talk about "options" or "choices" or "selctions"--since all of those bring in a certain ambiguity as to whether we're saying we're going to turn everything on or not. Let's call this what it is: we're making "local preferences" into "global preferences" (for this page only). Here is the language I'd use.

  • Make all local preferences below global

Non-JavaScript

For the non-JavaScript version, there is no checkbox. So this becomes just informational text. I don't believe there is space to label this column effectively, so I don't think trying to find the perfect word or phrase for the column will work. Instead, I'd turn this into a piece of instructional text. Here are some options with more or less detail:

  • To make local preferences global, check the boxes in the left column and Save.
  • To make local preferences global, so that the preferences apply on all wikis, check the boxes in the left column and Save.
  • To make local preferences global, check the boxes in the left column next to the choices you want to apply on all wikis, and Save.

(Obviously, RTL issues apply here, but we have a system for that and writing around this—e.g., by calling it the "outside" column or something—will be confusing.)

The non-JS should always be shown. The JS-only check all button is not a substitute for this instruction.

The non-JS should always be shown. The JS-only check all button is not a substitute for this instruction.

That's a good point Ed. With the right layout, the JS functionality and the non-JS instructions can play nicely together on the JS page.

In anticipation of that, i removed the boldfacing from the instruction text (which I'd thought might make it more discoverable/scanable). A designer should make a mockup of how those elements will work together, though, IMHO,

matmarex subscribed.

This task "Convert Special:GlobalPreferences to OOUI" is resolved by https://gerrit.wikimedia.org/r/450262, so I'm closing it.

@Volker_E @jmatazzoni @Esanders I copied your comments to T194908: Consider updating the interface message for "select all" in Global Preferences.