Merge "RCFilters: Don't reload results for redundant requests"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Wed, 2 Aug 2017 00:39:06 +0000 (00:39 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Wed, 2 Aug 2017 00:39:07 +0000 (00:39 +0000)
resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js

index 9d2c331..fbd44fd 100644 (file)
         */
        mw.rcfilters.Controller.prototype.toggleInvertedNamespaces = function () {
                this.filtersModel.toggleInvertedNamespaces();
-               this.updateChangesList();
+
+               if (
+                       this.filtersModel.getFiltersByView( 'namespaces' )
+                               .filter( function ( filterItem ) {
+                                       return filterItem.isSelected();
+                               } )
+                               .length
+               ) {
+                       // Only re-fetch results if there are namespace items that are actually selected
+                       this.updateChangesList();
+               }
        };
 
        /**
         */
        mw.rcfilters.Controller.prototype.applySavedQuery = function ( queryID ) {
                var data, highlights,
-                       queryItem = this.savedQueriesModel.getItemByID( queryID );
+                       queryItem = this.savedQueriesModel.getItemByID( queryID ),
+                       currentMatchingQuery = this.findQueryMatchingCurrentState();
 
-               if ( queryItem ) {
+               if (
+                       queryItem &&
+                       (
+                               // If there's already a query, don't reload it
+                               // if it's the same as the one that already exists
+                               !currentMatchingQuery ||
+                               currentMatchingQuery.getID() !== queryItem.getID()
+                       )
+               ) {
                        data = queryItem.getData();
                        highlights = data.highlights;