Merge "Allow wikilinks in "show/hide <type of change>" labels on Watchlist and Recent...
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Wed, 6 Dec 2017 13:23:47 +0000 (13:23 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Wed, 6 Dec 2017 13:23:47 +0000 (13:23 +0000)
1  2 
includes/specials/SpecialRecentchanges.php
includes/specials/SpecialWatchlist.php

@@@ -33,8 -33,6 +33,8 @@@ use Wikimedia\Rdbms\FakeResultWrapper
  class SpecialRecentChanges extends ChangesListSpecialPage {
  
        protected static $savedQueriesPreferenceName = 'rcfilters-saved-queries';
 +      protected static $daysPreferenceName = 'rcdays'; // Use general RecentChanges preference
 +      protected static $limitPreferenceName = 'rcfilters-limit'; // Use RCFilters-specific preference
  
        private $watchlistFilterGroupDefinition;
  
                        $links[] = Html::rawElement(
                                'span',
                                $attribs,
-                               $this->msg( $msg )->rawParams( $link )->escaped()
+                               $this->msg( $msg )->rawParams( $link )->parse()
                        );
                }
  
                return 60 * 5;
        }
  
 -      function getDefaultLimit() {
 -              return $this->getUser()->getIntOption( 'rclimit' );
 -      }
 +      public function getDefaultLimit() {
 +              $systemPrefValue = $this->getUser()->getIntOption( 'rclimit' );
 +              // Prefer the RCFilters-specific preference if RCFilters is enabled
 +              if ( $this->isStructuredFilterUiEnabled() ) {
 +                      return $this->getUser()->getIntOption( static::$limitPreferenceName, $systemPrefValue );
 +              }
  
 -      function getDefaultDays() {
 -              return floatval( $this->getUser()->getOption( 'rcdays' ) );
 +              // Otherwise, use the system rclimit preference value
 +              return $systemPrefValue;
        }
  }
@@@ -33,8 -33,6 +33,8 @@@ use Wikimedia\Rdbms\IDatabase
   */
  class SpecialWatchlist extends ChangesListSpecialPage {
        protected static $savedQueriesPreferenceName = 'rcfilters-wl-saved-queries';
 +      protected static $daysPreferenceName = 'watchlistdays';
 +      protected static $limitPreferenceName = 'wllimit';
  
        private $maxDays;
  
                }
        }
  
 -      public function isStructuredFilterUiEnabled() {
 -              return $this->getRequest()->getBool( 'rcfilters' ) || (
 -                      $this->getConfig()->get( 'StructuredChangeFiltersOnWatchlist' ) &&
 -                      $this->getUser()->getOption( 'rcenhancedfilters' )
 +      public static function checkStructuredFilterUiEnabled( Config $config, User $user ) {
 +              return (
 +                      $config->get( 'StructuredChangeFiltersOnWatchlist' ) &&
 +                      $user->getOption( 'rcenhancedfilters' )
                );
        }
  
                return Html::rawElement(
                        'span',
                        $attribs,
-                       Xml::checkLabel(
-                               $this->msg( $message, '' )->text(),
-                               $name,
-                               $name,
-                               (int)$value
+                       // not using Html::checkLabel because that would escape the contents
+                       Html::check( $name, (int)$value, [ 'id' => $name ] ) . Html::rawElement(
+                               'label',
+                               $attribs + [ 'for' => $name ],
+                               // <nowiki/> at beginning to avoid messages with "$1 ..." being parsed as pre tags
+                               $this->msg( $message, '<nowiki/>' )->parse()
                        )
                );
        }
                $count = $store->countWatchedItems( $this->getUser() );
                return floor( $count / 2 );
        }
 -
 -      function getDefaultLimit() {
 -              return $this->getUser()->getIntOption( 'wllimit' );
 -      }
 -
 -      function getDefaultDays() {
 -              return floatval( $this->getUser()->getOption( 'watchlistdays' ) );
 -      }
  }