Commit graph

57 commits

Author SHA1 Message Date
Umherirrender
ffaf38ce98 Do not depend on PHP_EOL in HTMLRestrictionsField
HTMLRestrictionsFieldTest::provideValidate only provide test cases with
\n, which fails on windows machine.
I see no reason to use the system depending constant here

Change-Id: I7caf2c4d06c84cac69e20e03d00a93bcd8e7d405
2017-09-20 22:01:34 +02:00
Sam Wilson
feb5be31fd Add classes to HTMLCheckMatrix items to identify forced ones
Some items in an HTMLCheckMatrix form field can be forced to be
on or off, in which case they're disabled. This adds three new
class names, so that (for example) Javascript can identify these
checkboxes. There are not currently any classes assigned to them.

Bug: T172585
Change-Id: I984020ce2437effb3ff5f186470105fd80d4a00f
2017-09-19 15:46:25 +08:00
jenkins-bot
237d3271fd Merge "HTMLForm: Implement OOUI version of HTMLTagFilter" 2017-09-10 12:17:03 +00:00
Umherirrender
3f1a52805e Use short type bool/int in param documentation
Enable the phpcs sniffs for this and used phpcbf

Change-Id: Iaa36687154ddd2bf663b9dd519f5c99409d37925
2017-08-20 13:20:59 +02:00
Max Semenik
fd6e9ef2d4 Human-readable section ID support
It adds the ability to replace the current section ID escaping
schema (.C0.DE) with a HTML5-compliant escaping schema that is
displayed as Unicode in many modern browsers.

See the linked bug for discussion of various options that were
considered before the implementation. A few remarks:
* Because Sanitizer::escapeId() is used in a bunch of places without
  escaping, I'm deprecating it without altering its behavior.
* The bug described in comments for Parser::guessLegacySectionNameFromWikiText()
  is still there in some Edge versions that display mojibake.

Bug: T152540
Change-Id: Id304010a0342efbb7ef2d56c5b8b244f2e4fb2c5
2017-08-01 20:32:20 -07:00
Bartosz Dziewoński
8c1a1a62a1 Avoid duplicate accesskey hints on OOUI widgets
Values returned by `Linker::tooltipAndAccesskeyAttribs()` and
`Linker::titleAttrib( ..., 'withaccess' )` include an accesskey
hint in the title text. This is unnecessary when used for OOjs UI
widgets, since after the changes from T168408 they display an
accesskey hint automatically.

Also fixed some other accesskey bugs in HTMLForm which probably
no one ever ran into.

Bug: T168408
Change-Id: I63285b5bce3341875a6d82eba059623bf105ca62
2017-08-01 20:59:13 +00:00
Roan Kattouw
4078bb6b52 HTMLUsersMultiSelectField: Don't use content language for placeholder message
No idea why this was using content language to begin with, but it seems
like it should clearly use the user language instead.

Bug: T171817
Change-Id: I1763ffd8ee037dbb5dd94c410cb6a82e0f6b27e9
2017-07-27 09:38:57 -07:00
jenkins-bot
7471e1db1b Merge "HTMLSelectAndOtherField/HTMLSelectOrOtherField: Add OOUI implementation" 2017-07-18 16:26:11 +00:00
Roan Kattouw
7c0a58393b HTMLUsersMultiselectField: Handle empty value properly
If the string value is '' (empty string), the array
value should be [] (empty array), not [''] (array of one element
which is an empty string).

Bug: T169384
Change-Id: I558f3890af05efb6eaa18403467c0a05f44af12a
2017-07-11 11:29:17 -07:00
jenkins-bot
5049af1048 Merge "Fix \n handling for HTMLUsersMultiselectField" 2017-06-30 02:21:13 +00:00
Matthew Flaschen
a3e2d832d7 Fix \n handling for HTMLUsersMultiselectField
Bug: T166836
Change-Id: I51b772946f1e50a21fb86cab969defb4647b820b
2017-06-29 19:02:46 -07:00
Umherirrender
be42e09aa8 build: Prepare for mediawiki/mediawiki-codesniffer to 0.9.0
The used phpcs has a bug, so the version 0.9.0 could not be enforced at the moment.
Will be fixed in next version, see T167168

Changed:
- Remove duplicate newline at end of file
- Add space between function and ( for closures
- and -> &&, or -> ||

Change-Id: I4172fb08861729bccd55aecbd07e029e2638d311
2017-06-26 17:14:31 +00:00
Prateek Saxena
8bd6605736 HTMLSelectAndOtherField/HTMLSelectOrOtherField: Add OOUI implementation
Bug: T106999
Change-Id: I0f437ed8a8808f8090bf466fd939345d74d57c34
2017-06-15 08:52:08 +05:30
Bartosz Dziewoński
cf6e108a5c HTMLUsersMultiselectField: Make auto-infusable when used inside a legacy HTMLForm
Change-Id: I23b3a86f06a10b066e6671e398da37c62e3e61b1
2017-05-20 16:13:17 +02:00
Timo Tijhof
3a2a707546 Clean up remaining get_class() uses
* get_class()        -> __CLASS__ (same as self::class)
* get_called_class() -> static::class
* get_class($this)   -> static::class

Change-Id: I1888a1897ecf4548a2e5a67a942e5c080dd7e3d3
2017-03-07 22:03:47 +00:00
Huji Lee
c96166173e HTMLMultiSelect parameter to specify which options are disabled
Depends on I32fa20e4adb23960d9db6bf6023f79bf128fb600

Bug: T153751
Change-Id: I3bcf6720c960e0be962e0f3f37a22ec8778db1d1
2017-03-07 22:16:37 +01:00
jenkins-bot
fb52b78920 Merge "UsersMultiselect widget and form field." 2017-02-01 14:37:50 +00:00
Phantom42
c70f464c07 UsersMultiselect widget and form field.
New widget and html form field, which allows selecting multiple
users using convenient single-line input (CapsuleMultiselectWidget)

Bug: T131492
Change-Id: I7b6ffe7fb47e0a7083e2a956156ab0f142444398
2017-02-01 00:35:33 +02:00
Bartosz Dziewoński
72aad7fffd HTMLTextField: Set the 'dir' attribute in OOUI mode
Bug: T153636
Change-Id: I7ddf6a358f8150ef252d8d8e76661fe1eb93a790
2017-01-19 16:19:27 +01:00
Florian Schmidt
92b170efc3 HTMLForm: Implement OOUI version of HTMLTagFilter
Bug: T117739
Change-Id: Ia9990d1089773f61721cce731bb6cb767a174467
2017-01-11 21:29:01 +01:00
Bartosz Dziewoński
205231d7da HTMLDateTimeField: Remove hacks for HTML5 form validation attributes
No longer needed after I08244addcf9b6eb96137895f28e7b750914fef5c.
Also remove datetime.js from mediawiki.htmlform module.

Change-Id: Ic2410c689de3f70f573fa1c71456e6d3f334f80b
2017-01-10 22:53:33 +00:00
Bartosz Dziewoński
a83188d0ab HTMLFormFieldCloner: Set 'formnovalidate' on add/remove field buttons
Otherwise, after we allow HTML5 form validation attributes, these
buttons wouldn't work for non-JS users (unless the whole form was
otherwise valid).

Change-Id: Ia9c16849774c186b991280ea60fc5608ddd4cf42
2016-12-18 12:58:26 +00:00
jenkins-bot
f9e21f91e4 Merge "mw.htmlform: Fields hidden with 'hide-if' should be disabled" 2016-12-18 12:56:11 +00:00
jenkins-bot
9ac29c74ed Merge "Cleanup some incorrect return annotations" 2016-12-16 07:22:24 +00:00
Erik Bernhardson
d67197fa11 Cleanup some incorrect return annotations
Most of these are simply changing annotations to reflect
reality. If a function can return false to indicate failure
the @return should indicate it.

Some are fixing preg_match calls, preg match returns 1, 0 or false,
but the functions all claim to return booleans.

This is far from all the incorrect return types in mediawiki, there
are around 250 detected by phan, but have to start somewhere.

Change-Id: I1bbdfee6190747bde460f8a7084212ccafe169ef
2016-12-12 10:15:05 -08:00
Matěj Suchánek
87bfd03d13 Provide context to ChangeTags::buildTagFilterSelector
Bug: T105649
Change-Id: I5f44f4c054010c865ddb51e7d69107bdf2e88c00
2016-12-08 16:24:49 +00:00
Bartosz Dziewoński
5d5dbc83da mw.htmlform: Fields hidden with 'hide-if' should be disabled
Otherwise, in browsers that support HTML5 form validation, it
would be impossible to submit the form if a field failing
validation was hidden (e.g. because it's marked as required).

Note that disabled fields are not submitted with the form. This
should be okay, as server-side validation ignores them entirely.
(I37e50799ba1f0e0e64a197818b58444f5b056bf0 fixes a corner case.)

For cloner fields, 'hide-if' rules of the parent are now copied
to the children, to make handling such nested fields simpler.

Bug: T145440
Change-Id: I81d04dca6cbb499a15828fd33b01746b68c694da
2016-12-02 19:22:38 +01:00
jenkins-bot
474b445a1d Merge "HTMLFormFieldCloner: Don't try to validate hidden fields" 2016-11-25 18:59:02 +00:00
jenkins-bot
d05562d0db Merge "HTMLDateTimeField: Fix 'placeholder' attribute handling" 2016-11-25 18:58:48 +00:00
jenkins-bot
ff70e103de Merge "HTMLForm: Allow returning Message objects from HTMLFormField::validate()" 2016-11-25 09:11:07 +00:00
Bartosz Dziewoński
ae99e67243 HTMLFormFieldCloner: Don't try to validate hidden fields
Follow-up to 788526c2d1.

To test: try to create a SecurePoll of type "Approval vote". Without this
patch, but with I81d04dca6cbb499a15828fd33b01746b68c694da, an invisible
field (only applicable for "Range voting (plurality)") will fail validation.

Change-Id: I37e50799ba1f0e0e64a197818b58444f5b056bf0
2016-11-24 17:50:49 +01:00
Bartosz Dziewoński
ce247df6b5 HTMLDateTimeField: Fix 'placeholder' attribute handling
Parent class HTMLTextField handles this specially and we have to match it.

Change-Id: Ibff3caba2a58c2bcbfb342789aae9f0939b7687f
2016-11-24 16:13:40 +01:00
jenkins-bot
5111bd2def Merge "Add 'autocomplete' option to HTMLTextField" 2016-11-18 18:41:16 +00:00
Gergő Tisza
8f17b09a9f Add 'autocomplete' option to HTMLTextField
Adds support for the 'autocomplete' HTML attribute to HTMLTextField
(mainly for turning it off, but other values are supported as well).
Renames 'autocomplete' to 'autocomplete-data' (with temporary B/C)
in HTMLAutoCompleteSelectField to make space.

Change-Id: Ic0539d5a61d9862e670d10686adc1e41f65d908e
2016-11-17 19:50:38 +00:00
Brad Jorsch
7fdbe15fb6 HTMLForm: Allow returning Message objects from HTMLFormField::validate()
It mostly already worked. HTMLForm::trySubmit() needed a little
adjustment to handle things properly.

Change-Id: Ibb17bb61ac0b2d41953249980bc2f23b8a3ae5b6
2016-11-14 13:25:14 -05:00
jenkins-bot
69ae945e8d Merge "Update weblinks in comments from HTTP to HTTPS" 2016-11-08 21:32:00 +00:00
Fomafix
202f695f67 Update weblinks in comments from HTTP to HTTPS
Use HTTPS instead of HTTP where the HTTP link is a redirect to the HTTPS link.

Also update some defect links.

Change-Id: Ic3a5eac910d098ed5c2a21e9f47c9b6ee06b2643
2016-11-07 15:24:46 +01:00
umherirrender
34fe90ac52 Remove empty lines at end of functions
It looks like there is something missing after the last statement
Also remove some other empty lines at begin of functions, ifs or loops
while at these files

Change-Id: Ib00b5cfd31ca4dcd0c32ce33754d3c80bae70641
2016-11-05 11:55:10 +01:00
addshore
63dd31cd31 Add access modifiers to htmlform classes
Change-Id: Id8c0f0676b3200993af3cec493efc99839211bcc
2016-11-04 11:40:42 +01:00
This, that and the other
07782d176b New HTMLForm size filter field; add size filter to Special:Newpages
The conversion of SpecialNewpages to HTMLForm seems to be half-finished.
It's not using HTMLForm to read in the request query, which means we have
to roll our own logic. Kind of defeats the purpose of using HTMLForm in
the first place.

When ProtectedPages is converted to HTMLForm (T117722), it can use this new
field type.

Bug: T12817
Change-Id: I069609fbb37b18c3df25156779ad7ac7cd5d6813
2016-10-27 12:23:18 +11:00
jenkins-bot
4465a9fb5a Merge "HTMLForm: Add OOUI support for 'multiselect' with 'dropdown' => true" 2016-10-18 20:39:12 +00:00
Brad Jorsch
627148d2bb HTMLDateTimeField: Properly handle empty input
i.e. don't parse it as "now" in date or datetime mode.

Bug: T148200
Change-Id: I5a3839540222160e8d7376b5b961147c41d48885
2016-10-14 12:39:31 -04:00
Bartosz Dziewoński
96ef35a58a HTMLForm: Add OOUI support for 'multiselect' with 'dropdown' => true
Using CapsuleMultiselectWidget.

Change-Id: I816739bc3acd40ee9d8b67e19ff3e4296fce66d3
2016-10-04 19:50:44 +02:00
Volker E
7e8539d10e Replace deprecated constructive with progressive
Replacing deprecated `constructive` mediawiki.UI CSS class and OOjs UI
flag  with `progressive`.

Bug: T146923
Change-Id: I524b9722ee49692c55bb1f97d34d8a28068716ee
2016-09-30 13:18:52 -07:00
jenkins-bot
793069b261 Merge "HTMLForm: Add HTMLDateTimeField" 2016-09-26 17:14:52 +00:00
Brad Jorsch
12bdc84219 HTMLForm: Add HTMLDateTimeField
And to do that, an OOUI PHP widget for
mw.widgets.datetime.DateTimeInputWidget too.

Bug: T146340
Change-Id: Iaa8b5892b6c3a1f3698cef59684cc3cdc9d483ea
2016-09-26 12:08:56 -04:00
Gergő Tisza
3090a1d1f8 Add HTMLFormField class for MWRestrictions and use it for bot passwords
Change-Id: Ib50238e3be5eec63eb5df97154b60dc4ca33d581
2016-09-22 20:50:36 +00:00
jenkins-bot
196db34293 Merge "Display an error message when the validataion of a radio input fails because user did not provide any input." 2016-09-11 23:56:41 +00:00
Huji Lee
1e7b73bb06 Display an error message when the validataion of a radio input fails because user did not provide any input.
Bug: T107486
Change-Id: Ie3a9cc11f285cadec1dde32f820643d1aabd0d1b
2016-09-11 19:47:55 -04:00
Bartosz Dziewoński
d23ebca2b9 HTMLFormField: Move 'flatlist' handling to fields that use it and document
Change-Id: I5dc6ad71880a741c41757bc64d236971edfbabfa
2016-08-24 15:22:32 +00:00