ext.uls.eventlogger: Remove unused class

* Simplify as pure functions.
* Remove unused 'schema' parameter to log().
* Remove unused 'module.exports'.

Change-Id: I900303f29cc425cc579acc7379a88ef4f0e882af
This commit is contained in:
Timo Tijhof
2019-03-09 04:35:16 +00:00
committed by jenkins-bot
parent 7d46d19e0c
commit 232b6a8a58

View File

@@ -1,6 +1,11 @@
/*! /*!
* ULS Event logger * ULS Event logger
* *
* See https://meta.wikimedia.org/wiki/Schema:UniversalLanguageSelector
*
* @private
* @since 2013.08
*
* Copyright (C) 2012-2013 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris, * Copyright (C) 2012-2013 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,
* Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other
* contributors. See CREDITS for a list. * contributors. See CREDITS for a list.
@@ -20,134 +25,93 @@
( function () { ( function () {
'use strict'; 'use strict';
/** var eventDefault = {
* ULS Event logger
* See https://meta.wikimedia.org/wiki/Schema:UniversalLanguageSelector
*
* @private
* @since 2013.08
*/
function ULSEventLogger() {
this.eventDefault = {
version: 1, version: 1,
token: mw.user.id(), token: mw.user.id(),
contentLanguage: mw.config.get( 'wgContentLanguage' ), contentLanguage: mw.config.get( 'wgContentLanguage' ),
interfaceLanguage: mw.config.get( 'wgUserLanguage' ) interfaceLanguage: mw.config.get( 'wgUserLanguage' )
}; };
this.schemaDefault = 'UniversalLanguageSelector';
this.listen();
}
ULSEventLogger.prototype = {
/** /**
* Local wrapper for 'mw.eventLog.logEvent' * Local wrapper for 'mw.eventLog.logEvent'
* *
* @param {Object} event Event action and optional fields * @param {Object} event Event action and optional fields
* @param {string} schema The schema; 'UniversalLanguageSelector' is the default
* @return {jQuery.Promise} Promise object for the logging call * @return {jQuery.Promise} Promise object for the logging call
*/ */
log: function ( event, schema ) { function log( event ) {
schema = schema || this.schemaDefault; event = $.extend( {}, eventDefault, event );
return mw.eventLog.logEvent( 'UniversalLanguageSelector', event );
if ( schema === this.schemaDefault ) {
event = $.extend( {}, this.eventBase, event );
} }
return mw.eventLog.logEvent( schema, event );
},
/**
* Listen for event logging
*/
listen: function () {
// Register handlers for event logging triggers
mw.hook( 'mw.uls.settings.open' ).add( this.ulsSettingsOpen.bind( this ) );
mw.hook( 'mw.uls.language.revert' ).add( this.ulsLanguageRevert.bind( this ) );
mw.hook( 'mw.uls.ime.enable' ).add( this.enableIME.bind( this ) );
mw.hook( 'mw.uls.ime.disable' ).add( this.disableIME.bind( this ) );
mw.hook( 'mw.uls.ime.change' ).add( this.changeIME.bind( this ) );
mw.hook( 'mw.uls.login.click' ).add( this.loginClick.bind( this ) );
mw.hook( 'mw.uls.ime.morelanguages' ).add( this.imeMoreLanguages.bind( this ) );
mw.hook( 'mw.uls.interface.morelanguages' ).add( this.interfaceMoreLanguages.bind( this ) );
mw.hook( 'mw.uls.interface.language.change' ).add( this.interfaceLanguageChange.bind( this ) );
mw.hook( 'mw.uls.font.change' ).add( this.fontChange.bind( this ) );
mw.hook( 'mw.uls.webfonts.enable' ).add( this.enableWebfonts.bind( this ) );
mw.hook( 'mw.uls.webfonts.disable' ).add( this.disableWebfonts.bind( this ) );
$( 'body' ).on( 'noresults.uls', '.uls-menu .uls-languagefilter',
this.noSearchResults.bind( this )
);
},
/** /**
* Log language settings open * Log language settings open
* *
* @param {string} context Where it was opened from * @param {string} context Where it was opened from
*/ */
ulsSettingsOpen: function ( context ) { function ulsSettingsOpen( context ) {
this.log( { log( {
action: 'settings-open', action: 'settings-open',
context: context context: context
} ); } );
}, }
/** /**
* Log language revert * Log language revert
* *
* @param {jQuery.Deferred} deferred * @param {jQuery.Deferred} deferred
*/ */
ulsLanguageRevert: function ( deferred ) { function ulsLanguageRevert( deferred ) {
this.log( { action: 'ui-lang-revert' } ).always( deferred.resolve() ); log( { action: 'ui-lang-revert' } ).always( deferred.resolve() );
}, }
/** /**
* Log IME disabling * Log IME disabling
* *
* @param {string} context Where the setting was changed. * @param {string} context Where the setting was changed.
*/ */
disableIME: function ( context ) { function disableIME( context ) {
this.log( { action: 'ime-disable', context: context } ); log( { action: 'ime-disable', context: context } );
}, }
/** /**
* Log IME enabling * Log IME enabling
* *
* @param {string} context Where the setting was changed. * @param {string} context Where the setting was changed.
*/ */
enableIME: function ( context ) { function enableIME( context ) {
this.log( { action: 'ime-enable', context: context } ); log( { action: 'ime-enable', context: context } );
}, }
/** /**
* Log IME change * Log IME change
* *
* @param {string} inputMethod * @param {string} inputMethod
*/ */
changeIME: function ( inputMethod ) { function changeIME( inputMethod ) {
this.log( { log( {
action: 'ime-change', action: 'ime-change',
inputMethod: inputMethod inputMethod: inputMethod
} ); } );
}, }
/** /**
* Log login link click in display settings. * Log login link click in display settings.
* *
* @param {jQuery.Deferred} deferred * @param {jQuery.Deferred} deferred
*/ */
loginClick: function ( deferred ) { function loginClick( deferred ) {
this.log( { action: 'login-click' } ).always( deferred.resolve ); log( { action: 'login-click' } ).always( deferred.resolve );
}, }
/** /**
* More languages item in IME menu is clicked * Log when "More languages" item in IME menu is clicked.
*/ */
imeMoreLanguages: function () { function imeMoreLanguages() {
this.log( { log( {
action: 'more-languages-access', action: 'more-languages-access',
context: 'ime' context: 'ime'
} ); } );
}, }
/** /**
* Log interface language change * Log interface language change
@@ -155,25 +119,25 @@
* @param {string} language language code * @param {string} language language code
* @param {jQuery.Deferred} deferred * @param {jQuery.Deferred} deferred
*/ */
interfaceLanguageChange: function ( language, deferred ) { function interfaceLanguageChange( language, deferred ) {
var logParams = { var logParams = {
action: 'language-change', action: 'language-change',
context: 'interface', context: 'interface',
interfaceLanguage: language interfaceLanguage: language
}; };
this.log( logParams ).always( deferred.resolve ); log( logParams ).always( deferred.resolve );
}, }
/** /**
* More languages in display settings is clicked * More languages in display settings is clicked
*/ */
interfaceMoreLanguages: function () { function interfaceMoreLanguages() {
this.log( { log( {
action: 'more-languages-access', action: 'more-languages-access',
context: 'interface' context: 'interface'
} ); } );
}, }
/** /**
* Log font preference changes * Log font preference changes
@@ -182,42 +146,40 @@
* @param {string} language * @param {string} language
* @param {string} font * @param {string} font
*/ */
fontChange: function ( context, language, font ) { function fontChange( context, language, font ) {
var logParams = { var logParams = {
action: 'font-change', action: 'font-change',
context: context context: context
}; };
if ( context === 'interface' ) { if ( context === 'interface' ) {
$.extend( logParams, { logParams.interfaceFont = font;
interfaceFont: font,
// Override in case the user changed the ui language but hasn't applied it yet // Override in case the user changed the ui language but hasn't applied it yet
interfaceLanguage: language logParams.interfaceLanguage = language;
} );
} else { } else {
logParams.contentFont = font; logParams.contentFont = font;
} }
this.log( logParams ); log( logParams );
}, }
/** /**
* Log webfonts disabling * Log webfonts disabling
* *
* @param {string} context Where the setting was changed. * @param {string} context Where the setting was changed.
*/ */
disableWebfonts: function ( context ) { function disableWebfonts( context ) {
this.log( { action: 'webfonts-disable', context: context } ); log( { action: 'webfonts-disable', context: context } );
}, }
/** /**
* Log webfonts enabling * Log webfonts enabling
* *
* @param {string} context Where the setting was changed. * @param {string} context Where the setting was changed.
*/ */
enableWebfonts: function ( context ) { function enableWebfonts( context ) {
this.log( { action: 'webfonts-enable', context: context } ); log( { action: 'webfonts-enable', context: context } );
}, }
/** /**
* Log search strings which produce no search results. * Log search strings which produce no search results.
@@ -225,18 +187,39 @@
* @param {jQuery.event} event The original event * @param {jQuery.event} event The original event
* @param {Object} data Information about the failed search * @param {Object} data Information about the failed search
*/ */
noSearchResults: function ( event, data ) { function noSearchResults( event, data ) {
this.log( { log( {
action: 'no-search-results', action: 'no-search-results',
context: data.query, context: data.query,
ulsPurpose: data.ulsPurpose, ulsPurpose: data.ulsPurpose,
title: mw.config.get( 'wgPageName' ) title: mw.config.get( 'wgPageName' )
} ); } );
} }
};
/** /**
* @private * Start listening for event logging
*/ */
module.exports = new ULSEventLogger(); function listen() {
// Register handlers for event logging triggers
mw.hook( 'mw.uls.settings.open' ).add( ulsSettingsOpen );
mw.hook( 'mw.uls.language.revert' ).add( ulsLanguageRevert );
mw.hook( 'mw.uls.ime.enable' ).add( enableIME );
mw.hook( 'mw.uls.ime.disable' ).add( disableIME );
mw.hook( 'mw.uls.ime.change' ).add( changeIME );
mw.hook( 'mw.uls.login.click' ).add( loginClick );
mw.hook( 'mw.uls.ime.morelanguages' ).add( imeMoreLanguages );
mw.hook( 'mw.uls.interface.morelanguages' ).add( interfaceMoreLanguages );
mw.hook( 'mw.uls.interface.language.change' ).add( interfaceLanguageChange );
mw.hook( 'mw.uls.font.change' ).add( fontChange );
mw.hook( 'mw.uls.webfonts.enable' ).add( enableWebfonts );
mw.hook( 'mw.uls.webfonts.disable' ).add( disableWebfonts );
$( 'body' ).on(
'noresults.uls',
'.uls-menu .uls-languagefilter',
noSearchResults
);
}
listen();
}() ); }() );