jenkins-bot has submitted this change and it was merged.
Change subject: Hygiene: Use mw.eventLog.Schema for logging
MobileWebMainMenuClickTracking events
......................................................................
Hygiene: Use mw.eventLog.Schema for logging MobileWebMainMenuClickTracking
events
Load the schema file only when needed and do not bundle it with
other schema files.
Bug: T122504
Change-Id: I71fb074226c3d0f0a0d8a32de3794158adfb0e48
---
M extension.json
M includes/MobileFrontend.hooks.php
A resources/mobile.loggingSchemas/schemaMobileWebMainMenuClickTracking.js
M resources/mobile.mainMenu/MainMenu.js
M resources/skins.minerva.scripts/initLogging.js
5 files changed, 59 insertions(+), 11 deletions(-)
Approvals:
Phuedx: Looks good to me, approved
jenkins-bot: Verified
diff --git a/extension.json b/extension.json
index 63f45c4..d5e9b32 100644
--- a/extension.json
+++ b/extension.json
@@ -372,7 +372,8 @@
],
"dependencies": [
"mobile.view",
- "mobile.browser"
+ "mobile.browser",
+
"mobile.loggingSchemas.mobileWebMainMenuClickTracking"
],
"position": "bottom",
"styles": [
diff --git a/includes/MobileFrontend.hooks.php
b/includes/MobileFrontend.hooks.php
index 538bc48..d4c63fd 100644
--- a/includes/MobileFrontend.hooks.php
+++ b/includes/MobileFrontend.hooks.php
@@ -1153,7 +1153,6 @@
private static function getEventLoggingSchemas() {
return array(
'MobileWebDiffClickTracking' => 10720373,
- 'MobileWebMainMenuClickTracking' => 11568715,
'MobileWebWatchlistClickTracking' => 10720361,
);
}
@@ -1176,6 +1175,7 @@
$schemas += self::getEventLoggingSchemas();
// eventually we'll get rid of the getEventLoggingSchemas
function
// FIXME: remove the above comment when we do
+ $schemas['MobileWebMainMenuClickTracking'] = 11568715;
$schemas['MobileWebSearch'] = 12054448;
$schemas['MobileWebLanguageSwitcher'] = 15302503;
return true;
@@ -1202,6 +1202,7 @@
$schemaModules = array();
$schemaEdit = $mfResourceFileModuleBoilerplate;
$schemaMobileWebLanguageSwitcher =
$mfResourceFileModuleBoilerplate;
+ $schemaMobileWebMainMenuClickTracking =
$mfResourceFileModuleBoilerplate;
$schemaMobileWebSearch = $mfResourceFileModuleBoilerplate;
if ( class_exists( 'EventLogging' ) ) {
@@ -1233,6 +1234,16 @@
'resources/mobile.loggingSchemas/schemaMobileWebLanguageSwitcher.js',
),
);
+ $schemaMobileWebMainMenuClickTracking += array(
+ 'dependencies' => array(
+ 'schema.MobileWebMainMenuClickTracking',
+ 'mobile.context',
+ 'mobile.user'
+ ),
+ 'scripts' => array(
+
'resources/mobile.loggingSchemas/schemaMobileWebMainMenuClickTracking.js',
+ )
+ );
$schemaMobileWebSearch += array(
'dependencies' => array(
'schema.MobileWebSearch',
@@ -1259,6 +1270,8 @@
'mobile.loggingSchemas.edit' => $schemaEdit,
'mobile.loggingSchemas.mobileWebLanguageSwitcher' =>
$schemaMobileWebLanguageSwitcher,
+ 'mobile.loggingSchemas.mobileWebMainMenuClickTracking'
=>
+ $schemaMobileWebMainMenuClickTracking,
'mobile.loggingSchemas.mobileWebSearch' =>
$schemaMobileWebSearch,
) );
}
diff --git
a/resources/mobile.loggingSchemas/schemaMobileWebMainMenuClickTracking.js
b/resources/mobile.loggingSchemas/schemaMobileWebMainMenuClickTracking.js
new file mode 100755
index 0000000..551839b
--- /dev/null
+++ b/resources/mobile.loggingSchemas/schemaMobileWebMainMenuClickTracking.js
@@ -0,0 +1,35 @@
+( function ( M ) {
+ var user = M.require( 'mobile.user/user' ),
+ context = M.require( 'mobile.context/context' ),
+ /**
+ * MobileWebMainMenuClickTracking schema
+ *
https://meta.wikimedia.org/wiki/Schema:MobileWebMainMenuClickTracking
+ *
+ * @class MobileWebMainMenuClickTracking
+ * @singleton
+ */
+ schemaMobileWebMainMenuClickTracking = new mw.eventLog.Schema(
+ 'MobileWebMainMenuClickTracking',
+ 0.5,
+ /**
+ * @cfg {Object} defaults Default options hash
+ * @cfg {String} defaults.mobileMode whether user is in
stable or beta
+ * @cfg {String|undefined} defaults.username Username
if the user is logged in, otherwise -
+ * undefined. Assigning undefined will make event
logger omit this property when sending
+ * the data to a server. According to the schema
username is optional.
+ * @cfg {Number|undefined} defaults.userEditCount The
number of edits the user has made
+ * if the user is logged in, otherwise - undefined.
Assigning undefined will make event
+ * logger omit this property when sending the data to
a server. According to the schema
+ * userEditCount is optional.
+ */
+ {
+ mobileMode: context.getMode(),
+ username: user.getName() || undefined,
+ userEditCount: typeof user.getEditCount() ===
'number' ? user.getEditCount() : undefined
+ }
+ );
+
+ mw.trackSubscribe( 'mf.schemaMobileWebMainMenuClickTracking', function
( topic, data ) {
+ schemaMobileWebMainMenuClickTracking.log( data );
+ } );
+} )( mw.mobileFrontend );
diff --git a/resources/mobile.mainMenu/MainMenu.js
b/resources/mobile.mainMenu/MainMenu.js
index 77bf925..062d576 100644
--- a/resources/mobile.mainMenu/MainMenu.js
+++ b/resources/mobile.mainMenu/MainMenu.js
@@ -68,14 +68,16 @@
/**
* Turn on event logging on the existing main menu by reading
`event-name` data
* attributes on elements.
- * @param {SchemaMobileWebClickTracking} schema to use
*/
- enableLogging: function ( schema ) {
- this.$( 'a' ).each( function () {
+ enableLogging: function () {
+ this.$( 'a' ).on( 'click', function () {
var $link = $( this ),
eventName = $link.data( 'event-name' );
if ( eventName ) {
- schema.hijackLink( $link, eventName );
+ mw.track(
'mf.schemaMobileWebMainMenuClickTracking', {
+ name: eventName,
+ destination: $link.attr( 'href'
)
+ } );
}
} );
},
diff --git a/resources/skins.minerva.scripts/initLogging.js
b/resources/skins.minerva.scripts/initLogging.js
index 2765f1b..8979e03 100644
--- a/resources/skins.minerva.scripts/initLogging.js
+++ b/resources/skins.minerva.scripts/initLogging.js
@@ -1,12 +1,9 @@
// This initialises EventLogging for main menu and some prominent links in the
UI.
// This code should only be loaded on the Minerva skin, it does not apply to
other skins.
( function ( M, $ ) {
- var SchemaMobileWebClickTracking = M.require(
- 'mobile.loggingSchemas/SchemaMobileWebClickTracking' ),
- skin = M.require( 'skins.minerva.scripts/skin' ),
- mainMenuSchema = new SchemaMobileWebClickTracking( {},
'MobileWebMainMenuClickTracking' );
+ var skin = M.require( 'skins.minerva.scripts/skin' );
$( function () {
- skin.getMainMenu().enableLogging( mainMenuSchema );
+ skin.getMainMenu().enableLogging();
} );
} )( mw.mobileFrontend, jQuery );
--
To view, visit https://gerrit.wikimedia.org/r/273456
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I71fb074226c3d0f0a0d8a32de3794158adfb0e48
Gerrit-PatchSet: 10
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: master
Gerrit-Owner: Bmansurov <[email protected]>
Gerrit-Reviewer: Bmansurov <[email protected]>
Gerrit-Reviewer: Jdlrobson <[email protected]>
Gerrit-Reviewer: Phuedx <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits