Merge "Absolutely position "legend" on grouped results"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Tue, 5 Dec 2017 17:24:48 +0000 (17:24 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Tue, 5 Dec 2017 17:24:49 +0000 (17:24 +0000)
1  2 
includes/specialpage/ChangesListSpecialPage.php

@@@ -39,18 -39,6 +39,18 @@@ abstract class ChangesListSpecialPage e
         */
        protected static $savedQueriesPreferenceName;
  
 +      /**
 +       * Preference name for 'days'. Subclasses should override this.
 +       * @var string
 +       */
 +      protected static $daysPreferenceName;
 +
 +      /**
 +       * Preference name for 'limit'. Subclasses should override this.
 +       * @var string
 +       */
 +      protected static $limitPreferenceName;
 +
        /** @var string */
        protected $rcSubpage;
  
                                'wgStructuredChangeFiltersSavedQueriesPreferenceName',
                                static::$savedQueriesPreferenceName
                        );
 +                      $out->addJsConfigVars(
 +                              'wgStructuredChangeFiltersLimitPreferenceName',
 +                              static::$limitPreferenceName
 +                      );
 +                      $out->addJsConfigVars(
 +                              'wgStructuredChangeFiltersDaysPreferenceName',
 +                              static::$daysPreferenceName
 +                      );
  
                        $out->addJsConfigVars(
                                'StructuredChangeFiltersLiveUpdatePollingRate',
                # Collapsible
                $collapsedState = $this->getRequest()->getCookie( 'changeslist-state' );
                $collapsedClass = $collapsedState === 'collapsed' ? ' mw-collapsed' : '';
+               # Enhanced mode
+               $enhancedMode = $this->getRequest()->getBool( 'enhanced', $user->getOption( 'usenewrc' ) );
+               $enhancedClass = $enhancedMode ? ' mw-enhanced' : '';
+               $legendClasses = $collapsedClass . $enhancedClass;
                $legend =
-                       '<div class="mw-changeslist-legend mw-collapsible' . $collapsedClass . '">' .
+                       '<div class="mw-changeslist-legend mw-collapsible' . $legendClasses . '">' .
                                $legendHeading .
                                '<div class="mw-collapsible-content">' . $legend . '</div>' .
                        '</div>';
                        return true;
                }
  
 -              if ( $this->getConfig()->get( 'StructuredChangeFiltersShowPreference' ) ) {
 -                      return !$this->getUser()->getOption( 'rcenhancedfilters-disable' );
 -              } else {
 -                      return $this->getUser()->getOption( 'rcenhancedfilters' );
 -              }
 +              return self::checkStructuredFilterUiEnabled(
 +                      $this->getConfig(),
 +                      $this->getUser()
 +              );
        }
  
        /**
                }
        }
  
 -      abstract function getDefaultLimit();
 +      /**
 +       * Static method to check whether StructuredFilter UI is enabled for the given user
 +       *
 +       * @since 1.31
 +       * @param Config $config
 +       * @param User $user User object
 +       * @return bool
 +       */
 +      public static function checkStructuredFilterUiEnabled( Config $config, User $user ) {
 +              if ( $config->get( 'StructuredChangeFiltersShowPreference' ) ) {
 +                      return !$user->getOption( 'rcenhancedfilters-disable' );
 +              } else {
 +                      return $user->getOption( 'rcenhancedfilters' );
 +              }
 +      }
 +
 +      /**
 +       * Get the default value of the number of changes to display when loading
 +       * the result set.
 +       *
 +       * @since 1.30
 +       * @return int
 +       */
 +      public function getDefaultLimit() {
 +              return $this->getUser()->getIntOption( static::$limitPreferenceName );
 +      }
  
        /**
         * Get the default value of the number of days to display when loading
         * the result set.
         * Supports fractional values, and should be cast to a float.
         *
 +       * @since 1.30
         * @return float
         */
 -      abstract function getDefaultDays();
 +      public function getDefaultDays() {
 +              return floatval( $this->getUser()->getOption( static::$daysPreferenceName ) );
 +      }
  }