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

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



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: merged
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]>
Gerrit-Reviewer: EBernhardson <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to