Merge pull request #86 from amire80/too-many-var

Leave only one var statement per scope
This commit is contained in:
Siebrand Mazeland
2013-04-22 06:52:51 -07:00
4 changed files with 54 additions and 38 deletions

View File

@@ -21,9 +21,11 @@
( function ( $ ) { ( function ( $ ) {
'use strict'; 'use strict';
var template, ULS;
// Region numbers in id attributes also appear in the langdb. // Region numbers in id attributes also appear in the langdb.
/*jshint multistr:true */ /*jshint multistr:true */
var template = '\ template = '\
<div class="grid uls-menu uls-wide"> \ <div class="grid uls-menu uls-wide"> \
<div class="row"> \ <div class="row"> \
<span id="uls-close" class="icon-close"></span> \ <span id="uls-close" class="icon-close"></span> \
@@ -80,7 +82,7 @@
/** /**
* ULS Public class definition * ULS Public class definition
*/ */
var ULS = function ( element, options ) { ULS = function ( element, options ) {
this.$element = $( element ); this.$element = $( element );
this.options = $.extend( {}, $.fn.uls.defaults, options ); this.options = $.extend( {}, $.fn.uls.defaults, options );
this.$menu = $( template ); this.$menu = $( template );

View File

@@ -25,7 +25,9 @@
(function ( $ ) { (function ( $ ) {
'use strict'; 'use strict';
var LanguageFilter = function( element, options ) { var LanguageFilter, delay;
LanguageFilter = function( element, options ) {
this.$element = $( element ); this.$element = $( element );
this.options = $.extend( {}, $.fn.regionselector.defaults, options ); this.options = $.extend( {}, $.fn.regionselector.defaults, options );
this.$element.addClass( 'languagefilter' ); this.$element.addClass( 'languagefilter' );
@@ -37,7 +39,7 @@
this.listen(); this.listen();
}; };
var delay = ( function() { delay = ( function() {
var timer = 0; var timer = 0;
return function( callback, milliseconds ) { return function( callback, milliseconds ) {
@@ -63,9 +65,11 @@
}, },
keyup: function( e ) { keyup: function( e ) {
var suggestion, query, languageFilter;
switch( e.keyCode ) { switch( e.keyCode ) {
case 9: // Tab -> Autocomplete case 9: // Tab -> Autocomplete
var suggestion = this.$suggestion.val(); suggestion = this.$suggestion.val();
if ( suggestion && suggestion !== this.$element.val() ) { if ( suggestion && suggestion !== this.$element.val() ) {
this.$element.val( suggestion ); this.$element.val( suggestion );
@@ -78,7 +82,7 @@
break; break;
} }
var query = $.trim( this.$element.val() ).toLowerCase(); query = $.trim( this.$element.val() ).toLowerCase();
if ( this.selectedLanguage ) { if ( this.selectedLanguage ) {
// this.selectLanguage will be populated from a matching search // this.selectLanguage will be populated from a matching search
@@ -91,7 +95,7 @@
break; break;
default: default:
var languageFilter = this; languageFilter = this;
if ( e.which < 32 && if ( e.which < 32 &&
e.which !== 8 // Backspace e.which !== 8 // Backspace

View File

@@ -22,8 +22,10 @@
( function ( $ ) { ( function ( $ ) {
'use strict'; 'use strict';
var noResultsTemplate, LanguageCategoryDisplay;
/*jshint multistr:true */ /*jshint multistr:true */
var noResultsTemplate = '\ noResultsTemplate = '\
<div class="twelve columns uls-no-results-view">\ <div class="twelve columns uls-no-results-view">\
<h2 data-i18n="uls-no-results-found" class="eleven columns end offset-by-one uls-no-results-found-title">\ <h2 data-i18n="uls-no-results-found" class="eleven columns end offset-by-one uls-no-results-found-title">\
No results found\ No results found\
@@ -47,7 +49,7 @@
</div>'; </div>';
/*jshint multistr:false */ /*jshint multistr:false */
var LanguageCategoryDisplay = function ( element, options ) { LanguageCategoryDisplay = function ( element, options ) {
this.$element = $( element ); this.$element = $( element );
this.options = $.extend( {}, $.fn.lcd.defaults, options ); this.options = $.extend( {}, $.fn.lcd.defaults, options );
this.$element.addClass( 'lcd' ); this.$element.addClass( 'lcd' );
@@ -74,7 +76,8 @@
* @param region Optional region * @param region Optional region
*/ */
addToRegion: function ( langCode, region ) { addToRegion: function ( langCode, region ) {
var lcd = this, var i, regionCode, $li, $column, lastLanguage, lastScriptGroup, currentScriptGroup,
lcd = this,
language = lcd.options.languages[langCode], language = lcd.options.languages[langCode],
langName = $.uls.data.getAutonym( langCode ) || language || langCode, langName = $.uls.data.getAutonym( langCode ) || language || langCode,
regions = []; regions = [];
@@ -90,10 +93,10 @@
regions = [ 'WW' ]; regions = [ 'WW' ];
} }
for ( var i = 0; i < regions.length; i++ ) { for ( i = 0; i < regions.length; i++ ) {
var regionCode = regions[i]; regionCode = regions[i];
var $li = $( '<li>' ) $li = $( '<li>' )
.data( 'code', langCode ) .data( 'code', langCode )
.attr( { .attr( {
lang: langCode, lang: langCode,
@@ -104,12 +107,12 @@
); );
// Append the element to the column in the list // Append the element to the column in the list
var $column = lcd.getColumn( regionCode ); $column = lcd.getColumn( regionCode );
var lastLanguage = $column.find( 'li:last' ).data( 'code' ); lastLanguage = $column.find( 'li:last' ).data( 'code' );
if ( lastLanguage ) { if ( lastLanguage ) {
var lastScriptGroup = $.uls.data.getScriptGroupOfLanguage( lastLanguage ), lastScriptGroup = $.uls.data.getScriptGroupOfLanguage( lastLanguage );
currentScriptGroup = $.uls.data.getScriptGroupOfLanguage( langCode ); currentScriptGroup = $.uls.data.getScriptGroupOfLanguage( langCode );
if ( lastScriptGroup !== currentScriptGroup ) { if ( lastScriptGroup !== currentScriptGroup ) {
if ( $column.find( 'li' ).length > 2 ) { if ( $column.find( 'li' ).length > 2 ) {
@@ -172,7 +175,7 @@
PA: 'Pacific' PA: 'Pacific'
}; };
$.each( $.uls.data.regiongroups, function ( regionCode, regionIndex ) { $.each( $.uls.data.regiongroups, function ( regionCode ) {
$section = $( '<div>' ).addClass( 'twelve columns uls-lcd-region-section' ).prop( 'id', regionCode ); $section = $( '<div>' ).addClass( 'twelve columns uls-lcd-region-section' ).prop( 'id', regionCode );
$sectionTitle = $( '<h3 data-i18n="uls-region-' + regionCode + '">' ) $sectionTitle = $( '<h3 data-i18n="uls-region-' + regionCode + '">' )
@@ -194,6 +197,9 @@
}, },
quicklist: function () { quicklist: function () {
var quickList, $quickListSection, $quickListSectionTitle, i,
$column, langCode, language, langName, $li;
if ( $.isFunction( this.options.quickList ) ) { if ( $.isFunction( this.options.quickList ) ) {
this.options.quickList = 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 // 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 = quickList.slice( 0, 16 );
quickList.sort( $.uls.data.sortByAutonym ); quickList.sort( $.uls.data.sortByAutonym );
var $quickListSection = $( '<div>' ).addClass( 'twelve columns uls-lcd-region-section' ).prop( 'id', 'uls-lcd-quicklist' ); $quickListSection = $( '<div>' ).addClass( 'twelve columns uls-lcd-region-section' ).prop( 'id', 'uls-lcd-quicklist' );
var $quickListSectionTitle = $( '<h3 data-i18n="uls-common-languages">' ) $quickListSectionTitle = $( '<h3 data-i18n="uls-common-languages">' )
.addClass( 'eleven columns uls-lcd-region-section uls-lcd-region-title offset-by-one' ) .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 .text( 'Common languages' ); // This is placeholder text if jquery.i18n not present
$quickListSection.append( $quickListSectionTitle ); $quickListSection.append( $quickListSectionTitle );
this.$element.prepend( $quickListSection ); this.$element.prepend( $quickListSection );
this.regionDivs.quick = $quickListSection; this.regionDivs.quick = $quickListSection;
for ( var i = 0; i < quickList.length; i++) { for ( i = 0; i < quickList.length; i++) {
var $column = this.getColumn( 'quick', i % 4 === 0 ); $column = this.getColumn( 'quick', i % 4 === 0 );
var langCode = quickList[i]; langCode = quickList[i];
var language = this.options.languages[langCode]; language = this.options.languages[langCode];
var langName = $.uls.data.getAutonym( langCode ) || language || langCode; langName = $.uls.data.getAutonym( langCode ) || language || langCode;
var $li = $( '<li>' ) $li = $( '<li>' )
.data( 'code', langCode ) .data( 'code', langCode )
.attr( { .attr( {
lang: langCode, lang: langCode,

View File

@@ -22,13 +22,15 @@
/* RegionSelector plugin definition */ /* RegionSelector plugin definition */
var RegionSelector, delay;
/** /**
* Region selector is a language selector based on regions. * Region selector is a language selector based on regions.
* Usage: $( 'jqueryselector' ).regionselector( options ); * Usage: $( 'jqueryselector' ).regionselector( options );
* The attached element should have data-regiongroup attribute * The attached element should have data-regiongroup attribute
* that defines the regiongroup for the selector. * that defines the regiongroup for the selector.
*/ */
var RegionSelector = function ( element, options ) { RegionSelector = function ( element, options ) {
this.$element = $( element ); this.$element = $( element );
this.options = $.extend( {}, $.fn.regionselector.defaults, options ); this.options = $.extend( {}, $.fn.regionselector.defaults, options );
this.$element.addClass( 'regionselector' ); this.$element.addClass( 'regionselector' );
@@ -52,10 +54,10 @@
}, },
test: function ( langCode ) { test: function ( langCode ) {
var langRegions = $.uls.data.getRegions( langCode ), var region, i,
region; 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]; region = this.regions[i];
if ( $.inArray( region, langRegions ) >= 0 ) { if ( $.inArray( region, langRegions ) >= 0 ) {
@@ -68,10 +70,12 @@
}, },
show: function () { show: function () {
var result, languagesByScriptGroup, scriptGroup, languages, i;
if ( this.cache ) { if ( this.cache ) {
// If the result cache is present, render the results from there. // If the result cache is present, render the results from there.
//noinspection JSUnusedAssignment //noinspection JSUnusedAssignment
var result = null; result = null;
for ( result in this.cache ) { for ( result in this.cache ) {
this.render( result, this.cache[result] ); this.render( result, this.cache[result] );
@@ -79,13 +83,13 @@
} else { } else {
this.cache = {}; this.cache = {};
// Get the languages grouped by script group // 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 // Make sure that we go by the original order
// of script groups // of script groups
for ( var scriptGroup in $.uls.data.scriptgroups ) { for ( scriptGroup in $.uls.data.scriptgroups ) {
// Get the languages for the script group // Get the languages for the script group
var languages = languagesByScriptGroup[scriptGroup]; languages = languagesByScriptGroup[scriptGroup];
// It's possible that some script groups are missing // It's possible that some script groups are missing
if ( !languages ) { if ( !languages ) {
@@ -95,7 +99,7 @@
// Sort it based on autonym // Sort it based on autonym
languages.sort( $.uls.data.sortByAutonym ); 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 // Check whether it belongs to the region
this.test( languages[i] ); this.test( languages[i] );
} }
@@ -145,7 +149,7 @@
this.options.$target.$element.bind( 'scrollend', $.proxy( this.next, this ) ); 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 // Don't do anything if a region is selected already
if ( this.$element.hasClass( 'active' ) ) { if ( this.$element.hasClass( 'active' ) ) {
return; return;
@@ -191,7 +195,7 @@
$.fn.regionselector.Constructor = RegionSelector; $.fn.regionselector.Constructor = RegionSelector;
var delay = ( function () { delay = ( function () {
var timer = 0; var timer = 0;
return function ( callback, milliseconds ) { return function ( callback, milliseconds ) {
clearTimeout( timer ); clearTimeout( timer );