X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=resources%2Fsrc%2Fmediawiki.rcfilters%2Fmw.rcfilters.UriProcessor.js;h=a1ef981aae20b37180eaf4d57b823e4045007653;hp=ba61ba9f60f3b40f3f78fa587e7747e2fdc70b71;hb=956c2430c7b8fceb289aaeacc8d6c2e0def2c56e;hpb=155d1f91d1dd1924e3738618af1931fca959919f diff --git a/resources/src/mediawiki.rcfilters/mw.rcfilters.UriProcessor.js b/resources/src/mediawiki.rcfilters/mw.rcfilters.UriProcessor.js index ba61ba9f60..a1ef981aae 100644 --- a/resources/src/mediawiki.rcfilters/mw.rcfilters.UriProcessor.js +++ b/resources/src/mediawiki.rcfilters/mw.rcfilters.UriProcessor.js @@ -71,7 +71,34 @@ * @param {Object} [uriQuery] URI query */ mw.rcfilters.UriProcessor.prototype.updateModelBasedOnQuery = function ( uriQuery ) { - var parameters = this._getNormalizedQueryParams( uriQuery || new mw.Uri().query ); + var parameters; + + uriQuery = uriQuery || new mw.Uri().query; + + // For arbitrary numeric single_option values, check the uri and see if it's beyond the limit + $.each( this.filtersModel.getFilterGroups(), function ( groupName, groupModel ) { + if ( + groupModel.getType() === 'single_option' && + groupModel.isAllowArbitrary() + ) { + if ( + groupModel.getMaxValue() !== null && + uriQuery[ groupName ] > groupModel.getMaxValue() + ) { + // Change the value to the actual max value + uriQuery[ groupName ] = String( groupModel.getMaxValue() ); + } else if ( + groupModel.getMinValue() !== null && + uriQuery[ groupName ] < groupModel.getMinValue() + ) { + // Change the value to the actual min value + uriQuery[ groupName ] = String( groupModel.getMinValue() ); + } + } + } ); + + // Normalize + parameters = this._getNormalizedQueryParams( uriQuery ); // Update filter states this.filtersModel.toggleFiltersSelected(