Mooeypoo has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/392182 )
Change subject: RCFilters: Ignore 'invert' model if there are no namespaces in
saved queries
......................................................................
RCFilters: Ignore 'invert' model if there are no namespaces in saved queries
When comparing and when saving the query, normalize the 'invert'
state so that it represents the **effective** state of the filters.
If there are no namespaces, then 'invert' is irrelevant.
Make sure we ignore that state when it is irrelevant when we save
saved queries and when we compare the current state to a saved query.
Change-Id: If80b50c3d2b90b5116b6b0018a8d56bce2deb7c4
---
M resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js
M resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.SavedQueriesModel.js
2 files changed, 32 insertions(+), 0 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core
refs/changes/82/392182/1
diff --git
a/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js
b/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js
index d959540..99558bd 100644
--- a/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js
+++ b/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js
@@ -1036,6 +1036,23 @@
};
/**
+ * Check whether the invert state is a valid one. A valid invert state
is one where
+ * there are actual namespaces selcted.
+ *
+ * This is done to compare states to previous ones that may have had
the invert model
+ * selected but effectively had no namespaces, so are not effectively
different than
+ * ones where invert is not selected.
+ *
+ * @return {boolean} Invert is effectively selected
+ */
+
mw.rcfilters.dm.FiltersViewModel.prototype.areNamespacesEffectivelyInverted =
function () {
+ return this.getInvertModel().isSelected() &&
+ this.getSelectedItems().some( function ( itemModel ) {
+ return itemModel.getGroupModel().getView() ===
'namespace';
+ } );
+ };
+
+ /**
* Get the item that matches the given name
*
* @param {string} name Filter name
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 1d7934f..1caacf4 100644
--- a/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.SavedQueriesModel.js
+++ b/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.SavedQueriesModel.js
@@ -123,6 +123,11 @@
// the given data, if they exist
normalizedData.params =
model.filtersModel.removeExcludedParams( normalizedData.params );
+ // Correct the invert state for effective
selection
+ if ( normalizedData.params.invert &&
!normalizedData.params.namespaces ) {
+ delete normalizedData.params.invert;
+ }
+
model.cleanupHighlights( normalizedData );
id = String( id );
@@ -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 ) {
+ delete fullQueryComparison.invert;
+ }
+
return this.getItems().filter( function ( item ) {
return OO.compare(
item.getCombinedData(),
--
To view, visit https://gerrit.wikimedia.org/r/392182
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: If80b50c3d2b90b5116b6b0018a8d56bce2deb7c4
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Mooeypoo <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits