From: Moriel Schottlender Date: Wed, 23 Aug 2017 23:35:10 +0000 (-0700) Subject: RCFilters: Hide saved queries from anonymous users X-Git-Tag: 1.31.0-rc.0~2317 X-Git-Url: http://git.cyclocoop.org/%22%20.%20generer_url_aide%28?a=commitdiff_plain;h=89df73c9a547be322c2a4026ce5458ff0670aa92;p=lhc%2Fweb%2Fwiklou.git RCFilters: Hide saved queries from anonymous users Bug: T173992 Change-Id: I5acb9ca4dd20de83da5db42c7c9053fccb091da0 --- diff --git a/resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js b/resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js index 209e7c8ca8..9906119549 100644 --- a/resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js +++ b/resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js @@ -212,21 +212,23 @@ this.filtersModel ); - try { - parsedSavedQueries = JSON.parse( mw.user.options.get( this.savedQueriesPreferenceName ) || '{}' ); - } catch ( err ) { - parsedSavedQueries = {}; - } + if ( !mw.user.isAnon() ) { + try { + parsedSavedQueries = JSON.parse( mw.user.options.get( this.savedQueriesPreferenceName ) || '{}' ); + } catch ( err ) { + parsedSavedQueries = {}; + } - // The queries are saved in a minimized state, so we need - // to send over the base state so the saved queries model - // can normalize them per each query item - this.savedQueriesModel.initialize( - parsedSavedQueries, - this._getBaseFilterState(), - // This is for backwards compatibility - delete all excluded filter states - Object.keys( this.filtersModel.getExcludedFiltersState() ) - ); + // The queries are saved in a minimized state, so we need + // to send over the base state so the saved queries model + // can normalize them per each query item + this.savedQueriesModel.initialize( + parsedSavedQueries, + this._getBaseFilterState(), + // This is for backwards compatibility - delete all excluded filter states + Object.keys( this.filtersModel.getExcludedFiltersState() ) + ); + } // Check whether we need to load defaults. // We do this by checking whether the current URI query @@ -238,7 +240,7 @@ // or on request this.initializing = true; if ( - this.savedQueriesModel.getDefault() && + !mw.user.isAnon() && this.savedQueriesModel.getDefault() && !this.uriProcessor.doesQueryContainRecognizedParams( uri.query ) ) { // We have defaults from a saved query. @@ -1039,7 +1041,7 @@ var data, queryHighlights, savedParams = {}, savedHighlights = {}, - defaultSavedQueryItem = this.savedQueriesModel.getItemByID( this.savedQueriesModel.getDefault() ); + defaultSavedQueryItem = !mw.user.isAnon() && this.savedQueriesModel.getItemByID( this.savedQueriesModel.getDefault() ); if ( defaultSavedQueryItem ) { data = defaultSavedQueryItem.getData(); diff --git a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagMultiselectWidget.js b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagMultiselectWidget.js index 3aa716111c..b15b03447f 100644 --- a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagMultiselectWidget.js +++ b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagMultiselectWidget.js @@ -85,17 +85,20 @@ classes: [ 'mw-rcfilters-ui-filterTagMultiselectWidget-resetButton' ] } ); - this.saveQueryButton = new mw.rcfilters.ui.SaveFiltersPopupButtonWidget( - this.controller, - this.queriesModel - ); + if ( !mw.user.isAnon() ) { + this.saveQueryButton = new mw.rcfilters.ui.SaveFiltersPopupButtonWidget( + this.controller, + this.queriesModel + ); - this.saveQueryButton.$element.on( 'mousedown', function ( e ) { e.stopPropagation(); } ); + this.saveQueryButton.$element.on( 'mousedown', function ( e ) { e.stopPropagation(); } ); - this.saveQueryButton.connect( this, { - click: 'onSaveQueryButtonClick', - saveCurrent: 'setSavedQueryVisibility' - } ); + this.saveQueryButton.connect( this, { + click: 'onSaveQueryButtonClick', + saveCurrent: 'setSavedQueryVisibility' + } ); + this.queriesModel.connect( this, { itemUpdate: 'onSavedQueriesItemUpdate' } ); + } this.emptyFilterMessage = new OO.ui.LabelWidget( { label: mw.msg( 'rcfilters-empty-filter' ), @@ -115,7 +118,6 @@ highlightChange: 'onModelHighlightChange' } ); this.input.connect( this, { change: 'onInputChange' } ); - this.queriesModel.connect( this, { itemUpdate: 'onSavedQueriesItemUpdate' } ); // The filter list and button should appear side by side regardless of how // wide the button is; the button also changes its width depending @@ -129,12 +131,14 @@ .addClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-cell-filters' ) ); - rcFiltersRow.append( - $( '
' ) - .addClass( 'mw-rcfilters-ui-cell' ) - .addClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-cell-save' ) - .append( this.saveQueryButton.$element ) - ); + if ( !mw.user.isAnon() ) { + rcFiltersRow.append( + $( '
' ) + .addClass( 'mw-rcfilters-ui-cell' ) + .addClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-cell-save' ) + .append( this.saveQueryButton.$element ) + ); + } // Add a selector at the right of the input this.viewsSelectWidget = new OO.ui.ButtonSelectWidget( { @@ -379,6 +383,10 @@ * Set the visibility of the saved query button */ mw.rcfilters.ui.FilterTagMultiselectWidget.prototype.setSavedQueryVisibility = function () { + if ( mw.user.isAnon() ) { + return; + } + this.matchingQuery = this.controller.findQueryMatchingCurrentState(); this.savedQueryTitle.setLabel( diff --git a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterWrapperWidget.js b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterWrapperWidget.js index c3af7c5bd8..b57f5d73ac 100644 --- a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterWrapperWidget.js +++ b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterWrapperWidget.js @@ -78,18 +78,20 @@ this.dateWidget.$element ); - this.savedLinksListWidget = new mw.rcfilters.ui.SavedLinksListWidget( - this.controller, - this.queriesModel, - { $overlay: this.$overlay } - ); + if ( !mw.user.isAnon() ) { + this.savedLinksListWidget = new mw.rcfilters.ui.SavedLinksListWidget( + this.controller, + this.queriesModel, + { $overlay: this.$overlay } + ); - this.$topRow.append( - $( '
' ) - .addClass( 'mw-rcfilters-ui-cell' ) - .addClass( 'mw-rcfilters-ui-filterWrapperWidget-top-savedLinks' ) - .append( this.savedLinksListWidget.$element ) - ); + this.$topRow.append( + $( '
' ) + .addClass( 'mw-rcfilters-ui-cell' ) + .addClass( 'mw-rcfilters-ui-filterWrapperWidget-top-savedLinks' ) + .append( this.savedLinksListWidget.$element ) + ); + } if ( mw.rcfilters.featureFlags.liveUpdate ) { $bottom.append( this.liveUpdateButton.$element );