Make the close button of language settings work

* Actually it should go to previous context. but that is a FIXME
* Jslint fixes

Change-Id: I2e0685adc42331fd86716dfa73be3630208aa893
This commit is contained in:
Santhosh Thottingal
2012-08-21 14:53:19 +05:30
parent 5c6567adbc
commit d070071274
2 changed files with 29 additions and 13 deletions

View File

@@ -17,7 +17,7 @@
* @licence MIT License * @licence MIT License
*/ */
( function( $, mw ) { ( function( $, mw, window, undefined ) {
"use strict"; "use strict";
var template = '<div class="row"><div class="twelve columns"><h3>Display Settings</h3></div></div>' var template = '<div class="row"><div class="twelve columns"><h3>Display Settings</h3></div></div>'
@@ -112,6 +112,15 @@
languages.push( previousLanguages[lang] ); languages.push( previousLanguages[lang] );
} }
function buttonHandler( button ) {
return function () {
that.uiLanguage = button.data( "language" ) || that.uiLanguage;
$( "div.uls-ui-languages button.button" ).removeClass( "down" );
button.addClass( "down" );
that.prepareUIFonts();
};
}
for ( var i = 0; i < 3; i++ ) { for ( var i = 0; i < 3; i++ ) {
var language = languages[i]; var language = languages[i];
var $button = $( '<button>' ) var $button = $( '<button>' )
@@ -122,12 +131,7 @@
} }
$button.data( 'language', language ); $button.data( 'language', language );
$languages.append( $button ); $languages.append( $button );
$button.on ( 'click', function () { $button.on ( 'click', buttonHandler( $button ) );
that.uiLanguage = $( this ).data( "language" ) || that.uiLanguage;
$( "div.uls-ui-languages button.button" ).removeClass( "down" );
$( this ).addClass( "down" );
that.prepareUIFonts();
} );
} }
this.prepareMoreLanguages(); this.prepareMoreLanguages();
}, },
@@ -190,7 +194,7 @@
*/ */
getUILanguage: function () { getUILanguage: function () {
if ( !window.mw ) { if ( !window.mw ) {
return navigator.language || navigator.userLanguage; return window.navigator.language || window.navigator.userLanguage;
} }
return mw.config.get( 'wgUserLanguage' ); return mw.config.get( 'wgUserLanguage' );
}, },
@@ -277,10 +281,15 @@
$uiFontSelector = this.$template.find( "select#ui-font-selector" ); $uiFontSelector = this.$template.find( "select#ui-font-selector" );
// TODO all these repeated selectors can be placed in object constructor. // TODO all these repeated selectors can be placed in object constructor.
this.$template.find( '#uls-displaysettings-apply' ).on( 'click', function () { this.$template.find( 'button#uls-displaysettings-apply' ).on( 'click', function () {
that.apply(); that.apply();
} ); } );
this.$template.find( 'button.uls-settings-close' ).on( 'click', function () {
// FIXME This should actually go to the previous context than just hiding.
that.hide();
} );
this.$template.find( '#webfonts-enable-checkbox' ).on( 'click', function () { this.$template.find( '#webfonts-enable-checkbox' ).on( 'click', function () {
if ( this.checked ) { if ( this.checked ) {
that.webfontPreferences.set( 'webfonts-enabled', true ); that.webfontPreferences.set( 'webfonts-enabled', true );
@@ -308,6 +317,14 @@
} ); } );
}, },
/**
* Hide this window.2
*/
hide: function () {
this.$parent.hide();
},
/** /**
* Change the language of wiki using setlang URL parameter * Change the language of wiki using setlang URL parameter
* @param {String} language * @param {String} language
@@ -356,4 +373,4 @@
$.fn.languagesettings.modules = $.extend( $.fn.languagesettings.modules, { $.fn.languagesettings.modules = $.extend( $.fn.languagesettings.modules, {
display: DisplaySettings display: DisplaySettings
} ); } );
} ) ( jQuery, mediaWiki ); } ) ( jQuery, mediaWiki, window );

View File

@@ -20,7 +20,7 @@
( function( $ ) { ( function( $ ) {
"use strict"; "use strict";
var closeRow = '<div class="row" id="languagesettings-close">' + var closeRow = '<div class="row">' +
'<span id="languagesettings-close" class="icon-close"></span>' + '<span id="languagesettings-close" class="icon-close"></span>' +
'</div>'; '</div>';
var settingsMenu = '<div class="four columns languagesettings-menu">' + var settingsMenu = '<div class="four columns languagesettings-menu">' +
@@ -64,8 +64,7 @@
var that = this; var that = this;
// Register all event listeners to the ULS language settings here. // Register all event listeners to the ULS language settings here.
that.$element.on( "click", $.proxy( that.show, that ) ); that.$element.on( "click", $.proxy( that.show, that ) );
$( '#languagesettings-close' ).on( "click", $.proxy( that.hide, that ) ); that.$window.find( 'span#languagesettings-close' ).on( "click", $.proxy( that.hide, that ) );
$( '.uls-settings-close' ).on( "click", $.proxy( that.hide, that ) );
}, },
render: function() { render: function() {