Commit graph

507 commits

Author SHA1 Message Date
DannyS712
b92132e84f HTMLForm: Fix grammar of class description
"Other methods call done after that" should be "Other method calls
done after that" (though "Other methods called after that" would
work too.

Change-Id: I9fe8194647c134e6d2aea7b88c3fd4140ffb9883
2019-12-28 09:27:33 +00:00
jenkins-bot
9d8954a372 Merge "build: Upgrade phan to 0.9.0" 2019-12-09 16:15:27 +00:00
Daimona Eaytoy
ce0856b12f Fix more scalar types in docblocks
Change-Id: I574d4e261ab986e028c3ce26c4f0ec648b88a2ac
2019-12-08 17:59:08 +00:00
Daimona Eaytoy
598c4d7fcb build: Upgrade phan to 0.9.0
Scalar casts are still allowed (for now), because there's a huge amount
of false positives. Ditto for invalid array offsets.

Thoughts about the rest: luckily, many false positives with array offsets
have gone. Moreover, since *Internal issues are suppressed in the base
config, we can remove inline suppressions.

Unfortunately, there are a couple of new issues about array additions
with only false positives, because apparently they don't take
branches into account.

Change-Id: I5a3913c6e762f77bfdae55051a395fae95d1f841
2019-12-07 20:16:19 +00:00
Thiemo Kreuz
78ca9eff4a Remove duplicate variable name from class property PHPDocs
Repeating the variable name doesn't do anything. Documentation
generators don't need it. It's more stuff to read that doesn't add new
information. And it can become outdated.

Note there are two types of @var docs. When used inline (and not on a
class property) the variable name is needed.

Change-Id: If5a520405efacd8cefd90b878c999b842b91ac61
2019-12-02 12:58:29 +00:00
Thalia
16555e6f65 Add option for showing valid IPs in UsersMultiselectWidget menu
Pass through config options from HTMLUserTextField that allow the
field to accept an IP address and/or range, and specify the maximum
allowed range size.

Bug: T238277
Change-Id: I0e0f6b6fd6801d5cd561def28917e81a81b3f7d4
2019-11-15 21:42:32 +00:00
jenkins-bot
7b6b5a3590 Merge "preferences: Display error message at the top of the form as well" 2019-11-15 04:52:58 +00:00
Thalia
c0ce43bf5a Allow HTMLUsersMultiselectField to limit number of selected items
Bug: T238240
Change-Id: Ia2c046f3385ca0908f8c2756ba5f304ed8bed29d
2019-11-14 11:59:50 +00:00
Thalia
84552a9814 Improve error message for HTML multiselect fields
Introduce a more specific message for when the number of selected items
exceeds the maximum number allowed.

Change-Id: I359b65ac397b4acef32940ff8ff9af33651f7a7b
2019-11-14 04:57:35 +00:00
Bartosz Dziewoński
278b6e8506 preferences: Display error message at the top of the form as well
When there's an error in one of the fields "below the fold" or in
another tab, it's hard notice that it wasn't saved, especially since
the success message is very subtle.

In normal forms, there's a red error message at the top (in addition
to messages next to invalid fields), which was missing from the
preferences form.

I ran into this while experimenting with signature field validation.

Change-Id: If365e35d15a52939397f2093b1b8f5113a62e22b
2019-11-08 20:37:18 +01:00
Daimona Eaytoy
b5f0d61ee4 Fix new phan errors, part 8
Bug: T231636
Change-Id: I61852ba55362ab9ae8cc8c1ab6b27565ce1d08e7
2019-10-22 10:09:13 +02:00
Daimona Eaytoy
114ee6e412 Fix new phan errors, part 6
Bug: T231636
Change-Id: I1870b6cbeb31e54fde5e675fec51446b330e06c5
2019-10-20 17:53:48 +00:00
Daimona Eaytoy
95dc119527 Fix new phan errors, part 2
Still mostly doc-only.

Bug: T231636
Change-Id: I65cec6c716ce6859e14da00a12ef71e03603e59a
2019-10-12 10:35:09 +00:00
Umherirrender
8752df6592 Use varargs for MessageLocalizer::msg and similar
Bug: T191666
Change-Id: I59f2ae1a96af392026fc106e57d23553003c16b8
2019-10-05 17:47:49 +00:00
jenkins-bot
49fdec9c51 Merge "Use splat operator in signature, not func_get_args" 2019-10-03 18:56:50 +00:00
Gergő Tisza
f301dd5ce9
Fix HTMLForm::addButton label-message type annotation
Change-Id: I5dad560df0705976e104eec4d4159993e5bd0b66
2019-10-02 19:53:57 +02:00
Michael Große
a89f0997a3 Use splat operator in signature, not func_get_args
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
2019-09-28 18:02:21 +00:00
Bartosz Dziewoński
97eab7f35b Improve collapsible HTMLForm styling (and accessibility, slightly)
Previously the form was only collapsible/expandable using the small
link-button on the far right. Now you can click on the entire header
to do it, and it has an appropriate pretty icon.

We add appropriate ARIA `role` and textual labels. Together with
recently added `toggleARIA` option of jquery.makeCollapsible in
Ic457bda58e56f we feature a screen reader workable output.

Bug: T222904
Change-Id: I6964296bc6870550478de662d21f12a1fc084c15
2019-09-23 10:57:26 -07:00
jenkins-bot
2c306b5fdf Merge "Messages collected above the form are meant to live as boxed messages" 2019-09-20 23:33:04 +00:00
jenkins-bot
31f66267ae Merge "HTMLTitleTextField: Remove incorrect check for unsubmitted GET forms" 2019-09-20 22:45:24 +00:00
Volker E
441e12f2d9 Messages collected above the form are meant to live as boxed messages
Also removing HTMLForm/VForm `.error` and `.warning` classes from
'forms.less'.

Bug: T233362
Change-Id: I4f8d8f228ab07253a7df24470791c26e39bc311a
2019-09-19 15:10:45 -07:00
Daimona Eaytoy
3439c00073 Suppress PhanUndeclaredProperty for custom properties and phan bugs
And remove the issue from the exclusions list.

Bug: T231636
Change-Id: Iee73ddb554e354abe52d13dcfc453f9a15bb8877
2019-09-14 13:22:54 +00:00
Daimona Eaytoy
290ab29617 Declare dynamic properties
This is for classes with a single undeclared property - aside from
BlockManager: I3f51fd3579514b83b567dfe20926df2f0930dc85 removed the
declaration of $permissionManager without actually removing all uses.

Change-Id: Ic2a95f77071312041be6e0633ea9b5325e98de42
2019-09-14 15:21:26 +02:00
Daimona Eaytoy
7862475b0d Improve various PHP method doc blocks
Follows-up 5eac6d131c.

Change-Id: I92c9d482fd8693a16b3967e763a4eb40b963c562
2019-09-05 18:45:40 +00:00
Daimona Eaytoy
b5cbb5ab3f Upgrade phan config to 0.7.1
This allows us to remove many suppressions for phan false positives.

Bug: T231636
Depends-On: I82a279e1f7b0fdefd3bb712e46c7d0665429d065
Change-Id: I5c251e9584a1ae9fb1577afcafb5001e0dcd41c7
2019-09-04 08:20:53 +00:00
Daimona Eaytoy
c659bc6308 Unsuppress another phan issue (part 7)
Bug: T231636
Depends-On: I2cd24e73726394e3200a570c45d5e86b6849bfa9
Depends-On: I4fa3e6aad872434ca397325ed7a83f94973661d0
Change-Id: Ie6233561de78457cae5e4e44e220feec2d1272d8
2019-09-03 17:19:21 +00:00
Daimona Eaytoy
e2e543f7c2 Unsuppress more phan issues (part 5)
Bug: T231636
Depends-On: I6e5fba7bd273219b1206559420b5bdb78734aa84
Change-Id: I50377746f01749b058c39fd8229f9d566224cc43
2019-09-01 09:48:31 +00:00
Daimona Eaytoy
e70b5b3309 Unsuppress other phan issues (part 4)
Bug: T231636
Depends-On: I58e67c2b38389df874438deada4239510d21654f
Change-Id: I6e5fba7bd273219b1206559420b5bdb78734aa84
2019-08-31 17:13:39 +00:00
Daimona Eaytoy
5eac6d131c Unsuppress more phan issues (part 3)
Bug: T231636
Depends-On: I78354bf5f0c831108c8f606e50c87cf6bc00d8bd
Change-Id: I58e67c2b38389df874438deada4239510d21654f
2019-08-31 16:38:55 +00:00
Daimona Eaytoy
7f7efbe026 Globally unsuppress phan issues with low count
All of these suppression prevent the detection of many common mistakes,
and could easily prevent things like T231488. Especially if there are
few issues of a given type, it's way better to suppress them inline,
instead of disabling them for the whole core.
This patch only touches the one with a lower count (although those
counts may be out of date).

Bug: T231636
Change-Id: Ica50297ec7c71a81ba2204f9763499da925067bd
2019-08-30 09:40:47 +00:00
jenkins-bot
4306994b79 Merge "Allow SelectWithInput to be marked as required and handle that dynamically" 2019-07-31 13:28:54 +00:00
David Barratt
8a1f1ec631
Allow SelectWithInput to be marked as required and handle that dynamically
Alters the SelectWithInput to allow a required config to be passed from a
parent widget. Also handles the required state dynamically. If the widget is
an OR widget, then only the select dropdown is required. The text input will
be required when the other option is selected. If the widget is an AND widget
then both the select dropdown and the text input will be required.

Bug: T220533
Change-Id: I8479743126756f2b1bd7bcd53b100a0134f34d07
2019-07-30 16:33:02 -04:00
Thalia
ce965f9826 Fix punctuation in HTMLForm documentation
Change-Id: I22c4ed248fddc93afd486b9bee5a80bdbba1c685
2019-07-30 14:43:39 +01:00
Thalia
ffcb5928e1 Allow empty input in namespaces multiselect on Special:Block
Follow-up to 83ebbb519f

Bug: T219882
Change-Id: I5f3d907a8f8be02f9e2c23d2a66c42752daa38b5
2019-07-18 17:04:26 +01:00
Thalia
83ebbb519f Check namespace exists in HTMLNamespacesMultiselectField validation
Bug: T219882
Change-Id: I710d0abed6bd40dcea5bdd1c59c8d936565961eb
2019-07-16 18:07:10 +01:00
jenkins-bot
5b202d729d Merge "Adjust type hints in htmlform related classes" 2019-07-05 21:32:55 +00:00
Umherirrender
11c9075767 Adjust type hints in htmlform related classes
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
2019-07-05 18:11:53 +00:00
Derick Alangi
cb4b15786c htmlform: Reveal method getOOUI() is called from when spitting deprecation notice
Bug: T225683
Change-Id: I654b2d165feeb77394c214ae29bfaa7a9694b46d
2019-06-28 23:52:55 +00:00
Dayllan Maza
f74b19134d Add new public method addFields() to HTMLForm
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
2019-06-26 16:29:41 -04:00
Fomafix
110a5877e9 Use [...] instead of array(...) in PHP comments and documentation
Change-Id: I0c83783051bf35fe785bc01644eeb2946902b6b2
2019-06-17 21:15:09 +02:00
Thalia
db9ff28e3e Fix some issues with HTMLSelectAndOtherField default and validation
Bring HTMLSelectAndOtherField in line with other HTMLFormFields by
ensuring that the default value is of the correct type and passes
validation checks.

Also make sure HTMLSelectAndOtherField::validate checks for the
final value, if the field has required set to true.

Bug: T222170
Bug: T225860
Change-Id: I949ee3df2b1f597982cf522b149c54b8e79d59bc
2019-06-15 10:34:36 +01:00
Kunal Mehta
8665536045 HTMLForm: Use PHP 5.6 splat operator directly instead of ObjectFactory
Change-Id: I3fddf30f1b0fc2cce79f652cb71efba119439a9f
2019-06-04 23:49:20 -04:00
Derick Alangi
e849ffb430 HTMLForm: Remove deprecated unused getErrors() method
Was deprecated in 1.28 and no longer used, see usage below;

Usage
=====

https://codesearch.wmflabs.org/search/?q=%5CbgetErrors%5C(%20(.*%3F)%20%5C)&i=nope&files=&repos=

Bug: T220656
Change-Id: I542df4f1f7f4180d42282eaf2e069ab0bc9e8614
2019-06-03 15:20:54 +01:00
Timo Tijhof
012aa045e9 HTMLForm: Improve method documentation for setCollapsibleOptions()
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
2019-05-22 23:40:52 +01:00
Derick Alangi
fefedf568b HTMLForm: Add known MediaWiki version to wfDeprecated() call
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
2019-05-18 09:15:33 +00:00
Derick Alangi
1981823755 Remove several methods, deprecated in 1.32
I've checked and doubled checked that these methods are no longer used
anywhere in core or extensions, hence removed them. They were hard deprecated
in MediaWiki 1.32.

* OutputPage:
  ** `::showFileCopyError()`
  ** `::showFileRenameError()`
  ** `::showFileDeleteError()`
  ** `::showFileNotFoundError()`

* ApiBase:
  ** `::truncateArray()`

* IcuCollation:
  ** `::getICUVersion()`

* HTMLForm:
  ** `::setSubmitProgressive()`

* ResourceLoaderStartUpModules:
  ** `::getStartupModules()`
  ** `::getLegacyModules()`

* BaseTemplate:
  ** `::msgHtml()`

* QuickTemplate:
  ** `::msgHtml()`

* WatchAction:
  ** `::getUnwatchToken()`

Bug: T220656
Change-Id: Ic1a723a991f4ff63fcb5f045ddcda18d1f8c3c68
2019-05-09 11:36:44 -07:00
Derick Alangi
f97a7a93d4 htmlform: Use ::isValidRange() instead of deprecated ::isValidBlock()
Only 1 usage of this call in everywhere, see usage below. Once this is merged,
the method can be hard deprecated and later killed.

Usage
=====

https://codesearch.wmflabs.org/search/?q=%5CbisValidBlock%5Cb&i=nope&files=&repos=

Change-Id: Ic00f760a0a214faba7a71dd088da1dc25ecb796c
2019-05-09 16:36:05 +00:00
Bartosz Dziewoński
36d33daa03 HTMLForm: Improve method interface for collapsible forms
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
2019-05-02 14:33:20 -07:00
Bartosz Dziewoński
4d9a9f3776 HTMLFormFieldWithButton: Don't pass empty string as 'id'
The button must have an ID to be able to be infused. If the given ID
is null, that's fine, OOUI will generate one. But passing an empty
string apparently disables that.

Bug: T222013
Change-Id: I96e1f838385c5539ed246d2ee7107cd037a5f338
2019-04-30 02:10:16 +02:00
jenkins-bot
96f92f75e8 Merge "Restore func_get_args in HTMLFormField" 2019-04-14 22:47:28 +00:00