Make autopatrol third option in rc_patrolled and use it in API
[lhc/web/wiklou.git] / includes / changes / ChangesListBooleanFilter.php
index 961cb48..f37ed2d 100644 (file)
  * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @license GPL 2+
  * @author Matthew Flaschen
  */
 
 use Wikimedia\Rdbms\IDatabase;
 
 /**
- * An individual filter in a boolean group
+ * Represents a hide-based boolean filter (used on ChangesListSpecialPage and descendants)
  *
  * @since 1.29
  */
@@ -73,13 +72,6 @@ class ChangesListBooleanFilter extends ChangesListFilter {
         */
        protected $activeValue;
 
-       /**
-        * Whether this filter is visible somewhere (legacy form or structured UI).
-        *
-        * @var bool $isVisible
-        */
-       protected $isVisible;
-
        /**
         * Create a new filter with the specified configuration.
         *
@@ -106,8 +98,6 @@ class ChangesListBooleanFilter extends ChangesListFilter {
         * * $filterDefinition['default'] bool Default
         * * $filterDefinition['activeValue'] bool This filter is considered active when
         *     its value is equal to its activeValue. Default is true.
-        * * $filterDefinition['isVisible'] bool This filter is visible in the legacy form or
-        *     structured UI. Default is true.
         * * $filterDefinition['priority'] int Priority integer.  Higher value means higher
         *     up in the group's filter list.
         * * $filterDefinition['queryCallable'] callable Callable accepting parameters, used
@@ -136,7 +126,7 @@ class ChangesListBooleanFilter extends ChangesListFilter {
                }
 
                if ( isset( $filterDefinition['default'] ) ) {
-                       $this->defaultValue = $filterDefinition['default'];
+                       $this->setDefault( $filterDefinition['default'] );
                } else {
                        throw new MWException( 'You must set a default' );
                }
@@ -150,12 +140,6 @@ class ChangesListBooleanFilter extends ChangesListFilter {
                } else {
                        $this->activeValue = true;
                }
-
-               if ( isset( $filterDefinition['isVisible'] ) ) {
-                       $this->isVisible = $filterDefinition['isVisible'];
-               } else {
-                       $this->isVisible = true;
-               }
        }
 
        /**
@@ -171,12 +155,14 @@ class ChangesListBooleanFilter extends ChangesListFilter {
        }
 
        /**
-        * Sets default
+        * Sets default.  It must be a boolean.
+        *
+        * It will be coerced to boolean.
         *
         * @param bool $defaultValue
         */
        public function setDefault( $defaultValue ) {
-               $this->defaultValue = $defaultValue;
+               $this->defaultValue = (bool)$defaultValue;
        }
 
        /**
@@ -251,9 +237,12 @@ class ChangesListBooleanFilter extends ChangesListFilter {
         */
        public function isSelected( FormOptions $opts ) {
                return !$opts[ $this->getName() ] &&
-                       array_filter( $this->getSiblings(), function ( $sibling ) use ( $opts ) {
-                               return $opts[ $sibling->getName() ];
-                       } );
+                       array_filter(
+                               $this->getSiblings(),
+                               function ( ChangesListBooleanFilter $sibling ) use ( $opts ) {
+                                       return $opts[ $sibling->getName() ];
+                               }
+                       );
        }
 
        /**
@@ -268,11 +257,4 @@ class ChangesListBooleanFilter extends ChangesListFilter {
 
                return $opts[ $this->getName() ] === $this->activeValue;
        }
-
-       /**
-        * @return bool Whether this filter is visible anywhere
-        */
-       public function isVisible() {
-               return $this->isVisible;
-       }
 }