From: Stephane Bisson Date: Mon, 16 Oct 2017 11:09:55 +0000 (-0400) Subject: RCFilters: Don't let new params filter out old page X-Git-Tag: 1.31.0-rc.0~1740^2 X-Git-Url: http://git.cyclocoop.org/%22.%24image2.%22?a=commitdiff_plain;h=4b82dc1beeda223c44dbff5b7f143c59fd794d7a;p=lhc%2Fweb%2Fwiklou.git RCFilters: Don't let new params filter out old page Bug: T177884 Change-Id: Id0ace30b837cf6c5fa7159aa40d80392187c4e16 --- diff --git a/includes/changes/ChangesListStringOptionsFilterGroup.php b/includes/changes/ChangesListStringOptionsFilterGroup.php index 59efd82bca..2d1521d5d0 100644 --- a/includes/changes/ChangesListStringOptionsFilterGroup.php +++ b/includes/changes/ChangesListStringOptionsFilterGroup.php @@ -242,4 +242,14 @@ class ChangesListStringOptionsFilterGroup extends ChangesListFilterGroup { return $output; } + + /** + * Check if this filter group is currently active + * + * @param {boolean} $isStructuredUI Is structured filters UI current enabled + */ + public function isActive( $isStructuredUI ) { + // STRING_OPTIONS filter groups are exclusively active on Structured UI + return $isStructuredUI; + } } diff --git a/includes/specialpage/ChangesListSpecialPage.php b/includes/specialpage/ChangesListSpecialPage.php index 20fd06a52c..3f45250508 100644 --- a/includes/specialpage/ChangesListSpecialPage.php +++ b/includes/specialpage/ChangesListSpecialPage.php @@ -1295,8 +1295,10 @@ abstract class ChangesListSpecialPage extends SpecialPage { // URL parameters can be per-group, like 'userExpLevel', // or per-filter, like 'hideminor'. if ( $filterGroup->isPerGroupRequestParameter() ) { - $filterGroup->modifyQuery( $dbr, $this, $tables, $fields, $conds, - $query_options, $join_conds, $opts[$filterGroup->getName()] ); + if ( $filterGroup->isActive( $isStructuredUI ) ) { + $filterGroup->modifyQuery( $dbr, $this, $tables, $fields, $conds, + $query_options, $join_conds, $opts[$filterGroup->getName()] ); + } } else { foreach ( $filterGroup->getFilters() as $filter ) { if ( $filter->isActive( $opts, $isStructuredUI ) ) { diff --git a/tests/phpunit/includes/specialpage/ChangesListSpecialPageTest.php b/tests/phpunit/includes/specialpage/ChangesListSpecialPageTest.php index d96758892e..5a0834a651 100644 --- a/tests/phpunit/includes/specialpage/ChangesListSpecialPageTest.php +++ b/tests/phpunit/includes/specialpage/ChangesListSpecialPageTest.php @@ -15,6 +15,13 @@ use Wikimedia\TestingAccessWrapper; * @covers ChangesListSpecialPage */ class ChangesListSpecialPageTest extends AbstractChangesListSpecialPageTestCase { + public function setUp() { + parent::setUp(); + $this->setMwGlobals( [ + 'wgStructuredChangeFiltersShowPreference' => true, + ] ); + } + protected function getPage() { $mock = $this->getMockBuilder( ChangesListSpecialPage::class ) ->setConstructorArgs(