X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=resources%2Fsrc%2Fmediawiki.rcfilters%2Fdm%2Fmw.rcfilters.dm.SavedQueriesModel.js;h=77d5961a6eb0768ee81eed4cedc134b04196ece6;hb=44a4447bbfdf01fac31993c59bead434379843a2;hp=23f600739f273d19d779fa77a82cba0399599bd5;hpb=20fcae98034d264bdc1979d543c9ebf1f1b4506b;p=lhc%2Fweb%2Fwiklou.git diff --git a/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.SavedQueriesModel.js b/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.SavedQueriesModel.js index 23f600739f..77d5961a6e 100644 --- a/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.SavedQueriesModel.js +++ b/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.SavedQueriesModel.js @@ -119,9 +119,14 @@ isDefault = String( savedQueries.default ) === String( id ); if ( normalizedData && normalizedData.params ) { - // Backwards-compat fix: Remove excluded parameters from + // Backwards-compat fix: Remove sticky parameters from // the given data, if they exist - normalizedData.params = model.filtersModel.removeExcludedParams( normalizedData.params ); + normalizedData.params = model.filtersModel.removeStickyParams( normalizedData.params ); + + // Correct the invert state for effective selection + if ( normalizedData.params.invert && !normalizedData.params.namespace ) { + delete normalizedData.params.invert; + } model.cleanupHighlights( normalizedData ); @@ -226,6 +231,11 @@ } } ); + // Correct the invert state for effective selection + if ( normalizedData.params.invert && !this.filtersModel.areNamespacesEffectivelyInverted() ) { + delete normalizedData.params.invert; + } + // Add item this.addItems( [ new mw.rcfilters.dm.SavedQueryItemModel( @@ -272,6 +282,11 @@ // Minimize before comparison fullQueryComparison = this.filtersModel.getMinimizedParamRepresentation( fullQueryComparison ); + // Correct the invert state for effective selection + if ( fullQueryComparison.invert && !this.filtersModel.areNamespacesEffectivelyInverted() ) { + delete fullQueryComparison.invert; + } + return this.getItems().filter( function ( item ) { return OO.compare( item.getCombinedData(), @@ -296,20 +311,11 @@ /** * Get the full data representation of the default query, if it exists * - * @param {boolean} [excludeHiddenParams] Exclude hidden parameters in the result * @return {Object|null} Representation of the default params if exists. * Null if default doesn't exist or if the user is not logged in. */ - mw.rcfilters.dm.SavedQueriesModel.prototype.getDefaultParams = function ( excludeHiddenParams ) { - var data = ( !mw.user.isAnon() && this.getItemParams( this.getDefault() ) ) || {}; - - if ( excludeHiddenParams ) { - Object.keys( this.filtersModel.getDefaultHiddenParams() ).forEach( function ( paramName ) { - delete data[ paramName ]; - } ); - } - - return data; + mw.rcfilters.dm.SavedQueriesModel.prototype.getDefaultParams = function () { + return ( !mw.user.isAnon() && this.getItemParams( this.getDefault() ) ) || {}; }; /** @@ -332,25 +338,11 @@ * @return {Object} Full param representation */ mw.rcfilters.dm.SavedQueriesModel.prototype.buildParamsFromData = function ( data ) { - // Merge saved filter state with sticky filter values - var savedFilters; - data = data || {}; - - // In order to merge sticky filters with the data, we have to - // transform this to filters first, merge, and then back to - // parameters - savedFilters = $.extend( - true, {}, - this.filtersModel.getFiltersFromParameters( data.params ), - this.filtersModel.getStickyFiltersState() - ); - // Return parameter representation return this.filtersModel.getMinimizedParamRepresentation( $.extend( true, {}, - this.filtersModel.getParametersFromFilters( savedFilters ), - data.highlights, - { highlight: data.params.highlight } + data.params, + data.highlights ) ); };