From 75a32fb5ec170fc74473423b6c81f58f8531da31 Mon Sep 17 00:00:00 2001 From: Stephane Bisson Date: Wed, 5 Apr 2017 09:50:50 -0400 Subject: [PATCH] RC Filters: Disable defaults for legacy filters in structured UI Some legacy filters are replaced in structured UI by new filters. It's important that their default value doesn't cause them to filter the results when they are not even visible to the user. Bug: T162158 Change-Id: I3ff09164bbc0d14283302aa37bdee2c7ef9f5eb3 --- includes/changes/ChangesListBooleanFilter.php | 9 +++++++-- includes/specialpage/ChangesListSpecialPage.php | 3 ++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/includes/changes/ChangesListBooleanFilter.php b/includes/changes/ChangesListBooleanFilter.php index 4117a110cf..851d173b60 100644 --- a/includes/changes/ChangesListBooleanFilter.php +++ b/includes/changes/ChangesListBooleanFilter.php @@ -136,10 +136,15 @@ class ChangesListBooleanFilter extends ChangesListFilter { } /** + * Get the default value + * + * @param bool $structuredUI Are we currently showing the structured UI * @return bool|null Default value */ - public function getDefault() { - return $this->defaultValue; + public function getDefault( $structuredUI = false ) { + return $this->isReplacedInStructuredUi && $structuredUI ? + false : + $this->defaultValue; } /** diff --git a/includes/specialpage/ChangesListSpecialPage.php b/includes/specialpage/ChangesListSpecialPage.php index ad9a248ec6..d9472afebe 100644 --- a/includes/specialpage/ChangesListSpecialPage.php +++ b/includes/specialpage/ChangesListSpecialPage.php @@ -707,6 +707,7 @@ abstract class ChangesListSpecialPage extends SpecialPage { public function getDefaultOptions() { $config = $this->getConfig(); $opts = new FormOptions(); + $structuredUI = $this->getUser()->getOption( 'rcenhancedfilters' ); // Add all filters foreach ( $this->filterGroups as $filterGroup ) { @@ -716,7 +717,7 @@ abstract class ChangesListSpecialPage extends SpecialPage { $opts->add( $filterGroup->getName(), $filterGroup->getDefault() ); } else { foreach ( $filterGroup->getFilters() as $filter ) { - $opts->add( $filter->getName(), $filter->getDefault() ); + $opts->add( $filter->getName(), $filter->getDefault( $structuredUI ) ); } } } -- 2.20.1