Merge pull request #86 from amire80/too-many-var
Leave only one var statement per scope
This commit is contained in:
@@ -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 );
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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 );
|
||||||
|
|||||||
Reference in New Issue
Block a user