X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fchanges%2FChangesListStringOptionsFilterGroup.php;h=775fd76d1eda932780a610b37e1db9ff3a0b0aea;hb=c8257fff63295f75755bb0624ceb9b600f692585;hp=59efd82bcab8c547fbc5fd0fcbc3ce229af87905;hpb=a70c4a4c466db5663b845889cacdef00d7200760;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/changes/ChangesListStringOptionsFilterGroup.php b/includes/changes/ChangesListStringOptionsFilterGroup.php index 59efd82bca..775fd76d1e 100644 --- a/includes/changes/ChangesListStringOptionsFilterGroup.php +++ b/includes/changes/ChangesListStringOptionsFilterGroup.php @@ -35,7 +35,6 @@ use Wikimedia\Rdbms\IDatabase; * * @since 1.29 */ - class ChangesListStringOptionsFilterGroup extends ChangesListFilterGroup { /** * Type marker, used by JavaScript @@ -128,13 +127,6 @@ class ChangesListStringOptionsFilterGroup extends ChangesListFilterGroup { } } - /** - * @inheritDoc - */ - public function isPerGroupRequestParameter() { - return true; - } - /** * Sets default of filter group. * @@ -170,23 +162,17 @@ class ChangesListStringOptionsFilterGroup extends ChangesListFilterGroup { } /** - * Modifies the query to include the filter group. - * - * The modification is only done if the filter group is in effect. This means that - * one or more valid and allowed filters were selected. - * - * @param IDatabase $dbr Database, for addQuotes, makeList, and similar - * @param ChangesListSpecialPage $specialPage Current special page - * @param array &$tables Array of tables; see IDatabase::select $table - * @param array &$fields Array of fields; see IDatabase::select $vars - * @param array &$conds Array of conditions; see IDatabase::select $conds - * @param array &$query_options Array of query options; see IDatabase::select $options - * @param array &$join_conds Array of join conditions; see IDatabase::select $join_conds - * @param string $value URL parameter value + * @inheritDoc */ public function modifyQuery( IDatabase $dbr, ChangesListSpecialPage $specialPage, - &$tables, &$fields, &$conds, &$query_options, &$join_conds, $value + &$tables, &$fields, &$conds, &$query_options, &$join_conds, + FormOptions $opts, $isStructuredFiltersEnabled ) { + if ( !$this->isActive( $isStructuredFiltersEnabled ) ) { + return; + } + + $value = $opts[ $this->getName() ]; $allowedFilterNames = []; foreach ( $this->filters as $filter ) { $allowedFilterNames[] = $filter->getName(); @@ -242,4 +228,22 @@ class ChangesListStringOptionsFilterGroup extends ChangesListFilterGroup { return $output; } + + /** + * @inheritDoc + */ + public function addOptions( FormOptions $opts, $allowDefaults, $isStructuredFiltersEnabled ) { + $opts->add( $this->getName(), $allowDefaults ? $this->getDefault() : '' ); + } + + /** + * Check if this filter group is currently active + * + * @param bool $isStructuredUI Is structured filters UI current enabled + * @return bool + */ + private function isActive( $isStructuredUI ) { + // STRING_OPTIONS filter groups are exclusively active on Structured UI + return $isStructuredUI; + } }