Merge "resources: Strip '$' and 'mw' from file closures"
[lhc/web/wiklou.git] / resources / src / mediawiki.rcfilters / dm / mw.rcfilters.dm.SavedQueriesModel.js
index 1d7934f..9d8f977 100644 (file)
@@ -1,4 +1,5 @@
-( function ( mw, $ ) {
+/* eslint-disable no-restricted-properties */
+( function () {
        /**
         * View model for saved queries
         *
                                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 );
 
                        }
                } );
 
+               // 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(
                // 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(),
        /**
         * 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() ) ) || {};
        };
 
        /**
         * @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
                ) );
        };
        mw.rcfilters.dm.SavedQueriesModel.prototype.isConverted = function () {
                return this.converted;
        };
-}( mediaWiki, jQuery ) );
+}() );