5use InvalidArgumentException;
24 public const TYPE =
'send_unselected_if_any';
49 $groupDefinition[
'isFullCoverage'] =
true;
52 parent::__construct( $groupDefinition );
67 if ( !is_array( $defaultValue ) ) {
68 throw new InvalidArgumentException(
69 "Can't set the default of filter options group \"{$this->getName()}\"" .
70 ' to a value of type "' . gettype( $defaultValue ) .
': expected bool[]' );
72 foreach ( $defaultValue as
$name => $value ) {
73 if ( !is_bool( $value ) ) {
74 throw new InvalidArgumentException(
75 "Can't set the default of filter option \"{$this->getName()}/$name\"" .
76 ' to a value of type "' . gettype( $value ) .
': expected bool' );
89 $this->filters[$filter->
getName()] = $filter;
96 &$tables, &$fields, &$conds, &$query_options, &$join_conds,
100 if ( $filter->isActive( $opts, $isStructuredFiltersEnabled ) ) {
101 $filter->modifyQuery( $dbr, $specialPage, $tables, $fields, $conds,
102 $query_options, $join_conds );
112 $defaultValue = $allowDefaults ? $filter->getDefault( $isStructuredFiltersEnabled ) :
false;
113 $opts->
add( $filter->getName(), $defaultValue );
119class_alias( ChangesListBooleanFilterGroup::class,
'ChangesListBooleanFilterGroup' );
Special page which uses a ChangesList to show query results.