Jdlrobson has uploaded a new change for review.

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

Change subject: Delay EventLogging click track until next page load
......................................................................

Delay EventLogging click track until next page load

Use localStorage to delay the event until after.
Bug: 61293

Change-Id: I2fe5bd00db0e6862e77f6b5b1cc7f19b4b000c35
---
M javascripts/loggingSchemas/MobileWebClickTracking.js
1 file changed, 20 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MobileFrontend 
refs/changes/35/116035/1

diff --git a/javascripts/loggingSchemas/MobileWebClickTracking.js 
b/javascripts/loggingSchemas/MobileWebClickTracking.js
index 1e38007..fd3cf07 100644
--- a/javascripts/loggingSchemas/MobileWebClickTracking.js
+++ b/javascripts/loggingSchemas/MobileWebClickTracking.js
@@ -1,4 +1,5 @@
 ( function( M, $ ) {
+       var s = M.settings, name, href;
 
        function log( name, destination ) {
                var
@@ -17,18 +18,31 @@
 
                return M.log( 'MobileWebClickTracking', data );
        }
+       function futureLog( name, href ) {
+               s.saveUserSetting( 'MobileWebClickTracking-name', name );
+               s.saveUserSetting( 'MobileWebClickTracking-href', href );
+       }
 
        function hijackLink( selector, name ) {
-               function linkHandler( ev ) {
-                       ev.preventDefault();
-                       var href = $( this ).attr( 'href' );
-                       log( name, href ).always( function() {
-                               window.location.href = href;
-                       } );
+               function linkHandler() {
+                       futureLog( name, $( this ).attr( 'href' ) );
                }
                $( selector ).on( M.tapEvent( 'click' ), linkHandler );
        }
 
+       // Deal with events requested on the preview page
+       name = s.getUserSetting( 'MobileWebClickTracking-name' );
+       href = s.getUserSetting( 'MobileWebClickTracking-href' );
+       // Make sure they do not log a second time...
+       if ( name && href ) {
+               s.saveUserSetting( 'MobileWebClickTracking-name', '' );
+               s.saveUserSetting( 'MobileWebClickTracking-href', '' );
+               // Delay HTTP request and avoid clobbering errors
+               setTimeout( function() {
+                       log( name, href );
+               }, 0 );
+       }
+
        M.define( 'loggingSchemas/MobileWebClickTracking', {
                log: log,
                hijackLink: hijackLink

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2fe5bd00db0e6862e77f6b5b1cc7f19b4b000c35
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: master
Gerrit-Owner: Jdlrobson <jrob...@wikimedia.org>

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

Reply via email to