diff --git a/UniversalLanguageSelector.php b/UniversalLanguageSelector.php index 0e75c89a..725dee61 100644 --- a/UniversalLanguageSelector.php +++ b/UniversalLanguageSelector.php @@ -89,7 +89,8 @@ $wgResourceModules['ext.uls.webfonts'] = array( 'localBasePath' => $dir, 'remoteExtPath' => 'UniversalLanguageSelector', 'dependencies' => array( - 'jquery.webfonts' + 'jquery.webfonts', + 'ext.uls.webfonts.repository', ), ); @@ -138,7 +139,7 @@ $wgResourceModules['jquery.webfonts'] = array( ); $wgResourceModules['ext.uls.webfonts.repository'] = array( - 'scripts' => 'resources/js/jquery.webfonts.repository.js', + 'scripts' => 'resources/js/ext.uls.webfonts.repository.js', 'localBasePath' => $dir, 'remoteExtPath' => 'UniversalLanguageSelector', ); diff --git a/resources/css/ext.languagesettings.css b/resources/css/ext.languagesettings.css index f0d4f5f0..d4d9a79f 100644 --- a/resources/css/ext.languagesettings.css +++ b/resources/css/ext.languagesettings.css @@ -39,6 +39,13 @@ border-bottom: none; } +.languagesettings-menu h1 { + font-size: 18pt; + line-height: 20pt; + margin-top: 0; + padding-top: 15px; +} + .language-settings-buttons { text-align: right; } @@ -58,37 +65,36 @@ border-left-color: #3366BB; } -button.toggle.button { - background: #eee; - color: black; +button.button { + background-color: #E6E6E6; + background-image: -moz-linear-gradient(center top, #F0F0F0, #E6E6E6); + border: 1px solid #C9C9C9; + border-radius: 3px 3px 3px 3px; + color: #252525; cursor: pointer; - border-top: solid 2px #eaeaea; - border-left: solid 2px #eaeaea; - border-bottom: solid 2px #777; - border-right: solid 2px #777; - padding: 5px 5px; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; + display: inline-block; + font: bold 0.813em/1 Arial, sans-serif; + padding: 0.4065em 1.2195em; text-align: center; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); } -button.toggle.button.down { - background: #bbb; - border-top: solid 2px #777; - border-left: solid 2px #777; - border-bottom: solid 2px #eaeaea; - border-right: solid 2px #eaeaea; +button.button:active, +button.button.down { + background-color: #D8D8D8; + background-image: -moz-linear-gradient(center top, #D3D3D3, #D8D8D8); + border-color: #C9C9C9; } .language-settings-buttons { - border-top: solid 2px #aaa; - padding: 10px; - margin-top: 10px; + border-top: 1px solid #F0F0F0; + margin-top: 15px; + padding: 15px; + width: auto; } label.checkbox input[type="checkbox"] { padding-left: -20px; float: left; + color: #777777; } \ No newline at end of file diff --git a/resources/js/ext.uls.displaysettings.js b/resources/js/ext.uls.displaysettings.js index 941bc771..511bbfac 100644 --- a/resources/js/ext.uls.displaysettings.js +++ b/resources/js/ext.uls.displaysettings.js @@ -19,59 +19,164 @@ ( function( $ ) { "use strict"; - var template = '

Display Settings

' - + '

Select Language

' - + '
' - + '' - + '' - + '' - + '' + + var template = '

Display Settings

' + + '

Language used for menus

' + + '
' + '
' + '

Font Settings

' - + '
' + + '
' + '' + '
' - + '
Select your preferred fonts to use
' + + '
Set your preferred fonts to use
' + '
' - + '
Fonts for English
' + + '
' + '
' + '
' + '
' + '
' - + '' - + '' - + '
'; // FIXME too much hardcoding. + + '' + + '' + + '
'; // FIXME i18n and too much hardcoding. - var displaySettings = { - name: "Display", - description: "Set the fonts for languages", + var DisplaySettings = function () { + this.name = "Display"; + this.description = "Set the languages of menus and fonts"; + this.$template = $( template ); + this.language = this.currentLanguage(); + this.$webfonts = null; + }; - render: function() { - return template; + DisplaySettings.prototype = { + + Constructor: DisplaySettings, + + /** + * Render the module into a given target + * @param $target + */ + render: function ( $target ) { + $target.empty(); + this.$webfonts = $( 'body' ).data( 'webfonts' ); + $target.append( this.$template ); + this.prepareLanguages(); + this.prepareFonts(); + this.listen(); }, - listen: function() { - var $webfonts = $( 'body' ).data( 'webfonts' ); - var fonts = $webfonts.list( 'en' ); // FIXME + /** + * Prepare the UI language chooser + */ + prepareLanguages: function () { + var $languages = $( 'div.uls-ui-languages' ); + $languages.empty(); + var previousLanguages = this.previousLanguages(); + var languages = [this.language]; + $.merge( languages, previousLanguages); + $.unique( languages ); + for ( var i = 0; i < 3; i++ ) { + var language = languages[i]; + var $button = $( '