jenkins-bot has submitted this change and it was merged.
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, 24 insertions(+), 15 deletions(-)
Approvals:
Mooeypoo: Looks good to me, approved
jenkins-bot: Verified
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..422fa7d 100644
--- a/modules/ext.echo.init.js
+++ b/modules/ext.echo.init.js
@@ -1,15 +1,7 @@
( 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 = mw.echo || {};
mw.echo.apiCallParams = {
action: 'query',
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: merged
Gerrit-Change-Id: I46ff3c62b05c24dd2bb18a1574df17f9d2823125
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/Echo
Gerrit-Branch: master
Gerrit-Owner: Legoktm <[email protected]>
Gerrit-Reviewer: Catrope <[email protected]>
Gerrit-Reviewer: Mooeypoo <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits