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 = $( '