X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=resources%2Fsrc%2Fmediawiki.rcfilters%2Fdm%2Fmw.rcfilters.dm.SavedQueriesModel.js;h=9d8f977d00c40321596c2cfefe3e38c3822855a6;hp=1d7934f1a105c94fe9b5f7060f67e19428e7823c;hb=fe94275c8fcfc248a5eae857dde7c5772d993ab5;hpb=85b49b0b73b470593ed2429d846e530efd60549b 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 1d7934f1a1..9d8f977d00 100644 --- a/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.SavedQueriesModel.js +++ b/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.SavedQueriesModel.js @@ -1,4 +1,5 @@ -( function ( mw, $ ) { +/* eslint-disable no-restricted-properties */ +( function () { /** * View model for saved queries * @@ -119,9 +120,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 +232,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 +283,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 +312,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,23 +339,10 @@ * @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.params, data.highlights ) ); }; @@ -410,4 +404,4 @@ mw.rcfilters.dm.SavedQueriesModel.prototype.isConverted = function () { return this.converted; }; -}( mediaWiki, jQuery ) ); +}() );