EBernhardson has uploaded a new change for review.
https://gerrit.wikimedia.org/r/248876
Change subject: Move Schema:Search from CirrusSearch
......................................................................
Move Schema:Search from CirrusSearch
This schema was broken when the hook it used to inject into
pages was changed. To get it back into action on all pages
regardless of current varnish cache it is being moved into
this repository as part of ext.wikimediaEvents.
Bug: T115031
Change-Id: I90d5c30a19c26ee240a37d036efdd49468da113f
(cherry picked from c0fd94423182e31edd6f3cd8fd0f65b185ec1ab2)
---
M WikimediaEvents.php
A modules/ext.wikimediaEvents.search.js
2 files changed, 61 insertions(+), 1 deletion(-)
git pull
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikimediaEvents
refs/changes/76/248876/1
diff --git a/WikimediaEvents.php b/WikimediaEvents.php
index 770e2ad..608016a 100644
--- a/WikimediaEvents.php
+++ b/WikimediaEvents.php
@@ -95,6 +95,11 @@
'schema' => 'GeoFeatures',
'revision' => 12914994,
),
+ 'schema.Search' => array(
+ 'class' => 'ResourceLoaderSchemaModule',
+ 'schema' => 'Search',
+ 'revision' => 11670541,
+ ),
'ext.wikimediaEvents' => array(
// Loaded globally for all users (including logged-out)
// Don't remove if empty!
@@ -103,10 +108,13 @@
'ext.wikimediaEvents.searchSuggest.js',
'ext.wikimediaEvents.statsd.js',
'ext.wikimediaEvents.searchSatisfaction.js',
+ 'ext.wikimediaEvents.search.js',
),
'dependencies' => array(
- 'mediawiki.user', // needed by searchSuggest.js
+ 'mediawiki.user', // needed by search.js,
searchSuggest.js
'mediawiki.Uri', // needed by searchSatisfaction.js
+ 'schema.Search', // needed by search.js
+ 'ext.eventLogging', // needed by search.js
),
'localBasePath' => __DIR__ . '/modules',
'remoteExtPath' => 'WikimediaEvents/modules',
diff --git a/modules/ext.wikimediaEvents.search.js
b/modules/ext.wikimediaEvents.search.js
new file mode 100644
index 0000000..6062562
--- /dev/null
+++ b/modules/ext.wikimediaEvents.search.js
@@ -0,0 +1,52 @@
+/*global mw:true */
+( function ( $ ) {
+ 'use strict';
+
+ var isLoggingEnabled = mw.config.get(
'wgCirrusSearchEnableSearchLogging' ),
+ // For 1 in a 1000 users the metadata about interaction
+ // with the search form (absent search terms) is event logged.
+ // See https://meta.wikimedia.org/wiki/Schema:Search
+ isSampled = Math.random() < 1 / 1000,
+ defaults,
+ sessionStartTime;
+
+ /**
+ * Generate a random token
+ * @return {String}
+ */
+ function getRandomToken() {
+ return mw.user.generateRandomSessionId() + ( new Date()
).getTime().toString();
+ }
+
+ if ( isLoggingEnabled && isSampled ) {
+ defaults = {
+ platform: 'desktop',
+ userSessionToken: getRandomToken(),
+ searchSessionToken: getRandomToken()
+ };
+
+ mw.trackSubscribe( 'mediawiki.searchSuggest', function ( topic,
data ) {
+ var loggingData = {
+ action: data.action
+ };
+
+ if ( data.action === 'session-start' ) {
+ // update session token if it's a new search
+ defaults.searchSessionToken = getRandomToken();
+ sessionStartTime = this.timeStamp;
+ } else if ( data.action === 'impression-results' ) {
+ loggingData.numberOfResults =
data.numberOfResults;
+ loggingData.resultSetType = data.resultSetType;
+ loggingData.timeToDisplayResults = Math.round(
this.timeStamp - sessionStartTime );
+ } else if ( data.action === 'click-result' ) {
+ loggingData.clickIndex = data.clickIndex;
+ loggingData.numberOfResults =
data.numberOfResults;
+ } else if ( data.action === 'submit-form' ) {
+ loggingData.numberOfResults =
data.numberOfResults;
+ }
+ loggingData.timeOffsetSinceStart = Math.round(
this.timeStamp - sessionStartTime ) ;
+ $.extend( loggingData, defaults );
+ mw.eventLog.logEvent( 'Search', loggingData );
+ } );
+ }
+}( jQuery ) );
--
To view, visit https://gerrit.wikimedia.org/r/248876
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I90d5c30a19c26ee240a37d036efdd49468da113f
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikimediaEvents
Gerrit-Branch: wmf/1.27.0-wmf.3
Gerrit-Owner: EBernhardson <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits