/**
* ULS-based display settings panel
*
* Copyright (C) 2012 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.
*
* UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't
* have to do anything special to choose one license or the other and you don't
* have to notify anyone which license you are using. You are free to use
* UniversalLanguageSelector in commercial projects as long as the copyright
* header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.
*
* @file
* @ingroup Extensions
* @licence GNU General Public Licence 2.0 or later
* @licence MIT License
*/
( function( $ ) {
"use strict";
var template = '
Display Settings
'
+ '
Select Language
'
+ '
'
+ '
'
+ '
Font Settings
'
+ '
'
+ '
'
+ ''
+ '
'
+ '
'
+ '
Select your preferred fonts
'
+ '
'
+ ''
+ '
'
+ ''
+ ''
+ '
'
+ '
'
+ ''
+ ''
+ '
'
+ '
'; // FIXME i18n and too much hardcoding.
var DisplaySettings = function ( $parent ) {
this.name = "Display";
this.description = "Set the languages of menus and fonts";
this.$template = $( template );
this.language = this.currentLanguage();
this.$webfonts = null;
this.$parent = $parent;
this.webfontPreferences = new $.fn.uls.preferences( 'webfonts' );
};
DisplaySettings.prototype = {
Constructor: DisplaySettings,
/**
* Render the module into a given target
*/
render: function () {
this.$parent.$settingsPanel.empty();
this.$webfonts = $( 'body' ).data( 'webfonts' );
this.$parent.$settingsPanel.append( this.$template );
$( 'select.uls-font-select' ).val( );
this.prepareLanguages();
this.prepareFonts();
this.prepareWebfontsCheckbox();
this.listen();
},
prepareWebfontsCheckbox: function () {
var enable = this.webfontPreferences.get( 'webfontsEnabled' );
// If the user didn't use the checkbox, the preference will be undefined.
// The default for now is to enable webfonts if the user didn't select anything.
if ( enable === undefined ) {
enable = true;
}
$( '#webfonts-enable-checkbox' ).prop( 'checked', enable );
},
/**
* Prepare the UI language selector
*/
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 = $( '