5 years agoMerge "Add support for PHP7 random_bytes in favor of mcrypt_create_iv"
jenkins-bot [Thu, 16 Mar 2017 22:28:41 +0000 (22:28 +0000)]
Merge "Add support for PHP7 random_bytes in favor of mcrypt_create_iv"

5 years agoRCfilters UI: Change mute display for included filters
Moriel Schottlender [Thu, 16 Mar 2017 22:04:19 +0000 (15:04 -0700)]
RCfilters UI: Change mute display for included filters

Bug: T156861
Bug: T149452
Change-Id: I64d84f0d84ff5e79da34f4897670102625c667cc

5 years agoMerge "RCFilters UI: Rework conflicts to be objects in filter or group context"
jenkins-bot [Thu, 16 Mar 2017 21:41:38 +0000 (21:41 +0000)]
Merge "RCFilters UI: Rework conflicts to be objects in filter or group context"

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Thu, 16 Mar 2017 21:30:12 +0000 (22:30 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: Ic6f9b78a996f4f9971ec99d48f1bca9e9ae69ebb

5 years agoRCFilters UI: Rework conflicts to be objects in filter or group context
Moriel Schottlender [Fri, 10 Mar 2017 23:22:12 +0000 (15:22 -0800)]
RCFilters UI: Rework conflicts to be objects in filter or group context

Allow conflicts to be defined in either the filter or the group context
and represent a whole object rather than an array of filter names.

Bug: T160453
Bug: T152754
Bug: T156427
Change-Id: I2423eb2618aa64bf30395b1a1912589e0c71f283

5 years agoMerge "Show better error for anons on Special:EmailUser"
jenkins-bot [Thu, 16 Mar 2017 19:11:23 +0000 (19:11 +0000)]
Merge "Show better error for anons on Special:EmailUser"

5 years agoMerge "RCFilters UI: Update fieldset as in load"
jenkins-bot [Thu, 16 Mar 2017 18:58:19 +0000 (18:58 +0000)]
Merge "RCFilters UI: Update fieldset as in load"

5 years agoMerge "RCFilters UI: Adjust filter list header elements' alignment"
jenkins-bot [Thu, 16 Mar 2017 18:58:10 +0000 (18:58 +0000)]
Merge "RCFilters UI: Adjust filter list header elements' alignment"

5 years agoMerge "RCFilters UI: Style adjustments for the FilterCapsuleMultiselectWidget"
jenkins-bot [Thu, 16 Mar 2017 18:58:04 +0000 (18:58 +0000)]
Merge "RCFilters UI: Style adjustments for the FilterCapsuleMultiselectWidget"

5 years agoRCFilters UI: Adjust filter list header elements' alignment
Moriel Schottlender [Thu, 16 Mar 2017 18:34:33 +0000 (11:34 -0700)]
RCFilters UI: Adjust filter list header elements' alignment

Bug: T160601
Change-Id: I89d3f9c59ef49e3c3dfdda1af8676855d3b9ac7b

5 years agoRCFilters UI: Update fieldset as in load
Moriel Schottlender [Wed, 15 Mar 2017 21:31:23 +0000 (14:31 -0700)]
RCFilters UI: Update fieldset as in load

Duplicate the javascript used on load on the fieldset
to reproduce the collapse and namespace checkboxes/select

Bug: T157594
Change-Id: I12946be6ed6cd7ef60e87fa3576fda42f7005fb6

5 years agoRCFilters UI: Style adjustments for the FilterCapsuleMultiselectWidget
Moriel Schottlender [Wed, 15 Mar 2017 23:28:04 +0000 (16:28 -0700)]
RCFilters UI: Style adjustments for the FilterCapsuleMultiselectWidget

Bug: T159966
Change-Id: I6864e22d7c628297d8cdf435b48e48fbab1a3f55

5 years agoMerge "RCFilters: Prevent duplicate filter names"
jenkins-bot [Thu, 16 Mar 2017 16:56:18 +0000 (16:56 +0000)]
Merge "RCFilters: Prevent duplicate filter names"

5 years agoShow better error for anons on Special:EmailUser
Eddie Greiner-Petter [Mon, 13 Mar 2017 17:33:35 +0000 (18:33 +0100)]
Show better error for anons on Special:EmailUser

When a anon user visits Special:EmailUser, the PermissionError message
is shown (as only members of the group "user" (all logged in users) are
allowed to do this). There is a better error message, which tells "You
must be logged in and have a valid email adress in your preferences."
available, but was only shown to users who are logged in but did not
have a valid mail adress in their settings, because the check for the
permission "emailuser" happened before the check for the valid mail
(which returns false for anon users). Exchanging the order of those
makes the right error message appear.

Bug: T160309
Change-Id: I26175df1f7577937d9781950058ca458984ce2cb

5 years agoMerge "Revert "[search] Remove more dead code""
jenkins-bot [Thu, 16 Mar 2017 11:09:43 +0000 (11:09 +0000)]
Merge "Revert "[search] Remove more dead code""

5 years agoMerge "Revert "Default to CACHE_ACCEL if user skips advanced settings""
jenkins-bot [Thu, 16 Mar 2017 08:04:41 +0000 (08:04 +0000)]
Merge "Revert "Default to CACHE_ACCEL if user skips advanced settings""

5 years agoRCFilters: Prevent duplicate filter names
Matthew Flaschen [Thu, 16 Mar 2017 04:06:02 +0000 (00:06 -0400)]
RCFilters: Prevent duplicate filter names

Explicitly block two filters in the same group from having the same

Before, it would be left to registerFilter, which would just cause
the second one to win.

Also, avoid a getFilter warning when the filter does not exist.
Do the same for getFilterGroup on ChangesListSpecialPage

Finally, a minor related doc fix.

Change-Id: I6b3880a5c7cc381c169bbd969cd4814559b49c91

5 years agoRevert "Default to CACHE_ACCEL if user skips advanced settings"
Aleksey Bekh-Ivanov (WMDE) [Wed, 15 Mar 2017 19:26:55 +0000 (19:26 +0000)]
Revert "Default to CACHE_ACCEL if user skips advanced settings"

This reverts commit 1fec847c6b366ab21bb215b94837a186545096f4.

Bug: T160519
Change-Id: I3bbfb5c5b61b8587ddc4af4fa134de6c86f46d98

5 years agoMerge "RCFilters: Don't allow underscore in filter or group names"
jenkins-bot [Thu, 16 Mar 2017 06:03:19 +0000 (06:03 +0000)]
Merge "RCFilters: Don't allow underscore in filter or group names"

5 years agoMerge "RCFilters: Test abstract class func directly, not in subclass tests"
jenkins-bot [Thu, 16 Mar 2017 06:00:19 +0000 (06:00 +0000)]
Merge "RCFilters: Test abstract class func directly, not in subclass tests"

5 years agoRCFilters: Don't allow underscore in filter or group names
Matthew Flaschen [Wed, 15 Mar 2017 04:23:29 +0000 (00:23 -0400)]
RCFilters: Don't allow underscore in filter or group names

This is reserved for the client-side which joins 'someGroup'
and 'somefilter' to make 'someGroup__somefilter' as an internal

Change-Id: I1b6ca9f337dd48e10705c46ef5027c3156254e01

5 years agoRCFilters: Test abstract class func directly, not in subclass tests
Matthew Flaschen [Thu, 16 Mar 2017 00:15:16 +0000 (20:15 -0400)]
RCFilters: Test abstract class func directly, not in subclass tests

Change-Id: I8f526975bbf0a5392b69d239bc9db9771c99cdd9

5 years agoMerge "Mark WikiRevision methods as public"
jenkins-bot [Thu, 16 Mar 2017 00:15:18 +0000 (00:15 +0000)]
Merge "Mark WikiRevision methods as public"

5 years agoMerge "jquery.ui: Add previously undocumented changes in PATCHES"
jenkins-bot [Thu, 16 Mar 2017 00:05:54 +0000 (00:05 +0000)]
Merge "jquery.ui: Add previously undocumented changes in PATCHES"

5 years agojquery.ui: Add previously undocumented changes in PATCHES
Timo Tijhof [Wed, 15 Mar 2017 23:52:31 +0000 (16:52 -0700)]
jquery.ui: Add previously undocumented changes in PATCHES

Change-Id: I8d9561916820212842f87fa2306ff7474b268173

5 years agoMerge "Change 'history-show-deleted' message to 'Revision deleted only' for clarity"
jenkins-bot [Wed, 15 Mar 2017 22:34:16 +0000 (22:34 +0000)]
Merge "Change 'history-show-deleted' message to 'Revision deleted only' for clarity"

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Wed, 15 Mar 2017 20:55:50 +0000 (21:55 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: Ie2f9d001e9396e7a28d4c83deeae9acef01b76c7

5 years agoMerge "Revert "Improve sorting on SpecialWanted*-Pages""
jenkins-bot [Wed, 15 Mar 2017 20:07:49 +0000 (20:07 +0000)]
Merge "Revert "Improve sorting on SpecialWanted*-Pages""

5 years agoRevert "Improve sorting on SpecialWanted*-Pages"
20after4 [Wed, 15 Mar 2017 19:29:04 +0000 (19:29 +0000)]
Revert "Improve sorting on SpecialWanted*-Pages"

This reverts commit 5b15728478f9b167389268fb988a7b9f9f78fcf5. The change causes db query errors:
DBQueryError: 1054 Unknown column qc_ra.rd_namespace in order clause

Change-Id: I068beeae70037c959d42419791911c54ca9908a1

5 years agoMerge "Make infused and non-infused DateInputWidget consistent"
jenkins-bot [Wed, 15 Mar 2017 19:26:10 +0000 (19:26 +0000)]
Merge "Make infused and non-infused DateInputWidget consistent"

5 years agoMerge "Skin: Only load jquery.makeCollapsible if needed"
jenkins-bot [Wed, 15 Mar 2017 17:58:03 +0000 (17:58 +0000)]
Merge "Skin: Only load jquery.makeCollapsible if needed"

5 years agoMerge "Skin: Preload jquery.tablesorter based on rough heuristics"
jenkins-bot [Wed, 15 Mar 2017 17:57:59 +0000 (17:57 +0000)]
Merge "Skin: Preload jquery.tablesorter based on rough heuristics"

5 years agoMake selectRowCount() (hopefully) work in MSSQL.
Brian Wolff [Mon, 13 Mar 2017 04:29:43 +0000 (04:29 +0000)]
Make selectRowCount() (hopefully) work in MSSQL.

Make table and column aliases be quoted identifiers. This
is needed for MSSQL (rowcount is a reserved word), and is
generally just a good idea.

I have tested this on MySql and SQLite. I don't have
MSSQL installed to test on.

Bug: T158766
Change-Id: Ic63f63d208ba6ad15e77eb634e94855ee2728d05

5 years agoMark WikiRevision methods as public
addshore [Wed, 15 Mar 2017 14:53:19 +0000 (14:53 +0000)]
Mark WikiRevision methods as public

Change-Id: If252103d4850d9c9f0607a225b7d345736658cc7

5 years agoMerge "RCFilters UI: Use data-feature-in-structured-ui in the frontend"
jenkins-bot [Wed, 15 Mar 2017 11:24:45 +0000 (11:24 +0000)]
Merge "RCFilters UI: Use data-feature-in-structured-ui in the frontend"

5 years agoMerge "RCFilters UI: Adjust popup positioning again"
jenkins-bot [Wed, 15 Mar 2017 11:23:53 +0000 (11:23 +0000)]
Merge "RCFilters UI: Adjust popup positioning again"

5 years agoMerge "mw.loader: Add tests for mw.loader StringSet fallback"
jenkins-bot [Wed, 15 Mar 2017 08:22:01 +0000 (08:22 +0000)]
Merge "mw.loader: Add tests for mw.loader StringSet fallback"

5 years agoMerge "rv accidental inclusion of debug code in TemplateParser"
jenkins-bot [Wed, 15 Mar 2017 07:19:13 +0000 (07:19 +0000)]
Merge "rv accidental inclusion of debug code in TemplateParser"

5 years agoMerge "Default to CACHE_ACCEL if user skips advanced settings"
jenkins-bot [Wed, 15 Mar 2017 07:01:44 +0000 (07:01 +0000)]
Merge "Default to CACHE_ACCEL if user skips advanced settings"

5 years agoDefault to CACHE_ACCEL if user skips advanced settings
Brian Wolff [Wed, 15 Mar 2017 06:35:53 +0000 (06:35 +0000)]
Default to CACHE_ACCEL if user skips advanced settings

In the event user skips advanced settings in the installer, and
CACHE_ACCEL is available, we should default to it. This is already
the default in the event the user goes to advanced settings
since b3dc2fedc5e35015f9c7

Bug: T160495
Change-Id: Icaa2ca4e8eb63254142e837d2a47b6023a8ea0a2

5 years agorv accidental inclusion of debug code in TemplateParser
Brian Wolff [Wed, 15 Mar 2017 04:53:39 +0000 (04:53 +0000)]
rv accidental inclusion of debug code in TemplateParser

Follow up 73e08353fb96f5cbd93c6a7004d91c3d0845b446

Change-Id: I59bcff4334be61977a617a4a8726ae90165530e7

5 years agoMerge "Avoid breaking wikis that were modifying $wgDummyLanguageCodes"
jenkins-bot [Wed, 15 Mar 2017 02:59:07 +0000 (02:59 +0000)]
Merge "Avoid breaking wikis that were modifying $wgDummyLanguageCodes"

5 years agoMerge "Make MessageCache use the immutable text cache during cache rebuilds"
jenkins-bot [Wed, 15 Mar 2017 02:52:21 +0000 (02:52 +0000)]
Merge "Make MessageCache use the immutable text cache during cache rebuilds"

5 years agoMerge "Better path traversal prevention in TemplateParser."
jenkins-bot [Wed, 15 Mar 2017 02:50:32 +0000 (02:50 +0000)]
Merge "Better path traversal prevention in TemplateParser."

5 years agoMerge "mw.widgets.SearchInputWidget: Do not pass `type: 'search'` to TextInputWidget"
jenkins-bot [Tue, 14 Mar 2017 23:49:40 +0000 (23:49 +0000)]
Merge "mw.widgets.SearchInputWidget: Do not pass `type: 'search'` to TextInputWidget"

5 years agoMerge "Add --tidy option to maintenance/parse.php"
jenkins-bot [Tue, 14 Mar 2017 23:23:29 +0000 (23:23 +0000)]
Merge "Add --tidy option to maintenance/parse.php"

5 years agoMerge "Fixing search results percentage width"
jenkins-bot [Tue, 14 Mar 2017 23:07:39 +0000 (23:07 +0000)]
Merge "Fixing search results percentage width"

5 years agoAdd --tidy option to maintenance/parse.php
Subramanya Sastry [Sun, 12 Mar 2017 22:13:51 +0000 (17:13 -0500)]
Add --tidy option to maintenance/parse.php

Change-Id: I6ec08237bd15ee2d824164a0493b7fff9ef312db

5 years agomw.widgets.SearchInputWidget: Do not pass `type: 'search'` to TextInputWidget
Bartosz Dziewoński [Tue, 14 Mar 2017 21:28:16 +0000 (22:28 +0100)]
mw.widgets.SearchInputWidget: Do not pass `type: 'search'` to TextInputWidget

Causes deprecation warnings.

Most of this code is copy-pasted from OO.ui.SearchInputWidget.

Bug: T148471
Change-Id: I81d52ba938a8b90c5d2c173f1f2682d9e3300e43

5 years agoFixing search results percentage width
Jan Drewniak [Mon, 27 Feb 2017 12:24:27 +0000 (13:24 +0100)]
Fixing search results percentage width

The width of search results on SpecialSearch
page was set to 60% to accomodate the interwiki
results sidebar. As seen on:

This modification should be moved to the
interwikiwidget.styles.less file so it doesn't
interfere with results when the intwiki
widget is not active.

Bug: T159806
Change-Id: Ib9bdc501c8b0eccbcc84abe399a38d10c9a5d20f

5 years agoMerge "Don't use $this as a function argument"
jenkins-bot [Tue, 14 Mar 2017 21:08:27 +0000 (21:08 +0000)]
Merge "Don't use $this as a function argument"

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Tue, 14 Mar 2017 20:59:01 +0000 (21:59 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: I700258b10dc880529bb6f37c7a31b54b765310ef

5 years agoRevert "[search] Remove more dead code"
Erik Bernhardson [Tue, 14 Mar 2017 20:10:23 +0000 (13:10 -0700)]
Revert "[search] Remove more dead code"

This reverts commit 1525f6cd45e47c4e9623da234a1d55f862b39498.

This should be functionally equivilent to what was being done
before. When go is triggered but does not cause a redirect the
hook is called. Nothing is done with the result of the hook, same
as before.

Not going to bother deprecating, it doesn't particularly hurt the
architecture in any way, it was removed for being what appeared as dead
code due to a long removed feature. There are apparently a few usages of
this in extensions that may or may not work with recent releases of

Bug: T160441
Change-Id: I368dec79431fbcc8d04f95afed8bbc7262a2e5de

5 years agoMake sure Swift store operations close the source file handle
Aaron Schulz [Thu, 9 Mar 2017 02:51:27 +0000 (18:51 -0800)]
Make sure Swift store operations close the source file handle

Bug: T159607
Change-Id: I9a8907a20ba83f33cc5fc96bc15a1728770f656a

5 years agopostEdit: Only call mw.cookie.get() if needed
Timo Tijhof [Wed, 8 Mar 2017 04:57:16 +0000 (20:57 -0800)]
postEdit: Only call mw.cookie.get() if needed

Avoid synchronous document.cookie reads unconditionally during page load.
At least avoid the read where it isn't needed, such as non-view actions
and special pages.

Ideally this would happen in mw.requestIdleCallback, but unfurtunately
various extensions have a fragile dependency on reading mw.config
wgPostEdit at initialitation time which would likely fail if this is no
longer set synchronously. To be revisited...

Change-Id: Ib655bf6507333c1a9845a05eb436dca522efbab7

5 years agoBetter path traversal prevention in TemplateParser.
Brian Wolff [Tue, 14 Mar 2017 04:01:09 +0000 (04:01 +0000)]
Better path traversal prevention in TemplateParser.

In practise this probably doesn't matter, since template names
are not user controlled, and php isn't stupid enough to fall for
tricks with nulls (afaict). Nonetheless, the code from Title is
only meant to prevent url traversal, it is not meant to prevent
file system path traversal.

Change-Id: Id690576326d03744acc8fbbe78f4b7a4b4c04d7e

5 years agoMerge "Add image.img_user, image.img_timestamp index"
jenkins-bot [Tue, 14 Mar 2017 17:53:51 +0000 (17:53 +0000)]
Merge "Add image.img_user, image.img_timestamp index"

5 years agoMerge "Minor fixes for second sister search AB test"
jenkins-bot [Tue, 14 Mar 2017 16:12:38 +0000 (16:12 +0000)]
Merge "Minor fixes for second sister search AB test"

5 years agoMerge "Make the title of Special:UserRights more generic"
jenkins-bot [Tue, 14 Mar 2017 15:27:56 +0000 (15:27 +0000)]
Merge "Make the title of Special:UserRights more generic"

5 years agoMerge "Update CREDITS and .mailmap files"
jenkins-bot [Tue, 14 Mar 2017 15:09:56 +0000 (15:09 +0000)]
Merge "Update CREDITS and .mailmap files"

5 years agoAdd image.img_user, image.img_timestamp index
Matthias Mullie [Tue, 14 Mar 2017 14:16:48 +0000 (15:16 +0100)]
Add image.img_user, image.img_timestamp index

This will allow searching on user id instead of just the name.
This is how ContribsPager, LogPager, ... all work already.

Bug: T160415
Change-Id: I4db7bd0f917a428f40eb315246f89d49c7ae5b6a

5 years agoMake the title of Special:UserRights more generic
Huji Lee [Tue, 14 Mar 2017 14:23:31 +0000 (10:23 -0400)]
Make the title of Special:UserRights more generic

Bug: T154575
Change-Id: If9899040c88cefeb64a09444ef0f6f42e91ebca6

5 years agoMinor fixes for second sister search AB test
Jan Drewniak [Fri, 10 Mar 2017 13:04:27 +0000 (14:04 +0100)]
Minor fixes for second sister search AB test

These are a few minor fixes to improved the
UX of the new sister search sidebar.

- Making the link color on sister search results blue
- Fixing the order of the multimedia search results widget
- added a more explicit 'more results' message instead
of the current '(more)' message.
- aligning the top of the sidebar with the top of the regular
search results.
- fixing a typo in the multimedia widget.

Bug: T158935
Change-Id: Iaae603cc217b7847bebfa61b050b7c86bdd19f14

5 years agoTitle: Remove outdated comment in loadRestrictionsFromRows()
Bartosz Dziewoński [Sat, 11 Mar 2017 21:24:47 +0000 (22:24 +0100)]
Title: Remove outdated comment in loadRestrictionsFromRows()

It has been refactored, and decodeExpiry() is now a method of Database.

Change-Id: I357b303317c877be944474db1331855adb1eb8fd

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Mon, 13 Mar 2017 21:11:02 +0000 (22:11 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: I9eb8d7af838750dbf5141508402d0cae77b3274b

5 years agoUpdate CREDITS and .mailmap files
Eddie Greiner-Petter [Thu, 9 Mar 2017 21:24:43 +0000 (22:24 +0100)]
Update CREDITS and .mailmap files

Update the CREDITS file using maintenance/updateCredits.php script that
uses `git log` to identify contributors. For each added user it was
checked by hand that no user with the same mail adress but an other
"Real Name" was already in the CREDITS file. This is the case with one
entry, prevent this using .mailmap. Also remove (WMDE) at end of real
name in one case using .mailmap file. Also change version name MW 1.28
to 1.29 while at it.

Change-Id: I4c3bb8c3e5f0c1317ea8711efc4f88e571b0c5c6

5 years agoDon't use $this as a function argument
Erik Bernhardson [Mon, 13 Mar 2017 18:12:50 +0000 (11:12 -0700)]
Don't use $this as a function argument

PHP 7.1 adds the limitation that $this cannot be used as a function
parameter. Ensure forward compatability by renaming the parameters.

Bug: T160144
Change-Id: I33d2ab1ffeeeb32e3a467cc146ee8feef0255258

5 years agoMerge "Drop index oi_name_archive_name on table oldimage"
jenkins-bot [Mon, 13 Mar 2017 05:19:57 +0000 (05:19 +0000)]
Merge "Drop index oi_name_archive_name on table oldimage"

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Sun, 12 Mar 2017 20:59:32 +0000 (21:59 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: I5d800846ef2aa196635559493dbc1b8acb3802b5

5 years agoMerge "Fix mistake in ObjectCache doc"
jenkins-bot [Sun, 12 Mar 2017 07:15:28 +0000 (07:15 +0000)]
Merge "Fix mistake in ObjectCache doc"

5 years agoMake infused and non-infused DateInputWidget consistent
Geoffrey Mon [Wed, 8 Mar 2017 03:18:45 +0000 (22:18 -0500)]
Make infused and non-infused DateInputWidget consistent

* Infused DateInputWidget should inherit from TextInputWidget to match the
  non-infused version
* Adjust CSS so that the non-infused version looks approx. the same

Bug: T120733
Change-Id: I8625fee07385b5f9afe3e22f876e11d22832be86

5 years agoRCFilters UI: Use data-feature-in-structured-ui in the frontend
Roan Kattouw [Sat, 11 Mar 2017 01:37:02 +0000 (17:37 -0800)]
RCFilters UI: Use data-feature-in-structured-ui in the frontend

This allows us to remove a bunch of hacky code.

Change-Id: I282cad16df10da801a991967f44f3c4a0c88a225

5 years agoMerge "Back-end of new RecentChanges page, refactoring"
jenkins-bot [Sat, 11 Mar 2017 01:55:14 +0000 (01:55 +0000)]
Merge "Back-end of new RecentChanges page, refactoring"

5 years agoBack-end of new RecentChanges page, refactoring
Matthew Flaschen [Tue, 14 Feb 2017 07:55:37 +0000 (02:55 -0500)]
Back-end of new RecentChanges page, refactoring

Generate old RC, Related changes (it was already displayed and working
on 'Related changes' before this change), and Watchlist/etc. and data
for new UI from back-end.

This moves everything used for defining the old (unstructured) and new
(structured) filters into unified objects, ChangesListFilter and
ChangesListFilterGroup (and sub-classes).

This includes the query logic (see below) and logic for adding
CSS attribution classes.

This is a breaking change (for subclasses of ChangesListSpecialpage)
due to the signature (and name) change of buildMainQueryConds and
doMainQuery.  An alternative that I don't think is a breaking change
would be to put the filter->DB logic in runMainQueryHook, but then it's
doing more than just running a hook.

This is because it used to only build $conds here, but it's clear from
filterOnUserExperienceLevel filters need more than this.  I added all
the DB parameters from the hook, but this could be debated.

I have an checked and fixed the WMF-deployed extensions affected by

Other than that, there should be full back-compat (including legacy
filters not using the new system).

* add hidepatrolled/hideunpatrolled to new UI.

* Move userExpLevel from RC to ChangesListSpecialPage.  Although for
now the structured UI only displays on RC anyway, when it displays on
watchlist, it seems we'll want userExpLevel there.

  Change this to make 'all' exclude unregistered users.

* Don't have front-end convert none-selected to 'all' on string_options.

* Needs the hideanons/hideliu special redirect to be done before this
is merged (T151873)

Bug: T152754
Bug: T152797
Change-Id: Iec2d82f6a830403d1c948a280efa58992e0cdee7

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Fri, 10 Mar 2017 20:53:16 +0000 (21:53 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: I6e0a0fa411473a40ebae5035fd559f37a36fff52

5 years agoRCFilters UI: Adjust popup positioning again
Roan Kattouw [Fri, 10 Mar 2017 18:32:53 +0000 (10:32 -0800)]
RCFilters UI: Adjust popup positioning again

We should really change this to properly
align to the bottom of the text box, rather than
continuing to tweak a margin-top value.

Change-Id: Ic86c59a1726fa6e0ffd888a5e12b177f1d6fcfa5

5 years agoFix mistake in ObjectCache doc
Amir Sarabadani [Fri, 10 Mar 2017 09:42:43 +0000 (13:12 +0330)]
Fix mistake in ObjectCache doc

Change-Id: Iafe3c460ca462aa160cfea6769fd78f8b023548c

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Thu, 9 Mar 2017 21:47:22 +0000 (22:47 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: I7e25a8afe355bce65359c162b9384d243c67cebd

5 years agoMerge "composer.json: Make ext-curl a suggested package for MediaWiki core"
jenkins-bot [Thu, 9 Mar 2017 21:40:13 +0000 (21:40 +0000)]
Merge "composer.json: Make ext-curl a suggested package for MediaWiki core"

5 years agoMerge "Allow fields to define their own merge strategy via callback."
jenkins-bot [Thu, 9 Mar 2017 21:32:46 +0000 (21:32 +0000)]
Merge "Allow fields to define their own merge strategy via callback."

5 years agocomposer.json: Make ext-curl a suggested package for MediaWiki core
Derk-Jan Hartman [Thu, 9 Mar 2017 16:26:49 +0000 (17:26 +0100)]
composer.json: Make ext-curl a suggested package for MediaWiki core

curl is the preferred HTTP implementation as far as I'm a aware and the
only implementation used by MultiHttpClient, a requirement for
something like VisualEditor

Change-Id: I40a015339d4a3f92cfadcd92dfd70425639d0412

5 years agomw.special.apisandbox: Prevent text fields from collapsing into nothingness
Bartosz Dziewoński [Thu, 9 Mar 2017 16:52:04 +0000 (17:52 +0100)]
mw.special.apisandbox: Prevent text fields from collapsing into nothingness

Change-Id: Ib0d5cf6a227e1e03442e54db6fdacad272c53ed9

5 years agoMerge "Remove unused old messages for user login and signup"
jenkins-bot [Thu, 9 Mar 2017 09:40:02 +0000 (09:40 +0000)]
Merge "Remove unused old messages for user login and signup"

5 years agoMerge "Remove unused old logging messages for revision deletion"
jenkins-bot [Thu, 9 Mar 2017 09:36:01 +0000 (09:36 +0000)]
Merge "Remove unused old logging messages for revision deletion"

5 years agoMerge "Do not use real message names in 'All_system_messages' preprocessor test"
jenkins-bot [Thu, 9 Mar 2017 09:34:29 +0000 (09:34 +0000)]
Merge "Do not use real message names in 'All_system_messages' preprocessor test"

5 years agoMake masterPosWait() error clearer
Aaron Schulz [Thu, 9 Mar 2017 05:16:00 +0000 (21:16 -0800)]
Make masterPosWait() error clearer

Change-Id: I86706b2c4167fba897c56235072675b66ed06634

5 years agoMake MessageCache use the immutable text cache during cache rebuilds
Aaron Schulz [Thu, 9 Mar 2017 04:32:04 +0000 (20:32 -0800)]
Make MessageCache use the immutable text cache during cache rebuilds

Only 1 message typically changed per run, so for wikis using
external storage and with many customized messages, this can
make rebuilds considerably faster.

Bug: T158084
Change-Id: Ib668e69a207e3fbeb7871f2f6a102ff1af567368

5 years agoAvoid breaking wikis that were modifying $wgDummyLanguageCodes
TTO [Thu, 9 Mar 2017 00:12:01 +0000 (00:12 +0000)]
Avoid breaking wikis that were modifying $wgDummyLanguageCodes

Follow-up to If73c74ee87d8235381449cab7dcd9f46b0f23590.

Change-Id: I51b7ecf51860bfddea87fcf7cad17295088e1dd9

5 years agoMerge "Improve sorting on SpecialWanted*-Pages"
jenkins-bot [Thu, 9 Mar 2017 00:25:46 +0000 (00:25 +0000)]
Merge "Improve sorting on SpecialWanted*-Pages"

5 years agoMerge "Add RemexHtml to the list of available Tidy drivers"
jenkins-bot [Wed, 8 Mar 2017 23:33:17 +0000 (23:33 +0000)]
Merge "Add RemexHtml to the list of available Tidy drivers"

5 years agoAdd RemexHtml to the list of available Tidy drivers
Tim Starling [Wed, 8 Mar 2017 23:18:12 +0000 (10:18 +1100)]
Add RemexHtml to the list of available Tidy drivers

Change-Id: I5a87a6ed24ca3ef7c5fdb21e74f9eb410bf74b4c

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Wed, 8 Mar 2017 20:56:28 +0000 (21:56 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: I916d8727a605173281bfebc8c2ef9592d4f87282

5 years agoMerge "Break up $wgDummyLanguageCodes"
jenkins-bot [Wed, 8 Mar 2017 20:46:46 +0000 (20:46 +0000)]
Merge "Break up $wgDummyLanguageCodes"

5 years agoSkin: Only load jquery.makeCollapsible if needed
Timo Tijhof [Wed, 8 Mar 2017 04:48:21 +0000 (20:48 -0800)]
Skin: Only load jquery.makeCollapsible if needed

Currently, module 'jquery.makeCollapsible' is loaded on all pages
regarless of whether the page contains any collapsible elements.

It is required via 'mediawiki.page.ready'. Change this to lazy-loading
when needed only.

However, this lazy-load is discovered very late (after page ready,
after modules ready). To avoid regressing UX with an annoying reflow
of content and a very late hiding of collapsed elements, still
enqueue it in the main module loader by default on pages that
contain collapsible content server-side.

Bug: T159911
Change-Id: I4703ecd52d2d60207ba39108a4b3ef4aa1570965

5 years agoBreak up $wgDummyLanguageCodes
This, that and the other [Thu, 12 Jan 2017 14:17:41 +0000 (01:17 +1100)]
Break up $wgDummyLanguageCodes

$wgDummyLanguageCodes is a set and mapping of different language codes:

* Renamed language codes: ['als' => 'gsw', 'bat-smg' => 'sgs',
                           'be-xold' => 'be-tarask', 'fiu-vro' => 'vro',
                           'roa-rup' => 'rup', 'zh-classical' => 'lzh',
                           'zh-min-nan' => 'nan', 'zh-yue' => 'yue'].
  The old language codes are deprecated because they are invalid but
  should be supported for compatibility reasons for a while.
* Language codes of macro languages, which get mapped to the main
  language: ['bh' => 'bho', 'no' => 'nb'].
* Language variants which get mapped to main language:
  ['simple' => 'en'].
* Internal language codes of the private-use-area which get mapped to
  itself: ['qqq' => 'qqq', 'qqx' => 'qqx']

This is a very strange conglomeration which should get differentiated,
and were split up in the following ways:

* Renamed language codes are available from
* Language codes of macro languages and the variants that are mapped to
  the main language are available as $wgExtraLanguageCodes and are set
  in DefaultSettings.php.
* Internal language codes are set in $wgDummyLanguageCodes in Setup.php.

Change-Id: If73c74ee87d8235381449cab7dcd9f46b0f23590

5 years agoMerge "Add some translations for Western Punjabi (pnb)"
jenkins-bot [Wed, 8 Mar 2017 19:21:09 +0000 (19:21 +0000)]
Merge "Add some translations for Western Punjabi (pnb)"

5 years agoMerge "RCFilters UI: Anchor the highlight popup"
jenkins-bot [Wed, 8 Mar 2017 17:26:05 +0000 (17:26 +0000)]
Merge "RCFilters UI: Anchor the highlight popup"

5 years agoImprove sorting on SpecialWanted*-Pages
Eddie Greiner-Petter [Tue, 21 Feb 2017 12:58:47 +0000 (13:58 +0100)]
Improve sorting on SpecialWanted*-Pages

Change the SpecialWanted*-Pages so that they do sort
1. by the number of links to a site (as is now) and
2. alphabetically for entries which have the same number of links (new)

Bug: T4335
Change-Id: If54cd52b69007ee81af4733a14be3fd893c4abfe

5 years agoRemove unused old messages for user login and signup
Bartosz Dziewoński [Wed, 8 Mar 2017 15:59:24 +0000 (16:59 +0100)]
Remove unused old messages for user login and signup

According to their documentation, these messages are no longer used
since MediaWiki 1.22. They only waste translators' time.

The messages appear to not be used by any skins or extensions
in Wikimedia version control.

Change-Id: I4b8e91558654b5f9006ed44bad6971237f057d07

5 years agoRemove unused old logging messages for revision deletion
Bartosz Dziewoński [Wed, 8 Mar 2017 15:37:57 +0000 (16:37 +0100)]
Remove unused old logging messages for revision deletion

Per T20578, change a9c243b7b5289dad204278dbe7ed571fd914e395 (r97044)
has replaced these messages with a new set that doesn't rely on
"lego" concatenation. But the old messages were never removed.
Some were blacklisted on Translatewiki, but others continue to
waste translators' time.

The messages appear to not be used by any skins or extensions
in Wikimedia version control.

| Deleted old messages           | Replacements in current system |
| revdelete-logentry             | logentry-delete-revision       |
| revdelete-log-message          |                                |
| logdelete-logentry             | logentry-delete-event          |
| logdelete-log-message          |                                |
| revdelete-hid                  |  revdelete-content-hid         |
| revdelete-unhid                |  revdelete-content-unhid       |
|                                |  revdelete-summary-hid         |
| revdelete-content              |  revdelete-summary-unhid       |
| revdelete-summary              |  revdelete-uname-hid           |
| revdelete-uname                |  revdelete-uname-unhid         |

Change-Id: I27c616ca1aaca3058ad48753f5e4bfc64a71636e