MinervaNeue/resources/skins.minerva.mainMenu/schema.js
jdlrobson e1b94f3f63 Update usages of user module to mw.user
We are deprecating the MobileFrontend user module. Use the
mw.user module in core instead which supports the same methods.

Bug: T204866
Change-Id: I3d068198ab79fe85823a9d82ef4bd7ca07013d3b
2018-11-21 11:12:41 -08:00

50 lines
2.0 KiB
JavaScript

/**
* This module is loaded by resources/skins.minerva.mainMenu/MainMenu.js
* inside the Minerva skin. It should be moved to Minerva at our earliest possible
* convenience.
*/
mw.loader.using( [
'ext.eventLogging.subscriber'
] ).then( function () {
var M = mw.mobileFrontend,
user = mw.user,
editCount = mw.config.get( 'wgUserEditCount' ),
// Schema provided by ext.eventLogging.subscriber class
Schema = mw.eventLog.Schema, // resource-modules-disable-line
context = M.require( 'mobile.startup/context' ),
/**
* MobileWebMainMenuClickTracking schema
* https://meta.wikimedia.org/wiki/Schema:MobileWebMainMenuClickTracking
*
* @class MobileWebMainMenuClickTracking
* @singleton
*/
schemaMobileWebMainMenuClickTracking = new Schema(
'MobileWebMainMenuClickTracking',
// todo: use a default value of 0 once config lands in production (T205008).
mw.config.get( 'wgMinervaSchemaMainMenuClickTrackingSampleRate', 0.5 ),
/**
* @property {Object} defaults Default options hash.
* @property {string} defaults.mobileMode whether user is in stable or beta
* @property {string} [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.
* @property {number} [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,
// FIXME: Use edit bucket here (T210106)
userEditCount: typeof editCount === 'number' ? editCount : undefined
}
);
mw.trackSubscribe( 'minerva.schemaMobileWebMainMenuClickTracking', function ( topic, data ) {
schemaMobileWebMainMenuClickTracking.log( data );
} );
} );