diff --git a/.jshintrc b/.jshintrc index bed1afa5..92db6ebe 100644 --- a/.jshintrc +++ b/.jshintrc @@ -2,7 +2,8 @@ "predef": [ "jQuery", "QUnit", - "_" + "_", + "mediaWiki" ], "camelcase": true, diff --git a/resources/js/ext.uls.displaysettings.js b/resources/js/ext.uls.displaysettings.js index 0bd5aabe..c3143264 100644 --- a/resources/js/ext.uls.displaysettings.js +++ b/resources/js/ext.uls.displaysettings.js @@ -18,7 +18,7 @@ */ ( function ( $, mw, undefined ) { - "use strict"; + 'use strict'; var template = '
' + '
' // Top "Display settings" title @@ -86,16 +86,16 @@ + '
' + '
'; // FIXME i18n and too much hardcoding. - var DisplaySettings = function ( $parent ) { - this.name = $.i18n( "ext-uls-display-settings-title-short" ); - this.description = $.i18n( "ext-uls-display-settings-desc" ); + function DisplaySettings( $parent ) { + this.name = $.i18n( 'ext-uls-display-settings-title-short' ); + this.description = $.i18n( 'ext-uls-display-settings-desc' ); this.$template = $( template ); this.uiLanguage = this.getUILanguage(); this.contentLanguage = this.getContentLanguage(); this.$webfonts = null; this.$parent = $parent; this.webfontPreferences = mw.uls.preferences( 'webfonts' ); - }; + } DisplaySettings.prototype = { @@ -135,16 +135,19 @@ * Prepare the UI language selector */ prepareLanguages: function () { - var displaySettings = this, - $languages = this.$template.find( 'div.uls-ui-languages' ), - suggestedLanguages = this.frequentLanguageList() - // Common world languages, for the case that there are - // too few suggested languages - .concat( ['en', 'zh', 'fr'] ), + var displaySettings = this, languagesForButtons, $languages, suggestedLanguages, + SUGGESTED_LANGUAGES_NUMBER, lang, i, language, $button; - // Content language is always on the first button - languagesForButtons = [this.contentLanguage], - SUGGESTED_LANGUAGES_NUMBER = 3; + SUGGESTED_LANGUAGES_NUMBER = 3; + displaySettings = this; + $languages = this.$template.find( 'div.uls-ui-languages' ); + suggestedLanguages = this.frequentLanguageList() + // Common world languages, for the case that there are + // too few suggested languages + .concat( [ 'en', 'zh', 'fr' ] ); + + // Content language is always on the first button + languagesForButtons = [ this.contentLanguage ]; // This is needed when drawing the panel for the second time // after selecting a different language @@ -155,7 +158,7 @@ languagesForButtons.push( this.uiLanguage ); } - for ( var lang in suggestedLanguages ) { + for ( lang in suggestedLanguages ) { // Skip already found languages if ( $.inArray( suggestedLanguages[lang], languagesForButtons ) > -1 ) { continue; @@ -171,23 +174,23 @@ function buttonHandler( button ) { return function () { - displaySettings.uiLanguage = button.data( "language" ) || displaySettings.uiLanguage; - $( "div.uls-ui-languages button.button" ).removeClass( "down" ); - button.addClass( "down" ); + displaySettings.uiLanguage = button.data( 'language' ) || displaySettings.uiLanguage; + $( 'div.uls-ui-languages button.button' ).removeClass( 'down' ); + button.addClass( 'down' ); displaySettings.prepareUIFonts(); }; } // Add the buttons for the most likely languages - for ( var i = 0; i < SUGGESTED_LANGUAGES_NUMBER; i++ ) { - var language = languagesForButtons[i], - $button = $( '