diff --git a/UniversalLanguageSelector.hooks.php b/UniversalLanguageSelector.hooks.php index 868f4a2e..04600b0d 100644 --- a/UniversalLanguageSelector.hooks.php +++ b/UniversalLanguageSelector.hooks.php @@ -39,12 +39,13 @@ class UniversalLanguageSelectorHooks { * @return bool */ public static function addModules( $out, $skin ) { - if ( !self::isToolbarEnabled( $out->getUser() ) ) { - return true; - } - + // If extension is enabled, basic features(API, language data) available. $out->addModules( 'ext.uls.init' ); $out->addModules( 'ext.uls.geoclient' ); + if ( self::isToolbarEnabled( $out->getUser() ) ) { + // Enable UI language selection for the user. + $out->addModules( 'ext.uls.interface' ); + } return true; } @@ -58,7 +59,7 @@ class UniversalLanguageSelectorHooks { public static function addTestModules( array &$testModules, ResourceLoader &$resourceLoader ) { $testModules['qunit']['ext.uls.tests'] = array( 'scripts' => array( 'tests/qunit/ext.uls.tests.js' ), - 'dependencies' => array( 'ext.uls.init' ), + 'dependencies' => array( 'ext.uls.init', 'ext.uls.interface' ), 'localBasePath' => __DIR__, 'remoteExtPath' => 'UniversalLanguageSelector', ); diff --git a/UniversalLanguageSelector.php b/UniversalLanguageSelector.php index 2564d48e..216bd3e5 100644 --- a/UniversalLanguageSelector.php +++ b/UniversalLanguageSelector.php @@ -104,6 +104,7 @@ $wgHooks['UserGetLanguageObject'][] = 'UniversalLanguageSelectorHooks::getLangua $wgDefaultUserOptions['uls-preferences'] = ''; $wgHooks['GetPreferences'][] = 'UniversalLanguageSelectorHooks::onGetPreferences'; +/* Base ULS module */ $wgResourceModules['ext.uls.init'] = array( 'scripts' => 'resources/js/ext.uls.init.js', 'styles' => 'resources/css/ext.uls.css', @@ -111,12 +112,24 @@ $wgResourceModules['ext.uls.init'] = array( 'remoteExtPath' => 'UniversalLanguageSelector', 'dependencies' => array( 'mediawiki.Uri', - 'jquery.tipsy', + 'mediawiki.util', + 'jquery.json', 'jquery.uls', 'jquery.i18n', + ), + 'position' => 'top', +); + +/* Interface language selection module */ +$wgResourceModules['ext.uls.interface'] = array( + 'scripts' => 'resources/js/ext.uls.interface.js', + 'localBasePath' => $dir, + 'remoteExtPath' => 'UniversalLanguageSelector', + 'dependencies' => array( + 'ext.uls.init', + 'jquery.tipsy', 'ext.uls.displaysettings', 'ext.uls.inputsettings', - 'ext.uls.geoclient' ), 'position' => 'top', ); diff --git a/resources/js/ext.uls.init.js b/resources/js/ext.uls.init.js index 994c7c10..b449c7a5 100644 --- a/resources/js/ext.uls.init.js +++ b/resources/js/ext.uls.init.js @@ -1,7 +1,7 @@ /** - * ULS startup script. + * ULS startup script - MediaWiki specific customization for jquery.uls * - * Copyright (C) 2012 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 * contributors. See CREDITS for a list. * @@ -137,8 +137,6 @@ } $( document ).ready( function () { - var $ulsTrigger, previousLanguages, previousLang; - /* * The 'als' is used in a non-standard way in MediaWiki - * it may be used to represent the Allemanic language, @@ -152,178 +150,5 @@ // JavaScript side i18n initialization i18nInit(); - $ulsTrigger = $( '.uls-trigger' ); - previousLanguages = mw.uls.getPreviousLanguages() || []; - previousLang = previousLanguages.slice( -1 )[0]; - - function displaySettings() { - var $displaySettingsTitle, displaySettingsText, $displaySettings; - - displaySettingsText = $.i18n( 'ext-uls-display-settings-desc' ); - $displaySettingsTitle = $( '