The possibilities for the submission callback return value were
documented in three different places, and none were entirely correct.
Related documentation could also use a cleanup.
Change-Id: Ib3621a0d5ba24c481f3117b547bca70d4ca50ba2
The other field is in most case the default item selected in the drop
down box when a page is loaded. But when the last item is selected you
have to scroll to the top to select one of the first item, which are
often the common or most used items.
So adding the 'other' always as first item to the list.
For the HTMLSelectAndOtherField this was before
If4175332405d26c7ff2e8fbe100bcad61762ce6f, so that is fixing a
regression. In my opinion it should be the same for both types.
Follow-Up: If4175332405d26c7ff2e8fbe100bcad61762ce6f
Change-Id: I82f31e260d63bfaa6a4a94908e019feb9e0f2421
Require use of class instead of applying styling to all <div>s
This resolves a few FIXMEs and dramatically lowers the awkwardness
level of using mediawiki.ui.
'.mw-ui-vform-field' is a more descriptive name than '.mw-ui-vform-div'
and corresponds to the HTMLFormField PHP class in core which generates
<div>s with this CSS class.
We previously styled '.mw-ui-vform > div' the same way we styled
'.mw-ui-vform .mw-ui-vform-div', which was an annoying piece of magic
causing difficult to debug problems when one needed a different HTML
structure (like bug 63233). Explicitly using '.mw-ui-vform-field'
where applicable is a lot saner.
Change-Id: I6f0b8842f5fdf70b97decb165086d1a83428b259
There are so many slightly different understandings of what a
"section" is or can be. I'm aware the documentation was improved
just a few weeks ago. I still find it incomplete and confusing.
1. I renamed it to $sectionId to make it more clear what it
really is.
2. Sections are usually numbers. 0, 1 and so on. There is no
reason to disallow the use of ints or even floats (this works
because the string representation of 0.0 is "0"). The code never
disallowed numbers.
3. 'T1' never was supported, as far as I can tell. 'T-1' is
supported. See Parser::extractSections().
4. null and false and '' all mean "the whole page" in
WikiPage::replaceSectionAtRev() but for some reason this meaning got
lost in WikitextContent::replaceSection(). I made it the same again.
Change-Id: Icc3997722d2ed742bf7703cd7c06d09199225720
mLabel has already been escaped if required. It isn't run through htmlspecialchars()
in other display formats, so doesn't need to be done in vform.
Change-Id: I0b0feec408687cdadf01da5f2078980015538bb7
SecurePoll is going to need the ability to have a form for stuff like
"one or more admin usernames" and "one or more poll questions, each with
one or more options".
This change implements a generic field container that simply displays as
a <ul> followed by an "add more" button, with each <li> containing
various fields including a "remove" button.
Since this is only going to show up in SecurePoll to people creating a
poll (not to general users), the current design is functional but not
necessarily beautiful. Those interested in beauty are welcome to do so
in a followup change.
Change-Id: I46fad3971739ddc961259fe32eb6e1cd265a1c06
SecurePoll will need a way to display a field only if another field has
a particular value.
We already have this for a limited case in HTMLSelectOrOtherField; this
makes it possible to specify that any particular field should be hidden
based on any other field.
Change-Id: I5d2e6fb1efba0ad97647ac140e2b9a9ac0aee06e
These files have all had treatment before, and these occurrences have either
been missed or have been introduced after.
Change-Id: I06cdab4616b5bff47c85152df28f18c861730a23
Swapped some "$var type" to "type $var" or added missing types
before the $var. Changed some other types to match the more common
spelling. Makes beginning of some text in captial.
Change-Id: Ifbb1da2a6278b0bde2a6f6ce2e7bd383ee3fb28a
There was only a empty item for that at the end of the drop down:
<option value="other" selected=""></option>
Follow-Up: If4175332405d26c7ff2e8fbe100bcad61762ce6f
Change-Id: If808c51c62b5c25a58ec6188784da5a676f60993
SecurePoll will have a field that's a url, so we may as well use the
correct HTML5 input type for it.
Change-Id: Id3ddd8f2efdff08c8a188089d321d143ce5ef9c9
PHP, particularly with in_array, really has problems with integer 0
versus non-numeric strings. Let's clean that up by converting values to
strings more agressively and using the $strict option to in_array.
Oddly enough, the one place where strict in_array was being used already
broke when If4175332 stringified the values in one array but not the
other.
Bug: 62268
Change-Id: Id34e654eb8d0e70d093b11445273e542e491e265
One shortcoming in HTMLForm is that fields that use the 'options'
parameter (e.g. <select>) have no easy way for the individual labels to
be localized.
This change adds a new parameter type, 'options-messages', where the
keys are message keys rather than bare strings (similar to the
difference between 'label' and 'label-message'). It also abstracts out
the fetching of the various option parameters, and changes the necessary
field classes to use it.
Change-Id: If4175332405d26c7ff2e8fbe100bcad61762ce6f
The new Agora ("beveled bottom") version deprecates mw-ui-primary.
* Use mw-ui-constructive (green) for Login, Create account, and Reset
password.
* Use mw-ui-progressive (blue) for Join <wiki> and Search.
A separate change I90954ea will implement right-aligned and quieter button layout.
Bug: 60596
Change-Id: Ia1fe557e7ebeac011c5da7297e848c1bfee7910f
It is already set for some fields in Special:Block, but are
discarded by HTMLForm and its fields.
Some notes:
- fields with multiple inputs (radio, select and other, select
or other) will have the same tabindex set on all elements
- Some items such as multi-select and check matrix are not yet
implemented
Change-Id: I3e1ba7f16f3a3183f231afcf60dd392ce6d6eb6b
All of these also use other mw.ui features (e.g. mw-ui-vform,
mw-ui-input, mw-ui-checkbox-label, etc.), so they can't only depend
on mediawiki.ui.button.
Change-Id: I6906533753185f7de42552cff38a86fb0171d1d8
$html in HTMLForm::getButtons() is vrapped in a <div></div> when in
vform mode but it contains a <span> tag without its closing
counterpart, thus making the HTML invalid.
And while I'm at it: put line breaks at better places.
Change-Id: I7ffa1bdd72d95188320c1b29d1c46a5f6f434cbe