From 62cab27eb2970041872f0217c031a15207713914 Mon Sep 17 00:00:00 2001 From: "Amir E. Aharoni" Date: Mon, 22 Apr 2013 14:39:34 +0300 Subject: [PATCH] Leave only one var statement per scope --- src/jquery.uls.core.js | 6 +++-- src/jquery.uls.languagefilter.js | 14 ++++++---- src/jquery.uls.lcd.js | 46 ++++++++++++++++++-------------- src/jquery.uls.regionfilter.js | 26 ++++++++++-------- 4 files changed, 54 insertions(+), 38 deletions(-) diff --git a/src/jquery.uls.core.js b/src/jquery.uls.core.js index 060d694..6352239 100644 --- a/src/jquery.uls.core.js +++ b/src/jquery.uls.core.js @@ -21,9 +21,11 @@ ( function ( $ ) { 'use strict'; + var template, ULS; + // Region numbers in id attributes also appear in the langdb. /*jshint multistr:true */ - var template = '\ + template = '\
\
\ \ @@ -80,7 +82,7 @@ /** * ULS Public class definition */ - var ULS = function ( element, options ) { + ULS = function ( element, options ) { this.$element = $( element ); this.options = $.extend( {}, $.fn.uls.defaults, options ); this.$menu = $( template ); diff --git a/src/jquery.uls.languagefilter.js b/src/jquery.uls.languagefilter.js index ec62cd2..28140f8 100644 --- a/src/jquery.uls.languagefilter.js +++ b/src/jquery.uls.languagefilter.js @@ -25,7 +25,9 @@ (function ( $ ) { 'use strict'; - var LanguageFilter = function( element, options ) { + var LanguageFilter, delay; + + LanguageFilter = function( element, options ) { this.$element = $( element ); this.options = $.extend( {}, $.fn.regionselector.defaults, options ); this.$element.addClass( 'languagefilter' ); @@ -37,7 +39,7 @@ this.listen(); }; - var delay = ( function() { + delay = ( function() { var timer = 0; return function( callback, milliseconds ) { @@ -63,9 +65,11 @@ }, keyup: function( e ) { + var suggestion, query, languageFilter; + switch( e.keyCode ) { case 9: // Tab -> Autocomplete - var suggestion = this.$suggestion.val(); + suggestion = this.$suggestion.val(); if ( suggestion && suggestion !== this.$element.val() ) { this.$element.val( suggestion ); @@ -78,7 +82,7 @@ break; } - var query = $.trim( this.$element.val() ).toLowerCase(); + query = $.trim( this.$element.val() ).toLowerCase(); if ( this.selectedLanguage ) { // this.selectLanguage will be populated from a matching search @@ -91,7 +95,7 @@ break; default: - var languageFilter = this; + languageFilter = this; if ( e.which < 32 && e.which !== 8 // Backspace diff --git a/src/jquery.uls.lcd.js b/src/jquery.uls.lcd.js index a353c7b..c03dabb 100644 --- a/src/jquery.uls.lcd.js +++ b/src/jquery.uls.lcd.js @@ -22,8 +22,10 @@ ( function ( $ ) { 'use strict'; + var noResultsTemplate, LanguageCategoryDisplay; + /*jshint multistr:true */ - var noResultsTemplate = '\ + noResultsTemplate = '\
\

\ No results found\ @@ -47,7 +49,7 @@

'; /*jshint multistr:false */ - var LanguageCategoryDisplay = function ( element, options ) { + LanguageCategoryDisplay = function ( element, options ) { this.$element = $( element ); this.options = $.extend( {}, $.fn.lcd.defaults, options ); this.$element.addClass( 'lcd' ); @@ -74,7 +76,8 @@ * @param region Optional region */ addToRegion: function ( langCode, region ) { - var lcd = this, + var i, regionCode, $li, $column, lastLanguage, lastScriptGroup, currentScriptGroup, + lcd = this, language = lcd.options.languages[langCode], langName = $.uls.data.getAutonym( langCode ) || language || langCode, regions = []; @@ -90,10 +93,10 @@ regions = [ 'WW' ]; } - for ( var i = 0; i < regions.length; i++ ) { - var regionCode = regions[i]; + for ( i = 0; i < regions.length; i++ ) { + regionCode = regions[i]; - var $li = $( '
  • ' ) + $li = $( '
  • ' ) .data( 'code', langCode ) .attr( { lang: langCode, @@ -104,12 +107,12 @@ ); // Append the element to the column in the list - var $column = lcd.getColumn( regionCode ); - var lastLanguage = $column.find( 'li:last' ).data( 'code' ); + $column = lcd.getColumn( regionCode ); + lastLanguage = $column.find( 'li:last' ).data( 'code' ); if ( lastLanguage ) { - var lastScriptGroup = $.uls.data.getScriptGroupOfLanguage( lastLanguage ), - currentScriptGroup = $.uls.data.getScriptGroupOfLanguage( langCode ); + lastScriptGroup = $.uls.data.getScriptGroupOfLanguage( lastLanguage ); + currentScriptGroup = $.uls.data.getScriptGroupOfLanguage( langCode ); if ( lastScriptGroup !== currentScriptGroup ) { if ( $column.find( 'li' ).length > 2 ) { @@ -172,7 +175,7 @@ PA: 'Pacific' }; - $.each( $.uls.data.regiongroups, function ( regionCode, regionIndex ) { + $.each( $.uls.data.regiongroups, function ( regionCode ) { $section = $( '
    ' ).addClass( 'twelve columns uls-lcd-region-section' ).prop( 'id', regionCode ); $sectionTitle = $( '

    ' ) @@ -194,6 +197,9 @@ }, quicklist: function () { + var quickList, $quickListSection, $quickListSectionTitle, i, + $column, langCode, language, langName, $li; + if ( $.isFunction( this.options.quickList ) ) { this.options.quickList = this.options.quickList(); } @@ -203,24 +209,24 @@ } // Pick only the first elements, because we don't have room for more - var quickList = this.options.quickList; + quickList = this.options.quickList; quickList = quickList.slice( 0, 16 ); quickList.sort( $.uls.data.sortByAutonym ); - var $quickListSection = $( '
    ' ).addClass( 'twelve columns uls-lcd-region-section' ).prop( 'id', 'uls-lcd-quicklist' ); - var $quickListSectionTitle = $( '

    ' ) + $quickListSection = $( '
    ' ).addClass( 'twelve columns uls-lcd-region-section' ).prop( 'id', 'uls-lcd-quicklist' ); + $quickListSectionTitle = $( '

    ' ) .addClass( 'eleven columns uls-lcd-region-section uls-lcd-region-title offset-by-one' ) .text( 'Common languages' ); // This is placeholder text if jquery.i18n not present $quickListSection.append( $quickListSectionTitle ); this.$element.prepend( $quickListSection ); this.regionDivs.quick = $quickListSection; - for ( var i = 0; i < quickList.length; i++) { - var $column = this.getColumn( 'quick', i % 4 === 0 ); - var langCode = quickList[i]; - var language = this.options.languages[langCode]; - var langName = $.uls.data.getAutonym( langCode ) || language || langCode; - var $li = $( '
  • ' ) + for ( i = 0; i < quickList.length; i++) { + $column = this.getColumn( 'quick', i % 4 === 0 ); + langCode = quickList[i]; + language = this.options.languages[langCode]; + langName = $.uls.data.getAutonym( langCode ) || language || langCode; + $li = $( '
  • ' ) .data( 'code', langCode ) .attr( { lang: langCode, diff --git a/src/jquery.uls.regionfilter.js b/src/jquery.uls.regionfilter.js index 9b4ae47..ab1d6e5 100644 --- a/src/jquery.uls.regionfilter.js +++ b/src/jquery.uls.regionfilter.js @@ -22,13 +22,15 @@ /* RegionSelector plugin definition */ + var RegionSelector, delay; + /** * Region selector is a language selector based on regions. * Usage: $( 'jqueryselector' ).regionselector( options ); * The attached element should have data-regiongroup attribute * that defines the regiongroup for the selector. */ - var RegionSelector = function ( element, options ) { + RegionSelector = function ( element, options ) { this.$element = $( element ); this.options = $.extend( {}, $.fn.regionselector.defaults, options ); this.$element.addClass( 'regionselector' ); @@ -52,10 +54,10 @@ }, test: function ( langCode ) { - var langRegions = $.uls.data.getRegions( langCode ), - region; + var region, i, + langRegions = $.uls.data.getRegions( langCode ); - for ( var i = 0; i < this.regions.length; i++ ) { + for ( i = 0; i < this.regions.length; i++ ) { region = this.regions[i]; if ( $.inArray( region, langRegions ) >= 0 ) { @@ -68,10 +70,12 @@ }, show: function () { + var result, languagesByScriptGroup, scriptGroup, languages, i; + if ( this.cache ) { // If the result cache is present, render the results from there. //noinspection JSUnusedAssignment - var result = null; + result = null; for ( result in this.cache ) { this.render( result, this.cache[result] ); @@ -79,13 +83,13 @@ } else { this.cache = {}; // Get the languages grouped by script group - var languagesByScriptGroup = $.uls.data.getLanguagesByScriptGroup( this.options.languages ); + languagesByScriptGroup = $.uls.data.getLanguagesByScriptGroup( this.options.languages ); // Make sure that we go by the original order // of script groups - for ( var scriptGroup in $.uls.data.scriptgroups ) { + for ( scriptGroup in $.uls.data.scriptgroups ) { // Get the languages for the script group - var languages = languagesByScriptGroup[scriptGroup]; + languages = languagesByScriptGroup[scriptGroup]; // It's possible that some script groups are missing if ( !languages ) { @@ -95,7 +99,7 @@ // Sort it based on autonym languages.sort( $.uls.data.sortByAutonym ); - for ( var i = 0; i < languages.length; i++ ) { + for ( i = 0; i < languages.length; i++ ) { // Check whether it belongs to the region this.test( languages[i] ); } @@ -145,7 +149,7 @@ this.options.$target.$element.bind( 'scrollend', $.proxy( this.next, this ) ); }, - click: function ( e ) { + click: function () { // Don't do anything if a region is selected already if ( this.$element.hasClass( 'active' ) ) { return; @@ -191,7 +195,7 @@ $.fn.regionselector.Constructor = RegionSelector; - var delay = ( function () { + delay = ( function () { var timer = 0; return function ( callback, milliseconds ) { clearTimeout( timer );