Merge "RCFilters: Adjust server default variable names for limit/days"
[lhc/web/wiklou.git] / resources / src / mediawiki.rcfilters / mw.rcfilters.Controller.js
index f07d3f1..b489f4e 100644 (file)
@@ -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