Prtksxna has uploaded a new change for review.

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

Change subject: Implement the new schema for when the popups are disabled
......................................................................

Implement the new schema for when the popups are disabled

Bug: T88167
Change-Id: I2185e68d3bc5b81050a32612afe6fe51833dc207
---
M resources/ext.popups.core.js
M resources/ext.popups.logger.js
2 files changed, 43 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Popups 
refs/changes/91/198191/1

diff --git a/resources/ext.popups.core.js b/resources/ext.popups.core.js
index dbb454f..35319ce 100644
--- a/resources/ext.popups.core.js
+++ b/resources/ext.popups.core.js
@@ -164,12 +164,18 @@
        };
 
        mw.hook( 'wikipage.content').add( function ( $content ) {
-               if ( mw.popups.enabled ) {
-                       mw.popups.$content = $content;
+               mw.popups.$content = $content;
+               var $elements = mw.popups.selectPopupElements();
 
-                       var $elements = mw.popups.selectPopupElements();
+               if ( mw.popups.enabled ) {
                        mw.popups.removeTooltips( $elements );
                        mw.popups.setupTriggers( $elements );
+               } else {
+                       // Events are logged even when hovercards are disabled
+                       // See T88166 for details
+                       $elements.on( 'click', function () {
+                               mw.popups.logger.logLinkClick( event, $( this ) 
);
+                       } );
                }
        } );
 
diff --git a/resources/ext.popups.logger.js b/resources/ext.popups.logger.js
index 03b75ba..93d64d1 100644
--- a/resources/ext.popups.logger.js
+++ b/resources/ext.popups.logger.js
@@ -70,6 +70,33 @@
        };
 
        /**
+        * Called only when popups are disabled
+        * Called on links that would've shown popups
+        *
+        * @method logLinkClick
+        * @param {jquery.Event) event
+        * @param {jQuery.Element} $el The <a> element that was clicked
+        */
+       logger.logLinkClick = function ( event, $el ) {
+               var promise,
+                       href = $el.attr( 'href' ),
+                       action = logger.getAction( event );
+                       // logger.action gets reset after log() so we need
+                       // a local variable to track it
+
+               logger.action = action;
+               logger.pageTitleHover = $el.attr( 'title' );
+               promise = logger.log();
+
+               if ( action === 'opened in same tab' ) {
+                       event.preventDefault();
+                       promise.then( function () {
+                               window.location.href = href;
+                       } );
+               }
+       }
+
+       /**
         * Logs the popup event as defined in the following schema-
         * https://meta.wikimedia.org/wiki/Schema:Popups
         *
@@ -92,14 +119,19 @@
         */
        logger.getEventObject = function () {
                var event = {
-                       'duration': Math.round( logger.duration ),
                        'action': logger.action,
                        'popupEnabled': mw.popups.enabled,
-                       'popupDelay': mw.popups.render.POPUP_DELAY,
                        'pageTitleSource': mw.config.get( 'wgTitle' ),
                        'pageTitleHover': logger.pageTitleHover
                };
 
+               // Events are logged even when hovercards are disabled
+               // See T88166 for details
+               if ( mw.popups.enabled ) {
+                       event.popupDelay = mw.popups.render.POPUP_DELAY;
+                       event.duration = Math.round( logger.duration );
+               }
+
                logger.reset();
                return event;
        }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2185e68d3bc5b81050a32612afe6fe51833dc207
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Popups
Gerrit-Branch: master
Gerrit-Owner: Prtksxna <psax...@wikimedia.org>

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

Reply via email to