jenkins-bot has submitted this change and it was merged.

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
---
M WikimediaEvents.php
A modules/ext.wikimediaEvents.search.js
2 files changed, 61 insertions(+), 1 deletion(-)

Approvals:
  MaxSem: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/WikimediaEvents.php b/WikimediaEvents.php
index d7c83b4..846a1d1 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/247884
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I90d5c30a19c26ee240a37d036efdd49468da113f
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikimediaEvents
Gerrit-Branch: master
Gerrit-Owner: EBernhardson <[email protected]>
Gerrit-Reviewer: MaxSem <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to