Currently at the first view it's hard to understand what do all these checkboxes. What about clearly distinct global conf ones and normal preferences ? Perhaps adding a vertical border, that separate the two kind of options. Hope I'm clear :)
Topic on Help talk:Extension:GlobalPreferences/Flow
Yes, this (the issue and the solution with a vertical border) does make sense, thank you.
I made a task to investigate this.
I also agree that two checkbox in front of the same option is confusive. The first checkbox in each row should have the label "Global" or "Globally". May be it should even appeart below instead of before the option to which it applies, or the two checkbox should be below the option label, but each one with a specific label:
Option description [x] by default on all wikis [x] on this wiki
(the term "global" can be confusive, the top of the form)
It is also not clear what is the effect of checking the first checkbox when the 2nd is not; it could mean - "apply the following ON/OFF setting on all wikis as set in the second checkbox, but as the 2nd is not check this would mean "apply the OFF setting on all wikis" - "apply the ON setting on all wikis" independantly of the local setting specified by the second one.
When an preference is not an ON/OFF setting but some choice in a combo, or some text, it may be clearer, but then we cannot show what is the value to use globally (the local and global settings could be very different strings or choices or could not be defined at all to use the default site setting).
In my opinion each local settings (ON/OFF, combo choice, text) should be followed by a checkbox below it to say:
[x] Option description [x] apply this setting globally
Radio setting: (o) Option 1 (o) Option 2 (o) Option 3 [x] apply this setting globally
Select: [ Chooose v ] [x] apply this setting globally
Input text field: [ .... ] [x] apply this setting globally
When loading the form, local settings would be displayed and the second checkbox below each option would be always OFF. It should be clicked only to indicate that we want to copy the local value to the global settings.
In the Global settings however, the same form would display the same options but with their respective values, here also the second checkbox would display "[x] use this setting to override the local setting."
finally note that the "default site default" should not be taken into account: it is just used to define the local setting for the user içn case it has not been stored in the user profile. The same also applies to the global setting: an empty input field or absence of ON setting does not necessarily means "use site default", but just we want this setting to be OFF or empty even if the default site setting is ON or has some text. It may also happen frequently that many users will have a local setting stored locally which has the same value as the local setting, but it is not overridable/freely changeable by the site, if the site default is changed later. So site default settings, or global should be another option value we'll want to enable explicitly.
Some A/B test could confirm what is the best option for the layout.