Most of the original scope of this patch was implemented in 8665536045
What remains is to use the splat operator in the method signature as
well which is more readable than using func_get_args and doesn't annoy
phan. This is now possible, because we are no longer testing on HHVM and
these mocking in HHVM tests was the only place where this was broken.
Change-Id: I52912d1810b955b05cd17fab424f80c201883411
The return type of HTMLFormField::loadDataFromRequest to mixed
Some sub classes returning arrays or bools, not everytime strings
HTMLCheckField is working with arrays, so also allow array on getTableRow
Change-Id: I076feea76d8e296f27c8a9fb4cbd9368584ba187
Once you instantiate an HTMLForm there was no clear way of adding
new fields except for hidden fields. This is particularly problematic
when the form is passed by reference in Hooks.
NOTE: this is just moving what was previously part of the constructor
into its own method + very small tweaks
Change-Id: I23f983417510841ce76cdefcb076e5ab97b43f10
Follows-up 36d33daa03.
Previously the method was described as "Set whether the form can be collapsed"
taking a single boolean.
Yet, the boolean did not influence whether the form can be collapsed, as one
might expect.
Rather, this method always enable collapsible mode. The thing that is set
based on the passed value is the default state of that (unconditionally)
enabled collapsible mode.
Change-Id: I2e73d5481c44ed43769553b2bc25543a702c19b8
In 3706dcb, this method was soft deprecated and hard deprecated at
the same time (1.28) but during the call to wfDeprecated for hard
deprecation, the version number was missed, though this will default
to false, it's good to use the version number which is known in this
case (1.28).
Change-Id: I535ad07e79d14bac8ec42beaeb4b3762a494b28b
Also minor tweaks:
* Fix @since tags, this did not make it into 1.33
* Fix usage of FieldsetLayout 'group' in OOUIHTMLForm
* Documentation changes
Follow-up to 2896e87a10,
per my post-merge review on that commit.
Change-Id: Ib93375cde19730a46e4929878d6e472d3ac8f631
The method has not actually supported scalar or single-level array
arguments for a while now; according to Michael Große, this ability was
lost in Ibb17bb61ac. No one seems to have noticed (indeed, MediaWiki
code search finds no callers at all [1]), so instead of trying to fix
it, let’s just update the documentation.
We can also remove a cast to array in trySubmit(), because if the value
wasn’t already an array, then converting it to a single-element array
and then trying to spread its only element into $hoistedErrors->fatal()
arguments still fails (“only arrays and Traversables can be unpacked”).
[1]: https://codesearch.wmflabs.org/search/?q=setValidationErrorMessage
Change-Id: I8c292ec62ef4aec89217e86a75d7f2e88111f43f
array_shift manipulates the original array. This is surprisingly
expensive, because it iterates *all* elements in the array and
decrements numeric keys. The code touched in this patch does not need
this restructured new array, but only the individual elements.
Change-Id: Iee28377b2c9930f6de821e041381a1d7564f7633
Use OutputPage::parseAsInterface() to tidy the output and make the
selection of user interface language explicit.
Follow-up to Ifeb1ca6eb8b5c743421b8f9e329f1e3658050e47.
Bug: T198214
Change-Id: Ia4b63715380d97ccb3133bf39a260834c20b4f5a
Add the widget in both PHP and JS for OOUI, and into HTMLForm
definitions.
In JS, the widget uses the engine from mw.widgets.TitleWidget
with the async support from OO.ui.mixin.RequestManager.
The PHP version provides a textarea, like UsersMultiselectWidget.php
which is then infused if JS is available.
Also, add highlightSearchQuery option for TitleWidget to allow for
not highlighting the partial search query the user typed in, if the
UI requires it. This option (highlighting partial result) is already
optional in the TitleOptionWidget, so this config exposes that
optionality in the TitleWidget widget for its menu children.
Notes:
HTMLTitlesMultiselectField is a duplication of HTMLUsersMultiselectField
except for:
- The configuration variable changed to 'titles' (from 'users')
- OOUI modules were adjusted for the TitlesMultiselectWidget
- The PHP version instantiates a MediaWiki\Widget\TitlesMultiselectWidget
TitlesMultiselectWidget is a duplication of UsersMultiselectWidget
except for:
- $usersArray was renamed to $titlesArray
- getJavascriptClassName returns the correct js class for
mw.widgets.TitlesMultiselectWidget for infusion.
Bug: T197109
Depends-On: I675316dddf272fd0d6172ecad3882160752bf780
Change-Id: Ie96947a35f70b76731e16ae5b85de815dfa4a8ce
Parent getLegend() returns a plain string, and this method should
do the same.
Form section legends are escaped by the wrapFieldSetSection() method.
Change-Id: I2059b9182fba7362f3d6226252bdc3e032a06c57
Currently there is no way to access the preText outside of an HTMLForm. Adding
a getPreText method to HTMLForm so the preText is accessible.
Bug: T199115
Change-Id: I937028e7025b4a7b5d333e9bf5a25920f6a88316
Directly use the UTF-8 encoding of the 'NO-BREAK SPACE' (U+00A0) instead of
the HTML/XML entities   or   or .
With the UTF-8 character the generated HTML is shorter and better to read.
Also change the special value for the label in HTMLForm from   to
U+00A0 but also support   for backward compability.
Bug: T154300
Change-Id: I882599ac1120789bb4e524c4394870680caca4f4
Uses new PHP 5.6 syntax like ...parameter unpacking and
calling anything looking like a callback to make the code more readable.
There are much more occurrences but this commit is intentionally limited
to an easily reviewable size.
In one occurrence, a simple conditional instead of trickery was much more readable.
This patch finishes all the easy stuf in the core, the remainder is either unobvious
or would result in smaller readability gains. It will be carefully dealt with in
further commits.
Change-Id: I79a16c48bfb98b75e5b99f2f6f4fa07b3ae02c5b
Find: /isset\(\s*([^()]+?)\s*\)\s*\?\s*\1\s*:\s*/
Replace with: '\1 ?? '
(Everywhere except includes/PHPVersionCheck.php)
(Then, manually fix some line length and indentation issues)
Then manually reviewed the replacements for cases where confusing
operator precedence would result in incorrect results
(fixing those in I478db046a1cc162c6767003ce45c9b56270f3372).
Change-Id: I33b421c8cb11cdd4ce896488c9ff5313f03a38cf
This could be a useful feature for users of HTMLForm, so they should be
able to know about it.
Bug: T156056
Change-Id: Ib444051e38292c06ebe370465b7c751e136d42b2
Special:Block needs a date time selector for easier selection of expiry. To
accommodate this cleanly, a new Expiry Widget is created that handles this
logic.
Bug: T132220
Change-Id: I2853a2ca0ae6ccead3978f4bb50a77c2baa3a150
Deprecate the unnamespaced version and move it to includes/compat.
Bug: T147167
Depends-On: I39c805bfb98b32f32f3d0dc1eee9e823afe1c21a
Change-Id: I3780c7adf51683f3f7adb35a88f9a25a0a2e2530