Legoktm has uploaded a new change for review.

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

Change subject: Don't depend upon ext.echo.logger in ext.echo.init
......................................................................

Don't depend upon ext.echo.logger in ext.echo.init

The logger code for clicktracking is only needed after something has
been clicked, so we don't need it in init.

* Move EventLogging initialization into Logger.js
* Add ext.eventLogging dependency server-side if needed

Change-Id: I46ff3c62b05c24dd2bb18a1574df17f9d2823125
---
M Hooks.php
M Resources.php
M modules/ext.echo.init.js
M modules/logger/mw.echo.Logger.js
4 files changed, 23 insertions(+), 16 deletions(-)


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

diff --git a/Hooks.php b/Hooks.php
index 899a2d3..20346a9 100644
--- a/Hooks.php
+++ b/Hooks.php
@@ -111,12 +111,18 @@
                        'targets' => array( 'desktop', 'mobile' ),
                );
 
+               $hasSchemas = false;
                foreach ( $wgEchoConfig['eventlogging'] as $schema => $property 
) {
                        if ( $property['enabled'] && $property['client'] ) {
                                $definition['dependencies'][] = 'schema.' . 
$schema;
+                               $hasSchemas = true;
                        }
                }
 
+               if ( $hasSchemas ) {
+                       $definition['dependencies'][] = 'ext.eventLogging';
+               }
+
                $resourceLoader->register( 'ext.echo.logger', $definition );
        }
 
diff --git a/Resources.php b/Resources.php
index 4e0117f..3b93565 100644
--- a/Resources.php
+++ b/Resources.php
@@ -108,9 +108,6 @@
                'scripts' => array(
                        'ext.echo.init.js',
                ),
-               'dependencies' => array(
-                       'ext.echo.logger',
-               ),
                'targets' => array( 'desktop' ),
        ),
        // Base no-js styles
diff --git a/modules/ext.echo.init.js b/modules/ext.echo.init.js
index ef741b9..7dec6c0 100644
--- a/modules/ext.echo.init.js
+++ b/modules/ext.echo.init.js
@@ -1,16 +1,6 @@
 ( function ( mw, $ ) {
        'use strict';
 
-       if ( mw.echo.Logger.static.clickThroughEnabled ) {
-               mw.loader.using( 'ext.eventLogging', function () {
-                       mw.eventLog.setDefaults( 'EchoInteraction', {
-                               version: mw.config.get( 'wgEchoConfig' 
).version,
-                               userId: +mw.config.get( 'wgUserId' ),
-                               editCount: +mw.config.get( 'wgUserEditCount' )
-                       } );
-               } );
-       }
-
        mw.echo.apiCallParams = {
                action: 'query',
                meta: 'notifications',
diff --git a/modules/logger/mw.echo.Logger.js b/modules/logger/mw.echo.Logger.js
index 14cac01..ccf1add 100644
--- a/modules/logger/mw.echo.Logger.js
+++ b/modules/logger/mw.echo.Logger.js
@@ -1,4 +1,4 @@
-( function ( mw ) {
+( function ( $, mw ) {
        mw.echo = mw.echo || {};
 
        /**
@@ -15,6 +15,18 @@
 
                this.clickThroughEnabled = config.clickThroughEnabled || 
this.constructor.static.clickThroughEnabled;
                this.notificationsIdCache = [];
+               if ( this.clickThroughEnabled ) {
+                       // This should usually already be loaded, but not always
+                       this.deferred = mw.loader.using( 'ext.eventLogging', 
function () {
+                               mw.eventLog.setDefaults( 'EchoInteraction', {
+                                       version: mw.config.get( 'wgEchoConfig' 
).version,
+                                       userId: +mw.config.get( 'wgUserId' ),
+                                       editCount: +mw.config.get( 
'wgUserEditCount' )
+                               } );
+                       } );
+               } else {
+                       this.deferred = $.Deferred().resolve();
+               }
        };
 
        OO.initClass( mw.echo.Logger );
@@ -99,7 +111,9 @@
                        myEvt.mobile = mobile;
                }
 
-               mw.eventLog.logEvent( 'EchoInteraction', myEvt );
+               this.deferred.done( function () {
+                       mw.eventLog.logEvent( 'EchoInteraction', myEvt );
+               } );
        };
 
        /**
@@ -124,4 +138,4 @@
        };
 
        mw.echo.logger = new mw.echo.Logger();
-} )( mediaWiki );
+} )( jQuery, mediaWiki );

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I46ff3c62b05c24dd2bb18a1574df17f9d2823125
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Echo
Gerrit-Branch: master
Gerrit-Owner: Legoktm <[email protected]>

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

Reply via email to