| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Why:
- When accessing Special:GlobalContributions, if the target to look for
ends with a whitespace, the page returns no results, showing an error
stating that the target is not a valid user name instead. To test it,
you can provide a target ending with a whitespace in the URL, like
?title=Special:GlobalContributions&target=172.22.0.1+&namespace=all
(note the plus sign at the end of the target).
- When accessing the page, different code paths seem to expect having
the user name provided in different ways (reading it from the request
itself, getting it passed as a value, or reading it from the
controller's $opts attribute).
What:
- Cleanup the target before the actual logic for the contributions
special pages starts, making all contributions pages (including global
contributions) read the user name after stripping the leading and
trailing whitespaces, if any.
Bug: T378279
Change-Id: I9f6a0d70d2d967cf5ec33c77bffa89c90fb81e25
|
| |
| |
| |
| | |
Change-Id: Iae745a9122b210fefe774a9a6bfe262f7aa54ceb
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Given the Lookup component a template ref and force a lookup and display
the results when the user types in something before Vue loads.
A TODO is left for making the test assert that the menu is visible.
Related: T390127
Move refs to the top of setup() and document them to be consistent with
the structure of other components as well as the store.
SpecialBlock.php: if the Codex form is submitted, treat as no-submission
since this code path isn't supposed to be possible with a JS-only form.
Bug: T389955
Change-Id: I6b9788370495648f1629ec7c3b768e704d78f157
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Rather than reset `Parser::$mStripExtTags` after post-processing, ensure
that it is `false` for any frame expansion done using the legacy parser
kept by Parsoid's DataAccess.
This was causing issues with Extension:Babel, which was invoking
$parser->replaceVariables() recursively when the {{#babel}} parser
function was expanded by Parsoid.
This new behavior is enabled by setting $wgParsoidFragmentSupport to
'v3', in order to allow us to run round-trip testing with this
configuration without disturbing production. The configuration
variable is temporary, and will be cleaned up in
Ib5365c87ab594a2c21a84ec8bc2a64a71799085f.
Bug: T390420
Change-Id: I8f45ea027776c3bb0c9f4468afa00465e41b6dec
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | | |
Change-Id: I0d8d2237500ed6f18439410c902d47c42e4119bc
|
|\ \ \ \
| |_|_|/
|/| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Add a library providing date/time formatting according to the user's
preferred time zone and date preference.
I tested formatting of an example date with all defined formats in all
languages, and I found that it gives identical output to PHP in about
90% of our ~500 languages.
Resolve some of the outstanding issues by aliasing the problematic date
formats on the client side, so that the user will see the date in
another acceptable format for the same language.
The remaining issues mostly relate to the use of a fallback language to
display weekdays and non-Gregorian month names.
Details:
* Add Language::getJsDateFormats(), which converts existing date formats
to an options array that can be interpreted by the client.
* In Messages*.php, add $numberingSystem, which is the CLDR numbering
system ID. I set it for all languages that had overriden
$digitTransformTable. This is sent to the client in the library's JSON
config and is used as the default numberingSystem option when
formatting dates.
* In Messages*.php, add $jsDateFormats, which overrides the
automatically generated date format options.
Bug: T389161
Change-Id: Ib6bc8ebd4d01317aaf32225c6006ea2dc7a1b39e
|
|\ \ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Add $auto parameter to DatabaseBlockStore::newFromTarget and
::newListFromTarget, to help callers filter autoblocks from result
lists.
Change-Id: Iad92d205517eb50ab0ce5e8caae58ee761fe19d5
|
|\ \ \ \ \
| |_|/ / /
|/| | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Migrated second ENotif Talk mail into Notification system. This
is a third iteration. At the end all different notifications cause
exactly the same Email.
To future proof the system, we can pass the Source, which means
what triggered this notification. Is it Talk, is it Watchlist or
is caused by fact that Recipient is on the ENotifAll list.
Bug: T387995
Change-Id: I1993208882097c591f93fb47d80076a93c34fcd9
|
|\ \ \ \ \ |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Why:
- ParserCache refuses to return cache entries for redirect pages. So we
shouldn't write these entries into the parser cache in the first
place.
- If we write but refuse to read, this means there will be a cache write
every time a redirect page is retrieved via ParserOutputAccess.
What:
- Make ParserCache:save() skip entries for redirect pages. This is
only reachable via "redirect=no" since by default MediaWiki
pageviews render the destination page instead.
Note:
- It seems we should be able to store redirect pages like any other
page in the ParserCache. Why we didn't, and whether we should, is
not yet clear. While this is being investigated we should establish
consistent behavior for get() and save().
Bug: T389591
Change-Id: I880997193d6de66121c902de80a77c1305bd01d3
|
|\ \ \ \ \ \ |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Options are strings, cast them to bool
Change-Id: I66aef7856907d9bf80308eb9e32b7178b59040ba
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Change-Id: Ie9a992e9ad3a6f596c122d3d2747e5f9a0a22b51
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Change-Id: I94adc67717ac66fc655866f4b8d93bcb758eaace
|
|\ \ \ \ \ \ \
| | |_|_|_|/ /
| |/| | | | | |
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Setting conditional variable (and use it under the same conditional),
makes it hard for phan to see the correct type for the variables.
phan fails with "Suspicious array access" when formatDate() gets a
return type declaration `array`.
Unpack the array in the foreach and use the same variable to check.
Change-Id: I8408d10774cdf96ee59c0f1de3729aa41d2602b6
|
|\ \ \ \ \ \ |
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Usage of the return value removed in 6e88bd35ff / r28086
Change-Id: Ie1a66528c409c79f49d8ad34792671c5d694f495
|
|\ \ \ \ \ \ |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Change-Id: I328e7691cf620ddc9520670826a928a291e0dfe9
|
|\ \ \ \ \ \ \ |
|
| |/ / / / / /
| | | | | | |
| | | | | | |
| | | | | | | |
Change-Id: Iba083aa271a911107477430e6831e349bcd2acfb
|
|\ \ \ \ \ \ \ |
|
| | |/ / / / /
| |/| | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Bug: T389916
Change-Id: Ie1c4c6bf1c3dcf5da6410bb282830390b0798405
|
|/ / / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
```
PHP Deprecated: strrpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /srv/mediawiki/1.42/includes/libs/filebackend/FileBackend.php on line 1588
```
Bug: T384851
Change-Id: I36c401587d94e7c1ab444d355b03ea88da8fb6e8
|
|\ \ \ \ \ \ |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Change-Id: I8f55e929543b67ed66191a9421c5c365b625aecc
|
|\ \ \ \ \ \ \ |
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Change-Id: Ic9cd94e8844043b87885b6c7f1768cdcd2e86837
|
| |_|/ / / / /
|/| | | | | |
| | | | | | |
| | | | | | | |
Change-Id: I2f499c75ce82bd4bb8697b6a950017f0309b2427
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Almost everywhere else in MediaWiki core and extensions
(at least those used by Wikimedia), it's written
without a space.
Follow up from I4c40a9566642fb2fbcf2006e4b7e33501b7b2575
Change-Id: I952f9552a5300eb883df1b2fc8d9276c42a2c3a6
|
|\ \ \ \ \ \ \ |
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
When MediaWiki creates load.php URLs, in OutputPage and via RL\Client,
it sets 'lang', not 'dir'. The direction is automatically derived
from the language, which makes the library easier to use for developers,
and also avoids a potentially confusing scenario in which the two
are different (e.g. lang=he and dir=ltr would not make sense, and
would further risk poisoning LTR content in an RTL/Hebrew-related
cache somewhere).
Bug: T225845
Change-Id: I14905c85bb5e3bb47a681dc99668b92844d22f04
|
|\ \ \ \ \ \ \ \ |
|
| |/ / / / / / /
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
XmlSelector exists primarily to create `<select>` menus,
whereas this is creating `<datalist>`. This caller bypassing half
the features (ctor args), overrides a half of what remains (tagname),
and leaves most of the rest unused (e.g. optgroup, defaults).
This in turn called Xml::option() which has more indirection, such
as an optional selected, which is never set.
Replace by idiomatic, simple, and diret use of Html::element() and
Html::rawElement().
While at it:
* Improve docs for the return value and make it clear that this is not
a list to append to, the exactly two chunks have distinct identities
and the callers depend on that exact [0] and [1] identity.
* There was an early return with empty array for when the feature is
disabled by site config. This violates the return shape but worked
because all callers in core check the return value for truethy-ness.
Support this by returning null instead, which is less likely to be
mistaken and communicates more clearly the need for checks on the
caller side, and e.g. nullable `?array` in the future.
Test plan:
* Edit buildTagFilterSelector() to force `if ( $ooui )` to `if ( false )`.
* Open Special:Contributions locally.
* Confirm visual rendering and HTML source are identical before/after.
Change-Id: I6d68b1846d31d861d6f4bacff0fca38e478e00de
|
|\ \ \ \ \ \ \ \ |
|
| | |_|_|_|/ / /
| |/| | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Bug: T387255
Change-Id: I3c39db9d8394254b94f0828de0df4fb57e8d49e7
|
|\ \ \ \ \ \ \ \ |
|
| |/ / / / / / /
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
This patch fixes an issue introduced in Icccfe9548fc67a3692b488947b2648fe41c5198e
when introducing the RecentChangeMailComposer.
This issue caused watchlist emails not having the List-Help header. No
other change in behaviour.
Bug: T387987
Change-Id: I4fac2cacb6e2180d768c7cf0832a07a6ace8584e
|
|\ \ \ \ \ \ \ \
| |/ / / / / / /
|/| | | | | | | |
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Bug: T343771
Change-Id: I8f6d57599211eb6c8c29bde3abaccac78c6dc97e
|
|\ \ \ \ \ \ \ \ |
|
| | |_|_|_|_|_|/
| |/| | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
This is disabled by default but can be added on skins that support
dark mode. This replaces existing code in Minerva and Vector 2022.
Bug: T388197
Change-Id: I4302b629d42aa58073108bc75eaf857d7e55d9cf
|
| |_|_|_|_|/ /
|/| | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Bug: T387000
Change-Id: Ia45c70c331c2bb4dda066294e6a516a0652fc5a5
|