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

Change subject: Display and hover events are logged but not recorded
......................................................................


Display and hover events are logged but not recorded

This adds two new events "display" and "hover" which are not
recorded back to the server. The benefits of having these events
is that they are important events in the lifecycle of a hovercard.

This allows us to debug trackSubscribe and ensure we see the behaviour
we expect to see and in a future patchset will allow us to use these
events to drive the calculation of interaction time in one single location
(Sneak preview:
 https://gerrit.wikimedia.org/r/316481 to get a feel for the why.)

Change-Id: I58eefc29444179fd245cfd722093dedea19455e8
---
M resources/ext.popups.renderer.desktopRenderer/desktopRenderer.js
M resources/ext.popups.schemaPopups.utils/ext.popups.schemaPopups.utils.js
M resources/ext.popups.targets.desktopTarget/desktopTarget.js
M tests/qunit/ext.popups.schemaPopups.utils.test.js
4 files changed, 30 insertions(+), 2 deletions(-)

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



diff --git a/resources/ext.popups.renderer.desktopRenderer/desktopRenderer.js 
b/resources/ext.popups.renderer.desktopRenderer/desktopRenderer.js
index bd75005..469fd2b 100644
--- a/resources/ext.popups.renderer.desktopRenderer/desktopRenderer.js
+++ b/resources/ext.popups.renderer.desktopRenderer/desktopRenderer.js
@@ -222,6 +222,10 @@
                        namespaceIdHover: cache.settings.namespace,
                        perceivedWait: Math.round( mw.now() - 
logData.dwellStartTime )
                } );
+               mw.track( 'ext.popups.schemaPopups', $.extend( {}, logData, {
+                               action: 'display'
+                       } )
+               );
 
                cache.process( link, $.extend( {}, logData ) );
 
diff --git 
a/resources/ext.popups.schemaPopups.utils/ext.popups.schemaPopups.utils.js 
b/resources/ext.popups.schemaPopups.utils/ext.popups.schemaPopups.utils.js
index d8e8d46..ceb3ac5 100644
--- a/resources/ext.popups.schemaPopups.utils/ext.popups.schemaPopups.utils.js
+++ b/resources/ext.popups.schemaPopups.utils/ext.popups.schemaPopups.utils.js
@@ -94,12 +94,17 @@
         * @return {Object|boolean}
         */
        function getMassagedData( data, previousLogData ) {
+               // We don't log hover and display events as they are not 
compatible with the schema
+               // but they are useful for debugging
+               var action = data.action;
 
+               if ( action && [ 'hover', 'display' ].indexOf( action ) > -1 ) {
+                       return false;
                // Only one action is recorded per link interaction token...
-               if ( data.linkInteractionToken &&
+               } else if ( data.linkInteractionToken &&
                        data.linkInteractionToken === 
previousLogData.linkInteractionToken ) {
                        // however, the 'disabled' action takes two clicks by 
nature, so allow it
-                       if ( data.action !== 'disabled' ) {
+                       if ( action !== 'disabled' ) {
                                return false;
                        }
                }
diff --git a/resources/ext.popups.targets.desktopTarget/desktopTarget.js 
b/resources/ext.popups.targets.desktopTarget/desktopTarget.js
index 4b47d46..b7a6386 100644
--- a/resources/ext.popups.targets.desktopTarget/desktopTarget.js
+++ b/resources/ext.popups.targets.desktopTarget/desktopTarget.js
@@ -46,6 +46,10 @@
                                hovercardsSuppressedByGadget: 
isNavigationPopupsGadgetEnabled()
                        };
 
+               mw.track( 'ext.popups.schemaPopups', $.extend( {}, eventData, {
+                               action: 'hover'
+                       } )
+               );
                // Only enable Popups when the Navigation popups gadget is not 
enabled
                if ( !eventData.hovercardsSuppressedByGadget && 
mw.popups.enabled ) {
                        if ( mw.popups.scrolled ) {
diff --git a/tests/qunit/ext.popups.schemaPopups.utils.test.js 
b/tests/qunit/ext.popups.schemaPopups.utils.test.js
index e47f15f..85d5d6f 100644
--- a/tests/qunit/ext.popups.schemaPopups.utils.test.js
+++ b/tests/qunit/ext.popups.schemaPopups.utils.test.js
@@ -147,4 +147,19 @@
                assert.ok( schemaPopups.getMassagedData( settingsEvent, 
thisEvent ) !== false, '... unless disabled event' );
                assert.ok( thisEvent.dwellStartTime === 1, 'and no side 
effects' );
        } );
+
+       QUnit.test( 'getMassagedData - returns false for hover and display 
events', 2, function ( assert ) {
+               var
+                       hoverEvent = {
+                               action: 'hover'
+                       },
+                       displayEvent = {
+                               action: 'display',
+                               linkInteractionToken: 't'
+                       };
+
+               assert.ok( schemaPopups.getMassagedData( hoverEvent ) === false 
);
+               assert.ok( schemaPopups.getMassagedData( displayEvent ) === 
false );
+       } );
+
 } )( jQuery, mediaWiki );

-- 
To view, visit https://gerrit.wikimedia.org/r/317713
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I58eefc29444179fd245cfd722093dedea19455e8
Gerrit-PatchSet: 8
Gerrit-Project: mediawiki/extensions/Popups
Gerrit-Branch: master
Gerrit-Owner: Jdlrobson <jrob...@wikimedia.org>
Gerrit-Reviewer: Bmansurov <bmansu...@wikimedia.org>
Gerrit-Reviewer: Jdlrobson <jrob...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to