diff --git a/src/jquery.uls.core.js b/src/jquery.uls.core.js index c8e9bf0..35b3b3a 100644 --- a/src/jquery.uls.core.js +++ b/src/jquery.uls.core.js @@ -53,16 +53,12 @@ '; /*jshint multistr:false */ - $.uls = $.uls || {}; - - $.uls.utils = {}; - /** * Count the number of keys in an object. * Works in a cross-browser way. * @param {Object} The object. */ - $.uls.utils.objectLength = function ( obj ) { + function objectLength ( obj ) { var count, key; // Some old browsers don't support Object.keys @@ -236,7 +232,7 @@ * Bind the UI elements with their event listeners */ listen: function () { - var lcd, columnsOptions, + var lcd, columnsOptions, languagesCount, uls = this; columnsOptions = { @@ -263,10 +259,12 @@ this.$menu.on( 'keydown', $.proxy( this.keypress, this ) ); } + languagesCount = objectLength( this.options.languages ); lcd = this.$resultsView.lcd( { languages: this.languages, columns: columnsOptions[ this.getMenuWidth() ], - quickList: this.options.quickList, + + quickList: languagesCount > 12 ? this.options.quickList : false, clickhandler: $.proxy( this.select, this ), source: this.$languageFilter, showRegions: this.options.showRegions, @@ -388,7 +386,7 @@ return this.options.menuWidth; } - languagesCount = $.uls.utils.objectLength( this.options.languages ); + languagesCount = objectLength( this.options.languages ); if ( languagesCount < 12 ) { return 'narrow'; diff --git a/src/jquery.uls.lcd.js b/src/jquery.uls.lcd.js index 2ebefef..b52dcee 100644 --- a/src/jquery.uls.lcd.js +++ b/src/jquery.uls.lcd.js @@ -115,7 +115,6 @@ render: function () { var $section, - languagesCount, lcd = this, regions = [], regionNames = { @@ -130,12 +129,7 @@ PA: 'Pacific' }; - languagesCount = $.uls.utils.objectLength( this.options.languages ); - - // Show the Common languages section, unless the list is very short - if ( languagesCount > 12 ) { - regions.push( this.buildQuicklist() ); - } + regions.push( this.buildQuicklist() ); $.each( $.uls.data.regiongroups, function ( regionCode ) { lcd.regionLanguages[ regionCode ] = []; diff --git a/test/jquery.uls.test.js b/test/jquery.uls.test.js index 8721cf9..e4aa76d 100644 --- a/test/jquery.uls.test.js +++ b/test/jquery.uls.test.js @@ -271,26 +271,4 @@ assert.strictEqual( $.uls.data.languages['qqq'], undefined, 'Data about qqq is undefined after being deleted.' ); assert.ok( !$.uls.data.deleteLanguage( 'qqr' ), 'Deleting language qqr, which was never added, returns false.' ); } ); - - test( '-- $.uls.utils testing', 4, function ( assert ) { - var languages, saveObjectKeys; - - languages = { - mn: 'монгол', - sah: 'саха', - udm: 'удмурт' - }; - - assert.strictEqual( $.uls.utils.objectLength( {} ), 0 ); - assert.strictEqual( $.uls.utils.objectLength( languages ), 3 ); - - // Simulate a browser without Object.keys - saveObjectKeys = Object.keys; - Object.keys = undefined; - - assert.strictEqual( $.uls.utils.objectLength( {} ), 0 ); - assert.strictEqual( $.uls.utils.objectLength( languages ), 3 ); - - Object.keys = saveObjectKeys; - } ); }( jQuery ) );