jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/364923 )
Change subject: RCFilters: Log filter groupings
......................................................................
RCFilters: Log filter groupings
Depends-On: Ib9df52d708993f2ed29633251365d4af2b6a4761
Change-Id: I09b2d45cdca323d43cf91d0b21bed06f2db8183c
---
M resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js
M resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js
M
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagMultiselectWidget.js
3 files changed, 72 insertions(+), 0 deletions(-)
Approvals:
Catrope: Looks good to me, approved
jenkins-bot: Verified
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 75431d9..06fa0aa 100644
--- a/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js
+++ b/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js
@@ -888,6 +888,20 @@
};
/**
+ * Get all selected items
+ *
+ * @return {mw.rcfilters.dm.FilterItem[]} Selected items
+ */
+ mw.rcfilters.dm.FiltersViewModel.prototype.getSelectedItems = function
() {
+ var allSelected = [];
+
+ $.each( this.getFilterGroups(), function ( groupName,
groupModel ) {
+ allSelected = allSelected.concat(
groupModel.getSelectedItems() );
+ } );
+
+ return allSelected;
+ };
+ /**
* Switch the current view
*
* @param {string} view View name
diff --git a/resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js
b/resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js
index 5858566..a9283b9 100644
--- a/resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js
+++ b/resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js
@@ -15,6 +15,8 @@
this.baseFilterState = {};
this.uriProcessor = null;
this.initializing = false;
+
+ this.prevLoggedItems = [];
};
/* Initialization */
@@ -221,6 +223,9 @@
this.filtersModel.toggleFilterSelected( filterName,
false );
this.updateChangesList();
this.filtersModel.reassessFilterInteractions(
filterItem );
+
+ // Log filter grouping
+ this.trackFilterGroupings( 'removefilter' );
}
if ( isHighlighted ) {
@@ -412,6 +417,9 @@
this.filtersModel.reassessFilterInteractions();
this.updateChangesList();
+
+ // Log filter grouping
+ this.trackFilterGroupings( 'savedfilters' );
}
};
@@ -802,4 +810,51 @@
);
};
+ /**
+ * Track filter grouping usage
+ *
+ * @param {string} action Action taken
+ */
+ mw.rcfilters.Controller.prototype.trackFilterGroupings = function (
action ) {
+ var controller = this,
+ rightNow = new Date().getTime(),
+ randomIdentifier = String( mw.user.sessionId() ) +
String( rightNow ) + String( Math.random() ),
+ // Get all current filters
+ filters = this.filtersModel.getSelectedItems().map(
function ( item ) {
+ return item.getName();
+ } );
+
+ action = action || 'filtermenu';
+
+ // Check if these filters were the ones we just logged
previously
+ // (Don't log the same grouping twice, in case the user
opens/closes)
+ // the menu without action, or with the same result
+ if (
+ // Only log if the two arrays are different in size
+ filters.length !== this.prevLoggedItems.length ||
+ // Or if any filters are not the same as the cached
filters
+ filters.some( function ( filterName ) {
+ return controller.prevLoggedItems.indexOf(
filterName ) === -1;
+ } ) ||
+ // Or if any cached filters are not the same as given
filters
+ this.prevLoggedItems.some( function ( filterName ) {
+ return filters.indexOf( filterName ) === -1;
+ } )
+ ) {
+ filters.forEach( function ( filterName ) {
+ mw.track(
+ 'event.ChangesListFilterGrouping',
+ {
+ action: action,
+ groupIdentifier:
randomIdentifier,
+ filter: filterName,
+ userId: mw.user.getId()
+ }
+ );
+ } );
+
+ // Cache the filter names
+ this.prevLoggedItems = filters;
+ }
+ };
}( mediaWiki, jQuery ) );
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 dcada85..305456a 100644
---
a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagMultiselectWidget.js
+++
b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagMultiselectWidget.js
@@ -290,6 +290,9 @@
// Clear the input
this.input.setValue( '' );
}
+
+ // Log filter grouping
+ this.controller.trackFilterGroupings( 'filtermenu' );
}
this.input.setIcon( isVisible ? 'search' : 'menu' );
--
To view, visit https://gerrit.wikimedia.org/r/364923
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I09b2d45cdca323d43cf91d0b21bed06f2db8183c
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Mooeypoo <[email protected]>
Gerrit-Reviewer: Catrope <[email protected]>
Gerrit-Reviewer: Jack Phoenix <[email protected]>
Gerrit-Reviewer: Mooeypoo <[email protected]>
Gerrit-Reviewer: TTO <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits