RCFilters: Preserve collapsed state and adjust display
[lhc/web/wiklou.git] / includes / specialpage / ChangesListSpecialPage.php
index 831644e..58944b4 100644 (file)
@@ -57,6 +57,12 @@ abstract class ChangesListSpecialPage extends SpecialPage {
         */
        protected static $limitPreferenceName;
 
+       /**
+        * Preference name for collapsing the active filter display. Subclasses should override this.
+        * @var string
+        */
+       protected static $collapsedPreferenceName;
+
        /** @var string */
        protected $rcSubpage;
 
@@ -779,9 +785,13 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                        foreach ( $jsData['messageKeys'] as $key ) {
                                $messages[$key] = $this->msg( $key )->plain();
                        }
-
                        $out->addBodyClasses( 'mw-rcfilters-enabled' );
 
+                       $collapsed = $this->getUser()->getBoolOption( static::$collapsedPreferenceName );
+                       if ( $collapsed ) {
+                               $out->addBodyClasses( 'mw-rcfilters-collapsed' );
+                       }
+
                        $out->addHTML(
                                ResourceLoader::makeInlineScript(
                                        ResourceLoader::makeMessageSetScript( $messages ),
@@ -790,6 +800,7 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                        );
 
                        $out->addJsConfigVars( 'wgStructuredChangeFilters', $jsData['groups'] );
+                       $out->addJsConfigVars( 'wgStructuredChangeFiltersCollapsedState', $collapsed );
 
                        $out->addJsConfigVars(
                                'wgRCFiltersChangeTags',
@@ -818,6 +829,10 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                                'wgStructuredChangeFiltersDaysPreferenceName',
                                static::$daysPreferenceName
                        );
+                       $out->addJsConfigVars(
+                               'wgStructuredChangeFiltersCollapsedPreferenceName',
+                               static::$collapsedPreferenceName
+                       );
 
                        $out->addJsConfigVars(
                                'StructuredChangeFiltersLiveUpdatePollingRate',