Commit graph

316 commits

Author SHA1 Message Date
Umherirrender
ace44e2064 Use correct variable name in @param documentation
For some varargs a variable name is added with suffix ,... as seen for
many other varargs

Some @param are swapped, because there are in the wrong order

Enable Sniff MediaWiki.Commenting.FunctionComment.ParamNameNoMatch

Change-Id: I60fec6025bce824d5c67563ab7b65ad6cd628ad8
2017-08-11 19:27:19 +02:00
Umherirrender
a9007e8baf Add missing & to @param documentation to match functon call
Change-Id: I81e68310abcbc59964b22e0e74842d509f6b1fb9
2017-08-11 18:47:46 +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
jenkins-bot
133f2e99e7 Merge "HTMLUsersMultiSelectField: Don't use content language for placeholder message" 2017-07-27 16:54:55 +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
Prateek Saxena
d2b05e83e3 HTMLForm: Show more options when incorrect displayFormat is set
Change-Id: I47a4684f01f5e30629e819403d7445479c4607da
2017-07-26 18:45:36 +00:00
Kunal Mehta
d1cf48a397 build: Update mediawiki/mediawiki-codesniffer to 0.10.1
And auto-fix all errors.

The `<exclude-pattern>` stanzas are now included in the default ruleset
and don't need to be repeated.

Change-Id: I928af549dc88ac2c6cb82058f64c7c7f3111598a
2017-07-22 18:24:09 -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
Amir Sarabadani
8cd74081f7 Do not try to parse empty argument in getErrorsOrWarnings in OOUI
Bug: T167644
Change-Id: I0dcb9bd51ad0cecbdab868fed056b4077d1c9fa8
2017-06-12 16:03:17 +04: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
Derk-Jan Hartman
3188605489 HTMLForm: add errors to html in ooui variants
HTMLForm when using OOUI mode was not adding errors to the resulting
HTML, if depending on message arrays, as previously used before
Status.

This exposed additional problems. Aligned the function a bit closer to
HTMLForm's getErrorsOrWarnings()

Bug: T158492
Change-Id: I8765a025dd441676e35a7c183c67b37036643c1e
2017-04-21 13:58:02 +00:00
Fomafix
464f0c72a5 Remove multiple spaces in PHP files
Change-Id: Id9c26ec5ca730a9536f8fdccb8853eb03cbe87a4
2017-04-12 17:27:19 +02:00
Brad Jorsch
4d59edf138 Update account creation form validation
Use the cancreateerror returned from list=users&usprop=cancreate for
username validation.

Use the new action=validatepassword to validate entered passwords.

This also injects the resulting errors in the style of HTMLForm's field
validation rather than at the top of the form.

Change-Id: Ie8c1270eb605367556fe36b0b2080eb3f957dc54
2017-03-16 15:42:06 +00: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
Bartosz Dziewoński
ecdef925bb Miscellaneous indentation tweaks
I was bored. What? Don't look at me that way.

I mostly targetted mixed tabs and spaces, but others were not spared.
Note that some of the whitespace changes are inside HTML output,
extended regexps or SQL snippets.

Change-Id: Ie206cc946459f6befcfc2d520e35ad3ea3c0f1e0
2017-02-27 19:23:54 +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
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
38cc8a697f HTMLForm: Suppress HTML5 form validation for non-JS users when needed
Our 'hide-if' fields are fundamentally incompatible with HTML5 form
validation attributes. If you have a checkbox field A, and field B
that is required, but hidden if A is unchecked - that's impossible to
express with HTML5 form validation. The only thing you can do is
remove the validation on B (or on the entire form).

The field contents are still validated server-side, just like if the
browser did not support HTML5 forms. The validation is also re-enabled
in JavaScript, since we have extra support for 'hide-if' field that
makes them work.

Change-Id: Ia7ffa76965a7c14af9b6d2db007b6255498398d9
2017-01-10 22:49:38 +00:00
Bartosz Dziewoński
4fc7420fea HTMLForm: Use 'mw-htmlform' CSS class
Makes it easy to identify all HTMLForms on a page.

Change-Id: I5b9494fc925ac953c14b358331acddfe80c2661d
2016-12-18 12:59:05 +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