<?php
+use Wikimedia\Rdbms\IDatabase;
+
/**
* If the group is active, any unchecked filters will
* translate to hide parameters in the URL. E.g. if 'Human (not bot)' is checked,
}
/**
- * @inheritdoc
+ * @inheritDoc
*/
protected function createFilter( array $filterDefinition ) {
return new ChangesListBooleanFilter( $filterDefinition );
/**
* Registers a filter in this group
*
- * @param ChangesListBooleanFilter $filter ChangesListBooleanFilter
+ * @param ChangesListBooleanFilter $filter
*/
public function registerFilter( ChangesListBooleanFilter $filter ) {
$this->filters[$filter->getName()] = $filter;
}
/**
- * @inheritdoc
+ * @inheritDoc
+ */
+ public function modifyQuery( IDatabase $dbr, ChangesListSpecialPage $specialPage,
+ &$tables, &$fields, &$conds, &$query_options, &$join_conds,
+ FormOptions $opts, $isStructuredFiltersEnabled
+ ) {
+ /** @var ChangesListBooleanFilter $filter */
+ foreach ( $this->getFilters() as $filter ) {
+ if ( $filter->isActive( $opts, $isStructuredFiltersEnabled ) ) {
+ $filter->modifyQuery( $dbr, $specialPage, $tables, $fields, $conds,
+ $query_options, $join_conds );
+ }
+ }
+ }
+
+ /**
+ * @inheritDoc
*/
- public function isPerGroupRequestParameter() {
- return false;
+ public function addOptions( FormOptions $opts, $allowDefaults, $isStructuredFiltersEnabled ) {
+ /** @var ChangesListBooleanFilter $filter */
+ foreach ( $this->getFilters() as $filter ) {
+ $defaultValue = $allowDefaults ? $filter->getDefault( $isStructuredFiltersEnabled ) : false;
+ $opts->add( $filter->getName(), $defaultValue );
+ }
}
}