Merge "RCFilters: Adjust server default variable names for limit/days"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Thu, 3 Aug 2017 00:07:36 +0000 (00:07 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 3 Aug 2017 00:07:36 +0000 (00:07 +0000)
1  2 
resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js

@@@ -92,7 -92,7 +92,7 @@@
                // Convert the default from the old preference
                // since the limit preference actually affects more
                // than just the RecentChanges page
 -              limitDefault = Number( mw.user.options.get( 'rcfilters-rclimit', mw.user.options.get( 'rclimit', '50' ) ) );
 +              limitDefault = Number( mw.user.options.get( 'rclimit', '50' ) );
  
                // Add parameter range operations
                views.range = {
                                        allowArbitrary: true,
                                        validate: $.isNumeric,
                                        range: {
 -                                              min: 1,
 +                                              min: 0, // The server normalizes negative numbers to 0 results
                                                max: 1000
                                        },
                                        sortFunc: function ( a, b ) { return Number( a.name ) - Number( b.name ); },
                                        // we should remove all sticky behavior methods completely
                                        // See T172156
                                        // isSticky: true,
-                                       filters: displayConfig.arrayLimit.map( function ( num ) {
+                                       filters: displayConfig.limitArray.map( function ( num ) {
                                                return controller._createFilterDataFromNumber( num, num );
                                        } )
                                },
                                        validate: $.isNumeric,
                                        range: {
                                                min: 0,
-                                               max: displayConfig.maxLimit
+                                               max: displayConfig.maxDays
                                        },
                                        sortFunc: function ( a, b ) { return Number( a.name ) - Number( b.name ); },
                                        numToLabelFunc: function ( i ) {
                                                // Hours (1, 2, 6, 12)
                                                0.04166, 0.0833, 0.25, 0.5
                                        // Days
-                                       ].concat( displayConfig.arrayDays )
+                                       ].concat( displayConfig.daysArray )
                                                .map( function ( num ) {
                                                        return controller._createFilterDataFromNumber(
                                                                num,
         * @param {string|string[]} arbitraryValues An array of arbitrary values to add to the group
         */
        mw.rcfilters.Controller.prototype.addNumberValuesToGroup = function ( groupData, arbitraryValues ) {
 -              var controller = this;
 +              var controller = this,
 +                      normalizeWithinRange = function ( range, val ) {
 +                              if ( val < range.min ) {
 +                                      return range.min; // Min
 +                              } else if ( val >= range.max ) {
 +                                      return range.max; // Max
 +                              }
 +                              return val;
 +                      };
  
                arbitraryValues = Array.isArray( arbitraryValues ) ? arbitraryValues : [ arbitraryValues ];
  
 -              // Normalize the arbitrary values
 +              // Normalize the arbitrary values and the default value for a range
                if ( groupData.range ) {
                        arbitraryValues = arbitraryValues.map( function ( val ) {
 -                              if ( val < 0 ) {
 -                                      return groupData.range.min; // Min
 -                              } else if ( val >= groupData.range.max ) {
 -                                      return groupData.range.max; // Max
 -                              }
 -                              return val;
 +                              return normalizeWithinRange( groupData.range, val );
                        } );
 +
 +                      // Normalize the default, since that's user defined
 +                      if ( groupData.default !== undefined ) {
 +                              groupData.default = String( normalizeWithinRange( groupData.range, groupData.default ) );
 +                      }
                }
  
                // This is only true for single_option group