EBernhardson has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/248892

Change subject: Revert "Revert "Move Schema:Search from CirrusSearch""
......................................................................

Revert "Revert "Move Schema:Search from CirrusSearch""

This reverts commit ab73647d88246259d720bdb9f882d58c99bc0a61.

Change-Id: I93c16f68f5f235b38e161c20e4c0811170b34f7a
---
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/92/248892/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/248892
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I93c16f68f5f235b38e161c20e4c0811170b34f7a
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

Reply via email to