3 years agoAvoid arithmetics on localized number string ("0,04") in SpecialWatchlist
Edward Chernenko [Sun, 1 Jul 2018 02:10:56 +0000 (05:10 +0300)]
Avoid arithmetics on localized number string ("0,04") in SpecialWatchlist

In SpecialWatchlist::cutoffselector(), values like 1/24 or 6/24 are cast
to string via strval(). However, in some locales (e.g. ru_RU.utf8) strval
will return a localized form of the number, e.g. "0,04" instead of "0.04".

This "0,04" is then used in arithmetic operations, where it's treated as 0,
resulting in "0 hours" being shown instead of "1 hour", "2 hours", etc.

Bug: T198501
Change-Id: Iaa4e6170b30a7bb9ce0f22d9d2cc4772b0faa3b8

3 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Sat, 30 Jun 2018 19:55:47 +0000 (21:55 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: If06de066ea51f0418a4241c33a4b7e9593a3e392

3 years agoMerge "WikiPage: Do not set "undid revision ID" for rollbacks"
jenkins-bot [Fri, 29 Jun 2018 23:53:29 +0000 (23:53 +0000)]
Merge "WikiPage: Do not set "undid revision ID" for rollbacks"

3 years agoMerge "Allow MediaWikiTestCase::insertPage to use given User"
jenkins-bot [Fri, 29 Jun 2018 22:38:45 +0000 (22:38 +0000)]
Merge "Allow MediaWikiTestCase::insertPage to use given User"

3 years agoAllow MediaWikiTestCase::insertPage to use given User
MusikAnimal [Fri, 29 Jun 2018 19:56:22 +0000 (15:56 -0400)]
Allow MediaWikiTestCase::insertPage to use given User

Sometimes you need to create pages with a non-sysop.
Example: I31aedcb9af7584fa5504916c67ca10f205ec9910

Change-Id: I9e48f7c00efbce8c2de3f5db3a74462d47ae8f64

3 years agoMerge "RCFilters: Fix highlight container selector in Watchlist overrides"
jenkins-bot [Fri, 29 Jun 2018 21:03:32 +0000 (21:03 +0000)]
Merge "RCFilters: Fix highlight container selector in Watchlist overrides"

3 years agoWikiPage: Do not set "undid revision ID" for rollbacks
Matěj Suchánek [Fri, 29 Jun 2018 20:53:11 +0000 (22:53 +0200)]
WikiPage: Do not set "undid revision ID" for rollbacks

It causes them to be tagged with the "mw-undo" tag, in addition to the
"mw-rollback" tag they already have.

Bug: T190374
Change-Id: Ia447a107f0844cfef4a51a72fdec7aeea0480c70

3 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Fri, 29 Jun 2018 19:58:43 +0000 (21:58 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I87bb2d2a0c503c4945c8acc2c57389d498e8492e

3 years agoRCFilters: Fix highlight container selector in Watchlist overrides
Moriel Schottlender [Fri, 29 Jun 2018 16:06:14 +0000 (09:06 -0700)]
RCFilters: Fix highlight container selector in Watchlist overrides

Bug: T198445
Change-Id: I01f0ccc964595c0f65aca6cbcac7828ebad33818

3 years agoMerge "selenium: Remove '☃' character (U+2603 snowman emoji) from random usernames"
jenkins-bot [Fri, 29 Jun 2018 19:37:18 +0000 (19:37 +0000)]
Merge "selenium: Remove '☃' character (U+2603 snowman emoji) from random usernames"

3 years agoMerge "Prevent "Undefined offset notice""
jenkins-bot [Fri, 29 Jun 2018 19:34:47 +0000 (19:34 +0000)]
Merge "Prevent "Undefined offset notice""

3 years agoMerge "Consolidate AtomicSectionUpdate code in DerivedPageDataUpdater."
jenkins-bot [Fri, 29 Jun 2018 17:19:01 +0000 (17:19 +0000)]
Merge "Consolidate AtomicSectionUpdate code in DerivedPageDataUpdater."

3 years agoMerge "Add Manipuri/Meitei to Names.php"
jenkins-bot [Fri, 29 Jun 2018 17:18:56 +0000 (17:18 +0000)]
Merge "Add Manipuri/Meitei to Names.php"

3 years agoMerge "RCFilters: Hide highlight containers when RCFilters is disabled"
jenkins-bot [Fri, 29 Jun 2018 16:09:53 +0000 (16:09 +0000)]
Merge "RCFilters: Hide highlight containers when RCFilters is disabled"

3 years agoMWNamespace: Add getCategoryLinkType() method
Kevin Israel [Thu, 28 Jun 2018 09:58:28 +0000 (05:58 -0400)]
MWNamespace: Add getCategoryLinkType() method

This method returns the value used as cl_type for category links that
are "from" pages within the namespace, and is added to avoid duplication
of code across a few classes.

Change-Id: I4e55932a5a27858cfedb12009b455fcd02f9b5df

3 years agoMerge "Ensure services are added to MediaWikiServicesTest::provideGetService"
jenkins-bot [Fri, 29 Jun 2018 15:21:24 +0000 (15:21 +0000)]
Merge "Ensure services are added to MediaWikiServicesTest::provideGetService"

3 years agoMerge "Add @see $wgContentHandlerUseDB to RevisionStore params"
jenkins-bot [Fri, 29 Jun 2018 15:21:19 +0000 (15:21 +0000)]
Merge "Add @see $wgContentHandlerUseDB to RevisionStore params"

3 years agoselenium: Remove '☃' character (U+2603 snowman emoji) from random usernames
Bartosz Dziewoński [Fri, 29 Jun 2018 14:58:36 +0000 (16:58 +0200)]
selenium: Remove '☃' character (U+2603 snowman emoji) from random usernames

The AntiSpoof extension disallows this character in usernames, causing
tests to fail on some setups. Its error message claims it is an
"unassigned character" (which is false), but it seems it's
intentionally disallowed and the error message should instead say
"non-script character" or something.

Bug: T198384
Change-Id: Ia8e7b425b6a3cf3742c00178f28c97a19f46bab0

3 years agoAdd @see $wgContentHandlerUseDB to RevisionStore params
addshore [Fri, 29 Jun 2018 09:42:25 +0000 (10:42 +0100)]
Add @see $wgContentHandlerUseDB to RevisionStore params

Change-Id: Ic7c4a7a729b2cac6ac46ae9475167acfe6e8dd9e

3 years agoEnsure services are added to MediaWikiServicesTest::provideGetService
addshore [Fri, 29 Jun 2018 09:31:27 +0000 (10:31 +0100)]
Ensure services are added to MediaWikiServicesTest::provideGetService

Change-Id: I3f6ded009ed98b615adb7c46d41bced450972b54

3 years agoMediaWikiServicesTest, remove out of date note
addshore [Fri, 29 Jun 2018 09:22:58 +0000 (10:22 +0100)]
MediaWikiServicesTest, remove out of date note

provideGetters is now automatically populated using the
provideGetService method so we don't need to actually add
the service there

Change-Id: I07e8f54e5c4aa7ff22d02312bf51ac8d1cc4b5c2

3 years agoIntroduce RevisionStoreFactory & Tests
addshore [Wed, 27 Jun 2018 12:16:35 +0000 (13:16 +0100)]
Introduce RevisionStoreFactory & Tests

Bug: T194729
Change-Id: I0a8a441b803816281113e52a2a57cc07af8a1119

3 years agoMerge "Regression test for autopatrolling rollbacks"
jenkins-bot [Fri, 29 Jun 2018 11:04:22 +0000 (11:04 +0000)]
Merge "Regression test for autopatrolling rollbacks"

3 years agoMerge "Correct $specialPageAliases for sa.wiki"
jenkins-bot [Fri, 29 Jun 2018 10:42:02 +0000 (10:42 +0000)]
Merge "Correct $specialPageAliases for sa.wiki"

3 years agoRegression test for autopatrolling rollbacks
daniel [Fri, 29 Jun 2018 09:59:51 +0000 (11:59 +0200)]
Regression test for autopatrolling rollbacks

Bug: T198449
Change-Id: Ic280c38ac2ba0a0842c484f671e7e99f50cd54d5

3 years agoMark rollbacking revision as patrolled
Matěj Suchánek [Fri, 29 Jun 2018 07:14:15 +0000 (07:14 +0000)]
Mark rollbacking revision as patrolled

I just copy & pasted lines 1833-1838.

Bug: T198449
Change-Id: I5d356b074e048a2325a64bfe2c1e652c640c560f

3 years agoPrevent "Undefined offset notice"
Matěj Suchánek [Fri, 8 Jun 2018 13:34:41 +0000 (13:34 +0000)]
Prevent "Undefined offset notice"

The number provided by the query can be arbitrary, so let's narrow the
input validation to booleans.

Bug: T194616
Change-Id: If03e6e2d5bbcf4f2d85047cc23ee5388b39fe114

3 years agoAdd Manipuri/Meitei to Names.php
MarcoAurelio [Mon, 25 Jun 2018 21:42:30 +0000 (23:42 +0200)]
Add Manipuri/Meitei to Names.php

Bug: T198132
Change-Id: I43620c1f34eecda69c61ea0bb13a213e0e6a457d

3 years agoRCFilters: Hide highlight containers when RCFilters is disabled
Roan Kattouw [Fri, 29 Jun 2018 04:43:04 +0000 (21:43 -0700)]
RCFilters: Hide highlight containers when RCFilters is disabled

The mw-rcfilters-ui-highlights divs are given display: none; (if
highlights are disabled) or display: inline-block; (if they are enabled)
by the RCFilters CSS, but none of that CSS loads when RCFilters is
disabled, so in that case they default to display: block;. I don't know
why this doesn't cause them to break the line in Chrome and Firefox, but
I suspect that this is what causes the display issues in Edge that
people have been reporting.

This is a speculative fix because I'm not able to run Edge to verify.

Bug: T198440
Change-Id: I7b4d9b01d9b78828c273895a0093a2a7c0b4fc99

3 years agoMerge "objectcache: make MultiWriteBagOStuff handle duplicate add() operations"
jenkins-bot [Fri, 29 Jun 2018 02:16:52 +0000 (02:16 +0000)]
Merge "objectcache: make MultiWriteBagOStuff handle duplicate add() operations"

3 years agoMerge "ForeignStructuredUpload: Stop using methods from CapsuleMultiselectWidget"
Krinkle [Fri, 29 Jun 2018 01:52:16 +0000 (01:52 +0000)]
Merge "ForeignStructuredUpload: Stop using methods from CapsuleMultiselectWidget"

3 years agoMerge "Remove deprecated 'json' module"
Krinkle [Fri, 29 Jun 2018 01:25:37 +0000 (01:25 +0000)]
Merge "Remove deprecated 'json' module"

3 years agoMerge "Hard-deprecate ApiBase::profile{In|Out}()"
jenkins-bot [Fri, 29 Jun 2018 00:30:58 +0000 (00:30 +0000)]
Merge "Hard-deprecate ApiBase::profile{In|Out}()"

3 years agoMerge "Make ProcessCacheLRU wrap MapCacheLRU"
jenkins-bot [Thu, 28 Jun 2018 23:02:26 +0000 (23:02 +0000)]
Merge "Make ProcessCacheLRU wrap MapCacheLRU"

3 years agoMerge "RC Filters: Check if app is initialized before calling change tags"
jenkins-bot [Thu, 28 Jun 2018 22:42:02 +0000 (22:42 +0000)]
Merge "RC Filters: Check if app is initialized before calling change tags"

3 years agoRemove deprecated 'json' module
Timo Tijhof [Thu, 28 Jun 2018 21:50:22 +0000 (22:50 +0100)]
Remove deprecated 'json' module

This is an empty placeholder module. It was kept for backwards compatibility
with older extensions that were still supporting MediaWiki versions that in
turn supported older browsers that in turn did not yet implement the JSON
interface of the ES5 standard.

There is no longer any use of 'json' module anywhere in Wikimedia Git,
nor anywhere found by Codesearch, nor anywhere on-wiki in gadgets at WMF.

Bug: T127328
Change-Id: I8ba40a73dc900909e3fa3bd3ebe88616c9a26d3c

3 years agoHard-deprecate ApiBase::profile{In|Out}()
Max Semenik [Thu, 28 Jun 2018 20:57:46 +0000 (13:57 -0700)]
Hard-deprecate ApiBase::profile{In|Out}()

The only remaining calls are getting removed in I37641dee50a.

Change-Id: I3ee698781a4698d1ef8e74209b82fb1f984fb8e9

3 years agoMake ProcessCacheLRU wrap MapCacheLRU
Aaron Schulz [Wed, 27 Jun 2018 14:00:10 +0000 (15:00 +0100)]
Make ProcessCacheLRU wrap MapCacheLRU

Change-Id: I190c824af471aee798e2f111b902f38532b8ac99

3 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Thu, 28 Jun 2018 19:55:54 +0000 (21:55 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I401fa4fb518d8f772e3bd1cc06eda55a066d75e1

3 years agoMerge "Add key expiration and map resizing support to MapCacheLRU"
jenkins-bot [Thu, 28 Jun 2018 19:22:03 +0000 (19:22 +0000)]
Merge "Add key expiration and map resizing support to MapCacheLRU"

3 years agoMerge "Fix table locking in WikiPage::doDeleteArticleReal"
jenkins-bot [Thu, 28 Jun 2018 18:54:19 +0000 (18:54 +0000)]
Merge "Fix table locking in WikiPage::doDeleteArticleReal"

3 years agoMerge "Fix 'Tags' padding to keep it farther from the edge and document the source...
jenkins-bot [Thu, 28 Jun 2018 16:45:22 +0000 (16:45 +0000)]
Merge "Fix 'Tags' padding to keep it farther from the edge and document the source of the new right padding value"

3 years agoCorrect $specialPageAliases for sa.wiki
Jayprakash12345 [Wed, 20 Jun 2018 16:38:40 +0000 (22:08 +0530)]
Correct $specialPageAliases for sa.wiki

Bug: T102320
Change-Id: I10bf5a0039235a5b149dcea6bd62176d3763acf9

3 years agoFix table locking in WikiPage::doDeleteArticleReal
Gergő Tisza [Thu, 28 Jun 2018 16:33:50 +0000 (18:33 +0200)]
Fix table locking in WikiPage::doDeleteArticleReal

This reverts a recent change that caused the table array and the
join array to have mismatching keys, so that the select was a
cartesian product of page and revision_comment_temp (ie. any
page deletion locked the whole revision_comment_temp table).

Bug: T198350
Change-Id: Ifb6f0409d4f210d3ecb1da03f59aaba7e229e89e

3 years agoobjectcache: make MultiWriteBagOStuff handle duplicate add() operations
Aaron Schulz [Thu, 28 Jun 2018 09:23:06 +0000 (10:23 +0100)]
objectcache: make MultiWriteBagOStuff handle duplicate add() operations

Bug: T198280
Change-Id: Ib1bcde2b3fbfb452f80d8d840c494be2eb70eb87

3 years agoRC Filters: Check if app is initialized before calling change tags
Kosta Harlan [Thu, 28 Jun 2018 14:22:54 +0000 (10:22 -0400)]
RC Filters: Check if app is initialized before calling change tags

This only occurs when highlighting is enabled in the query parameters on page
load. If you load a watchlist page with highlighting enabled, you'll see that
FilterTagMultiselectWidget calls the parent onChangeTags method, and then we
end up at updateIfHeightChanged where a resize event occurs. This commit
checks to see if the app is still initializing before propagating this event.

Bug: T198399
Change-Id: I8d36875ecf859b40854fe57fecf824e648bb3bf8

3 years agoMerge "RELEASE-NOTES: Add note for breaking CategoryMultiselectWidget"
jenkins-bot [Thu, 28 Jun 2018 13:06:20 +0000 (13:06 +0000)]
Merge "RELEASE-NOTES: Add note for breaking CategoryMultiselectWidget"

3 years agoForeignStructuredUpload: Stop using methods from CapsuleMultiselectWidget
Prateek Saxena [Thu, 28 Jun 2018 07:13:29 +0000 (12:43 +0530)]
ForeignStructuredUpload: Stop using methods from CapsuleMultiselectWidget

After I2146d8ce6505dae55750b4b12bd806b83796c1c5 CategoryMultiselectWidget
inherits from TagMultiselectWidget instead of CapsuleMultiselectWidget.

TagMultiselectWidget has a setValue method instead of setItemsFromData,
and instead of getItemsData we need to use getItems and extract the data.

Bug: T183299
Bug: T198362
Change-Id: Iff1f8a520a01e6771d6b496a87e4749b7c30a877

3 years agoRELEASE-NOTES: Add note for breaking CategoryMultiselectWidget
Prateek Saxena [Thu, 28 Jun 2018 07:45:58 +0000 (13:15 +0530)]
RELEASE-NOTES: Add note for breaking CategoryMultiselectWidget

Follows-up on I2146d8ce6505dae55750b4b12bd806b83796c1c5.

Bug: T183299
Change-Id: I799afa68048dfb7b2b30cdae09c9bf6a625f867f

3 years agoMerge "Update OOUI to v0.27.4"
Bartosz Dziewoński [Thu, 28 Jun 2018 10:44:34 +0000 (10:44 +0000)]
Merge "Update OOUI to v0.27.4"

3 years agoAllow overloading of getLabel() with return ' '
Fomafix [Wed, 27 Jun 2018 20:13:01 +0000 (22:13 +0200)]
Allow overloading of getLabel() with return ' '

This is a follow-up to 125cbd8c017b872c78f047c08f494a458883db23.

Bug: T198338
Change-Id: I21626326dde368d70fcc33052e43ff90db5ea9c0

3 years agoAdd key expiration and map resizing support to MapCacheLRU
Aaron Schulz [Wed, 27 Jun 2018 09:40:19 +0000 (10:40 +0100)]
Add key expiration and map resizing support to MapCacheLRU

Also implement Serializable in to add stability to anything that
uses naïve serialization (such as for persistent caching).

Change-Id: I03ba654ffd80ba027d47d5d7583abfe48d52818d

3 years agoMerge "resourceloader: Embed 'mediawiki' directly in startup response"
Krinkle [Thu, 28 Jun 2018 01:43:55 +0000 (01:43 +0000)]
Merge "resourceloader: Embed 'mediawiki' directly in startup response"

3 years agoRC Filters: Don't apply/clear highlighting while still initializing
Kosta Harlan [Wed, 27 Jun 2018 20:58:22 +0000 (16:58 -0400)]
RC Filters: Don't apply/clear highlighting while still initializing

this.controller.isInitialized() is still false on page load, we don't want to
clear/apply highlights at this stage.

Remove Controller's this.initializing in favor of this.initialized,
expose it through isInitialized(), and remove ChangesListWrapperWidget's
this.filterModelInitialized since it's now unused.

Bug: T198359
Change-Id: I284ded2c6dd891dfb3efab5c6800c26a806ce306

3 years agoMerge "filerepo: clean up remote description cache keys"
jenkins-bot [Wed, 27 Jun 2018 22:16:45 +0000 (22:16 +0000)]
Merge "filerepo: clean up remote description cache keys"

3 years agoMerge "RCFilters: Move aggregation of highlight classes to the backend"
jenkins-bot [Wed, 27 Jun 2018 22:14:51 +0000 (22:14 +0000)]
Merge "RCFilters: Move aggregation of highlight classes to the backend"

3 years agoResourceLoaderImage module definitions can define a defaultColor
jdlrobson [Mon, 25 Jun 2018 22:55:19 +0000 (15:55 -0700)]
ResourceLoaderImage module definitions can define a defaultColor

Bug: T197909
Change-Id: I0745e112d11026ed59d8daca990b313305cd094a

3 years agoMerge "Fix broken label in Special:Import due to duplicate ID"
MusikAnimal [Wed, 27 Jun 2018 20:05:45 +0000 (20:05 +0000)]
Merge "Fix broken label in Special:Import due to duplicate ID"

3 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Wed, 27 Jun 2018 19:53:09 +0000 (21:53 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: Ia319ca22827e6f4f8302c03342db181e3e350596

3 years agoMerge "[MCR] populateContentTables maintenance script"
Gergő Tisza [Wed, 27 Jun 2018 18:57:01 +0000 (18:57 +0000)]
Merge "[MCR] populateContentTables maintenance script"

3 years agoUpdate OOUI to v0.27.4
Volker E [Wed, 27 Jun 2018 18:48:42 +0000 (20:48 +0200)]
Update OOUI to v0.27.4

Release notes:

Depends-on: I340d724fe7ede73cd7d20fa98184f33ad19b9148
Change-Id: I52f35f231d67f6fb6f0abfc268f25c5677e4b7ba

3 years agoresourceloader: Embed 'mediawiki' directly in startup response
Timo Tijhof [Fri, 15 Jun 2018 20:20:14 +0000 (21:20 +0100)]
resourceloader: Embed 'mediawiki' directly in startup response

Embed the essential files to define mw.loader directly as part of
the startup module.

* This means the internal 'mediawiki' module no longer exists.
  This is safe to remove because:
  1) While registered server-side for loading from startup.js, a PHPUnit
     structure test disallowed being specified as a dependency.
  2) Anything that attempted to load it client-side failed because the
     module was marked in the registry as 'raw', thereby excluding it
     from the data sent to the client-side. As such, it was seen as an
     unknown module that the client refused to fetch from the server.

* Deprecate getStartupModules() and getLegacyModules().
  These are no longer needed. There are no known callers anywhere in
  Wikimedia Git or elsewhere indexed by Codesearch, but easy enough
  to leave as no-op for one release.

* Remove ResourceLoaderRawFileModule class.
  No longer needed. Was created as a hack specifically for the 'mediawiki'
  module so that it would not leak global variables in debug mode.
  It has no usage anywhere in Wikimedia Git, nor elsewhere in Codesearch.
  Remove without deprecation given this was meant to be a 'private' class.

* Introduce (private) getBaseModules(). Previously, this list only existed
  locally in getStartupModulesUrl() by merging getStartupModules() and
  getLegacyModules(). This value was factored out into its own method.

* Make getStartupModulesUrl() private and rename to getBaseModulesUrl().
  It is only used internally to export the 'baseModulesUri' value.
  Its name was already confusing before, but it would've been even more
  confusing now given it doesn't even call getStartupModules() any more.

Bug: T192623
Change-Id: I14ba282d7b65e99ca54b7c2f77ba6e1adaddd11c

3 years agoMerge "objectcache: define makeKey()/makeGlobalKey() for ReplicatedBagOStuff"
jenkins-bot [Wed, 27 Jun 2018 15:55:27 +0000 (15:55 +0000)]
Merge "objectcache: define makeKey()/makeGlobalKey() for ReplicatedBagOStuff"

3 years agoFix 'Tags' padding to keep it farther from the edge and document the source of the...
Hagar Shilo [Wed, 20 Jun 2018 16:22:56 +0000 (19:22 +0300)]
Fix 'Tags' padding to keep it farther from the edge and document the source of the new right padding value

Bug: T192275
Change-Id: Ib63a09b3b0edbca3bd2f2cd42a9485538738256f

3 years agoobjectcache: define makeKey()/makeGlobalKey() for ReplicatedBagOStuff
Aaron Schulz [Wed, 27 Jun 2018 08:16:11 +0000 (09:16 +0100)]
objectcache: define makeKey()/makeGlobalKey() for ReplicatedBagOStuff

Proxy to the "master"/"write" cache object method. This is similar to the
approach taken in MultiWriteBagOStuff

Bug: T198279
Change-Id: If0933246b7ef4fc07ebeec4c3c9625b1137dbe05

3 years agoConsolidate AtomicSectionUpdate code in DerivedPageDataUpdater.
daniel [Sat, 23 Jun 2018 11:15:40 +0000 (13:15 +0200)]
Consolidate AtomicSectionUpdate code in DerivedPageDataUpdater.

Change-Id: I7f60f275b7c80590c4c85517fec57474e3e23442

3 years agoMerge "mw.widgets.CategoryMultiselectWidget use TagMultiselectWidget"
jenkins-bot [Wed, 27 Jun 2018 08:19:04 +0000 (08:19 +0000)]
Merge "mw.widgets.CategoryMultiselectWidget use TagMultiselectWidget"

3 years agomw.widgets.CategoryMultiselectWidget use TagMultiselectWidget
Prateek Saxena [Thu, 8 Mar 2018 06:09:07 +0000 (11:39 +0530)]
mw.widgets.CategoryMultiselectWidget use TagMultiselectWidget

…also rename mw.widgets.CategoryCapsuleItemWidget to

Bug: T183299
Depends-on: Ia0732faff2d98f1ca07da5fbe1f2abc27f71a617
Change-Id: I2146d8ce6505dae55750b4b12bd806b83796c1c5

3 years agoMerge "resourceloader: Add @covers for FileModuleTest"
jenkins-bot [Wed, 27 Jun 2018 07:25:50 +0000 (07:25 +0000)]
Merge "resourceloader: Add @covers for FileModuleTest"

3 years agofilerepo: clean up remote description cache keys
Aaron Schulz [Wed, 27 Jun 2018 07:24:00 +0000 (08:24 +0100)]
filerepo: clean up remote description cache keys

Hash the file name portion and make the string constant portions
more relevant to what the keys are actually used for (e.g. there
is no URL parameter in the key)

Bug: T198279
Change-Id: Idf6f97db26f5be291cdd3a50a91346677fe9c3e6

3 years agoMerge "resourceloader: Add test for getVersionHash parent-definition requirement"
jenkins-bot [Wed, 27 Jun 2018 07:25:45 +0000 (07:25 +0000)]
Merge "resourceloader: Add test for getVersionHash parent-definition requirement"

3 years agoMerge "mediawiki.inspect: Fix exception when calling mw.inspect() a second time"
jenkins-bot [Wed, 27 Jun 2018 07:19:09 +0000 (07:19 +0000)]
Merge "mediawiki.inspect: Fix exception when calling mw.inspect() a second time"

3 years agoMerge "mediawiki.inspect: Fix doc index for inspect.grep()"
jenkins-bot [Wed, 27 Jun 2018 07:17:43 +0000 (07:17 +0000)]
Merge "mediawiki.inspect: Fix doc index for inspect.grep()"

3 years agoMerge "mediawiki.inspect: Use property assignments for clarity"
jenkins-bot [Wed, 27 Jun 2018 07:16:23 +0000 (07:16 +0000)]
Merge "mediawiki.inspect: Use property assignments for clarity"

3 years agoMerge "Refactor ApiOptions for reusability"
jenkins-bot [Wed, 27 Jun 2018 06:16:10 +0000 (06:16 +0000)]
Merge "Refactor ApiOptions for reusability"

3 years agoRCFilters: Move aggregation of highlight classes to the backend
Roan Kattouw [Tue, 26 Jun 2018 23:52:59 +0000 (16:52 -0700)]
RCFilters: Move aggregation of highlight classes to the backend

Construction of the highlight containers was moved to the backend, but
setupHighlightContainers() also aggregates the CSS classes used for
highlights for grouped entries in enhanced mode.

Move that to the backend too, and get rid of setupHighlightContainers().

Also move the namespace classes to getHTMLClassesForFilters() so that
they get picked up too, and pick up classes for tags separately because
the way they're handled is weird.

Bug: T197168
Change-Id: I4c374f82e7d128025f4e2b2f39b0adba14b76ef3

3 years agoMerge "Move construction of highlight divs to backend"
jenkins-bot [Wed, 27 Jun 2018 00:42:13 +0000 (00:42 +0000)]
Merge "Move construction of highlight divs to backend"

3 years agoMerge "RCFilters: Share one color picker popup between all highlight dropdowns"
jenkins-bot [Wed, 27 Jun 2018 00:38:11 +0000 (00:38 +0000)]
Merge "RCFilters: Share one color picker popup between all highlight dropdowns"

3 years agoMove construction of highlight divs to backend
Moriel Schottlender [Mon, 25 Jun 2018 21:25:19 +0000 (14:25 -0700)]
Move construction of highlight divs to backend

Create the highlight container div in the backend for
both regular and enhanced result view, so we spare
the load in the frontend.

Bug: T197168
Change-Id: I36bd7b7c4c124d305ac7b07e824dc2a58e152be4

3 years agoRCFilters: Only attempt to remove tag if we can find an item for it
Kosta Harlan [Tue, 26 Jun 2018 20:24:11 +0000 (16:24 -0400)]
RCFilters: Only attempt to remove tag if we can find an item for it

As noted in T198140 and T198231, removeTagByData leads us eventually to
OO.ui.mixin.GroupElement.prototype.removeItems(), which does not check if
any of the items are null values, and a change event is emitted.

This commit ensures that we can find an item for the data before attempting
to remove the tag.

Bug: T198140
Change-Id: I79a923a7b4e5f6c4d14fcce3c5855b4c56796384

3 years agoRefactor ApiOptions for reusability
Max Semenik [Tue, 26 Jun 2018 22:46:40 +0000 (15:46 -0700)]
Refactor ApiOptions for reusability

Because GlobalPreferences needs an API and that API needs to behave like
this one, it makes sense to make them share code. Move some functionality
into separate functions to make this possible.

Bug: T62856
Change-Id: Ic64934e7f7226a309d71c22626119ea233e2caeb

3 years agoRCFilters: Share one color picker popup between all highlight dropdowns
Roan Kattouw [Sat, 7 Oct 2017 00:26:18 +0000 (17:26 -0700)]
RCFilters: Share one color picker popup between all highlight dropdowns

Add a PopupWidget subclass that wraps the color picker, and pass that
down to the buttons in the menu items.

Bug: T198142
Change-Id: I84dabce988f4c99835f503bb8c8eb492f7fbfde1

3 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Tue, 26 Jun 2018 19:55:47 +0000 (21:55 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I6c8bffce7566484cc46e852b20c0b29d655e8a36

3 years agomediawiki.inspect: Fix exception when calling mw.inspect() a second time
Timo Tijhof [Tue, 26 Jun 2018 17:22:26 +0000 (18:22 +0100)]
mediawiki.inspect: Fix exception when calling mw.inspect() a second time

In mediawiki.js, the mw.inspect() method is defined to lazy-load the
'mediawiki.inspect' module, and then call mw.inspect.runReports().

The problem is that, mediawiki.inspect.js, re-creates mw.inspect as a plain
object, which blows away the mw.inspect() function that was there.

Calling it a second time threw "TypeError: inspect is not a function".

Fix this by making mediawiki.inspect.js extend the function object,
instead of re-defining it.

Bug: T197810
Change-Id: I61aa965f3e1fd0a1c9f9d98310632b4a8d5e1683

3 years agomediawiki.inspect: Fix doc index for inspect.grep()
Timo Tijhof [Tue, 26 Jun 2018 17:11:13 +0000 (18:11 +0100)]
mediawiki.inspect: Fix doc index for inspect.grep()

Because this was positioned linearly after the sub-object for
`mw.inspect.reports.*`, JSDuck was indexing this as part of that
object instead of the outer `mw.inspect.*` scope.

This could be fixed by adding `@member mw.inspect` on this method,
or by re-starting the `@class mw.inspect` scope, but really
this should've been declared closer to the rest of that class,
which naturally avoids the index issue.

Change-Id: Ib2c9dc861f7f062c05bc059643a1a676906d338f

3 years agomediawiki.inspect: Use property assignments for clarity
Timo Tijhof [Tue, 26 Jun 2018 17:07:43 +0000 (18:07 +0100)]
mediawiki.inspect: Use property assignments for clarity

This changes the assignment of these methods from being declared
at once in an object literal, to assigning properties in separate

This is functionally a no-op and produces the exact same values,
but was factored out of the next commit to keep the diff cleaner
when fixing T197810 (which changes the host object from a plain
empty object, to a function object, which cannot be declared
as a literal).

Bug: T197810
Change-Id: I6ba1891acf8807cb9e01fa11a608e0c509e5f2bc

3 years agoFix broken label in Special:Import due to duplicate ID
MusikAnimal [Mon, 25 Jun 2018 19:28:01 +0000 (15:28 -0400)]
Fix broken label in Special:Import due to duplicate ID

Change-Id: I176b811e12719320432af01a22812fea872794f6

3 years agoSkip MediaWikiTestCaseSchema1Test on Postgres
Kunal Mehta [Sat, 2 Jun 2018 02:14:02 +0000 (19:14 -0700)]
Skip MediaWikiTestCaseSchema1Test on Postgres

According to Anomie, the idea behind this test is semi-broken, and would
benefit from T191231 being implemented first.

Bug: T195807
Change-Id: I9561fd0a82c37cf044e292e00499ecb611fcded6

3 years agoMerge "Declare HTMLSelectNamespace::mAllValue"
jenkins-bot [Tue, 26 Jun 2018 15:25:07 +0000 (15:25 +0000)]
Merge "Declare HTMLSelectNamespace::mAllValue"

3 years agoresourceloader: Add test for getVersionHash parent-definition requirement
Timo Tijhof [Tue, 26 Jun 2018 15:24:31 +0000 (16:24 +0100)]
resourceloader: Add test for getVersionHash parent-definition requirement

Change-Id: I69cdfea96c1e64bd8a7495eb6e56d0aefbe37643

3 years agoSync up with Parsoid parserTests.txt
C. Scott Ananian [Tue, 26 Jun 2018 14:37:51 +0000 (10:37 -0400)]
Sync up with Parsoid parserTests.txt

This now aligns with Parsoid commit b068bb51d29e294a4f4a875ae829cca8cf314205

Change-Id: Ie8e8a7ed631894f56372e286ed01d1583f7a8979

3 years agoMerge "Checkboxes should be styled on non-JS browsers"
jenkins-bot [Tue, 26 Jun 2018 14:21:33 +0000 (14:21 +0000)]
Merge "Checkboxes should be styled on non-JS browsers"

3 years agoDeclare HTMLSelectNamespace::mAllValue
Umherirrender [Mon, 25 Jun 2018 19:36:21 +0000 (21:36 +0200)]
Declare HTMLSelectNamespace::mAllValue

It is protected, because some extension extends this class

Change-Id: I576e9e7e843844433655b11b8847c9e3060ba8e9

3 years agoMerge "Fix PHP7 warning "non well formed numeric value encountered""
jenkins-bot [Tue, 26 Jun 2018 12:27:53 +0000 (12:27 +0000)]
Merge "Fix PHP7 warning "non well formed numeric value encountered""

3 years agoMerge "Add some output for progress in populateChangeTagDef.php"
jenkins-bot [Tue, 26 Jun 2018 10:54:25 +0000 (10:54 +0000)]
Merge "Add some output for progress in populateChangeTagDef.php"

3 years agoMerge "Expand $wgDBDefaultGroup documentation"
jenkins-bot [Tue, 26 Jun 2018 07:42:58 +0000 (07:42 +0000)]
Merge "Expand $wgDBDefaultGroup documentation"

3 years agoresourceloader: Add @covers for FileModuleTest
Timo Tijhof [Tue, 26 Jun 2018 01:52:40 +0000 (02:52 +0100)]
resourceloader: Add @covers for FileModuleTest

Add @covers for various helper methods used by public methods, where the helper
methods actually contain most of the logic being tested in FileModuleTest.

I've changed these methods from protected to private (confirmed no usage)
to further pin down that their contract doesn't matter beyond making the
public methods work.

Change-Id: I2aef0d322b38bc3595e7d2c2339112b16fc66b8d

3 years agoFix PHP7 warning "non well formed numeric value encountered"
Edward Chernenko [Mon, 25 Jun 2018 22:45:13 +0000 (01:45 +0300)]
Fix PHP7 warning "non well formed numeric value encountered"

PHP 7.1 warns when non-numeric string is implicitly cast to integer.

Change-Id: Ia46ea793e9495548c7d421b3372f6deaeda163f5

3 years agoMerge "French space armoring: Use unicode regex instead of octal escapes"
jenkins-bot [Mon, 25 Jun 2018 21:49:55 +0000 (21:49 +0000)]
Merge "French space armoring: Use unicode regex instead of octal escapes"

3 years agoMerge "Armor against French spaces detection in HTML attributes"
jenkins-bot [Mon, 25 Jun 2018 21:42:03 +0000 (21:42 +0000)]
Merge "Armor against French spaces detection in HTML attributes"