From 8ddff0b2fc57f5a9be05ede3f2f761e1e45dde40 Mon Sep 17 00:00:00 2001 From: Santhosh Thottingal Date: Thu, 4 Jul 2013 18:27:32 +0530 Subject: [PATCH] Use single entry point mw.uls.init for all ULS ui initialization Change-Id: I485ea27deebb530eb89e4b0935eda01a5276f884 --- resources/js/ext.uls.ime.js | 17 +++++++---------- resources/js/ext.uls.init.js | 23 ++++++++++++++++++----- resources/js/ext.uls.interface.js | 6 ++---- resources/js/ext.uls.webfonts.js | 21 ++++++++++----------- 4 files changed, 37 insertions(+), 30 deletions(-) diff --git a/resources/js/ext.uls.ime.js b/resources/js/ext.uls.ime.js index 1d260102..d3da527f 100644 --- a/resources/js/ext.uls.ime.js +++ b/resources/js/ext.uls.ime.js @@ -203,17 +203,14 @@ }; $( document ).ready( function () { - if ( !mw.uls.isBrowserSupported() ) { - return; - } - - // Load the ime preferences - $.ime.preferences.load(); - - if ( $.ime.preferences.isEnabled() ) { - mw.ime.setup(); - } + mw.uls.init( function () { + // Load the ime preferences + $.ime.preferences.load(); + if ( $.ime.preferences.isEnabled() ) { + mw.ime.setup(); + } + } ); } ); function imeNotification () { diff --git a/resources/js/ext.uls.init.js b/resources/js/ext.uls.init.js index 5733c285..4531923d 100644 --- a/resources/js/ext.uls.init.js +++ b/resources/js/ext.uls.init.js @@ -31,7 +31,8 @@ this.$languageFilter.addClass( 'noime' ); }; - var currentLang = mw.config.get( 'wgUserLanguage' ); + var initialized = false, + currentLang = mw.config.get( 'wgUserLanguage' ); mw.uls = mw.uls || {}; mw.uls.previousLanguagesCookie = 'uls-previous-languages'; /** @@ -139,10 +140,10 @@ * Browse support policy: http://www.mediawiki.org/wiki/Browser_support#Grade_A * @return boolean */ - mw.uls.isBrowserSupported = function () { + function isBrowserSupported() { // Blacklist Grade B browsers IE 6, 7 and IE60-IE79 return !/MSIE [67]/i.test( navigator.userAgent ); - }; + } /** * Local wrapper for 'mw.eventLog.logEvent' which handles default params @@ -187,8 +188,14 @@ .load( jsonLoader + currentLang, currentLang ); } - $( document ).ready( function () { - if ( !mw.uls.isBrowserSupported() ) { + mw.uls.init = function( callback ) { + callback = callback || $.noop; + + if ( initialized ) { + callback.call( this, false ); + return; + } + if ( !isBrowserSupported() ) { $( '#pt-uls' ).hide(); return; } @@ -205,5 +212,11 @@ // JavaScript side i18n initialization i18nInit(); + initialized = true; + callback.call( this, true ); + }; + + $( document ).ready( function () { + mw.uls.init(); } ); }( jQuery, mediaWiki ) ); diff --git a/resources/js/ext.uls.interface.js b/resources/js/ext.uls.interface.js index ed60f97c..4d69347f 100644 --- a/resources/js/ext.uls.interface.js +++ b/resources/js/ext.uls.interface.js @@ -223,6 +223,7 @@ } $( document ).ready( function () { + mw.uls.init( function () { var $ulsTrigger = $( '.uls-trigger' ), $ulsSettingsTrigger, $pLang, @@ -232,10 +233,6 @@ !mw.config.get( 'wgULSAnonCanChangeLanguage' ) ), ulsPosition = mw.config.get( 'wgULSPosition' ); - if ( !mw.uls.isBrowserSupported() ) { - return; - } - if ( ulsPosition === 'interlanguage' ) { // The interlanguage links section $pLang = $( '#p-lang' ); @@ -330,4 +327,5 @@ showULSTooltip(); } ); + } ); }( jQuery, mediaWiki ) ); diff --git a/resources/js/ext.uls.webfonts.js b/resources/js/ext.uls.webfonts.js index 4b11ae86..804f0faa 100644 --- a/resources/js/ext.uls.webfonts.js +++ b/resources/js/ext.uls.webfonts.js @@ -81,17 +81,16 @@ }; $( document ).ready( function () { - if ( !mw.uls.isBrowserSupported() ) { - return; - } - // MediaWiki specific overrides for jquery.webfonts - $.extend( $.fn.webfonts.defaults, { - repository: mediawikiFontRepository, - fontStack: new Array( $( 'body' ).css( 'font-family' ) ) + mw.uls.init( function () { + + // MediaWiki specific overrides for jquery.webfonts + $.extend( $.fn.webfonts.defaults, { + repository: mediawikiFontRepository, + fontStack: new Array( $( 'body' ).css( 'font-family' ) ) + } ); + + mw.webfonts.preferences.load(); + mw.webfonts.setup(); } ); - - mw.webfonts.preferences.load(); - mw.webfonts.setup(); } ); - }( jQuery, mediaWiki ) );