jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/374402 )
Change subject: RCFilters: Minimize saved query before comparison
......................................................................
RCFilters: Minimize saved query before comparison
Bug: T174193
Change-Id: I8e9345e8899fd27565930896e62c4d3be235ad58
---
M resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.SavedQueriesModel.js
1 file changed, 32 insertions(+), 1 deletion(-)
Approvals:
Sbisson: Looks good to me, approved
jenkins-bot: Verified
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 a7f3d23..d87ef734 100644
--- a/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.SavedQueriesModel.js
+++ b/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.SavedQueriesModel.js
@@ -18,6 +18,7 @@
OO.EmitterList.call( this );
this.default = config.default;
+ this.baseState = {};
// Events
this.aggregate( { update: 'itemUpdate' } );
@@ -171,15 +172,45 @@
* @return {mw.rcfilters.dm.SavedQueryItemModel} Matching item model
*/
mw.rcfilters.dm.SavedQueriesModel.prototype.findMatchingQuery =
function ( fullQueryComparison ) {
+ var model = this;
+
+ fullQueryComparison = this.getDifferenceFromBase(
fullQueryComparison );
+
return this.getItems().filter( function ( item ) {
+ var comparedData = model.getDifferenceFromBase(
item.getData() );
return OO.compare(
- item.getData(),
+ comparedData,
fullQueryComparison
);
} )[ 0 ];
};
/**
+ * Get a minimal representation of the state for comparison
+ *
+ * @param {Object} state Given state
+ * @return {Object} Minimal state
+ */
+ mw.rcfilters.dm.SavedQueriesModel.prototype.getDifferenceFromBase =
function ( state ) {
+ var result = { filters: {}, highlights: {}, invert:
state.invert },
+ baseState = this.baseState;
+
+ // XOR results
+ $.each( state.filters, function ( name, value ) {
+ if ( baseState.filters !== undefined &&
baseState.filters[ name ] !== value ) {
+ result.filters[ name ] = value;
+ }
+ } );
+
+ $.each( state.highlights, function ( name, value ) {
+ if ( baseState.highlights !== undefined &&
baseState.highlights[ name ] !== value && name !== 'highlight' ) {
+ result.highlights[ name ] = value;
+ }
+ } );
+
+ return result;
+ };
+ /**
* Get query by its identifier
*
* @param {string} queryID Query identifier
--
To view, visit https://gerrit.wikimedia.org/r/374402
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I8e9345e8899fd27565930896e62c4d3be235ad58
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Mooeypoo <[email protected]>
Gerrit-Reviewer: Jack Phoenix <[email protected]>
Gerrit-Reviewer: Sbisson <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits