Sort languages by script in the initial view
* Added new utility functions to return all languages by script group. * Used that function to sort languages initially. * Added tests. Change-Id: I405cb73e6af13f59c307da5a7f2269049ecba698
This commit is contained in:
@@ -32,6 +32,20 @@
|
||||
return $.uls.data.autonyms[language];
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns an array of all region codes.
|
||||
* @return array
|
||||
*/
|
||||
$.uls.data.allRegions = function() {
|
||||
var allRegions = [];
|
||||
|
||||
for( var region in $.uls.data.regiongroups ) {
|
||||
allRegions.push( region );
|
||||
}
|
||||
|
||||
return allRegions;
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns all languages written in script.
|
||||
* @param script string
|
||||
@@ -131,6 +145,15 @@
|
||||
return $.uls.data.languagesByScriptGroupInRegions( [ region ] );
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns an associative array of all languages,
|
||||
* grouped by script group.
|
||||
* @return associative array
|
||||
*/
|
||||
$.uls.data.allLanguagesByScriptGroup = function() {
|
||||
return $.uls.data.languagesByScriptGroupInRegions( $.uls.data.allRegions() );
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns an associative array of languages in several regions,
|
||||
* grouped by script group.
|
||||
|
||||
@@ -35,14 +35,16 @@
|
||||
var languages = this.options.languages;
|
||||
var query = this.$element.val();
|
||||
|
||||
$.each( languages, function ( langCode, name ) {
|
||||
if ( query === "" ) {
|
||||
that.render( langCode );
|
||||
var allLanguages = $.uls.data.allLanguagesByScriptGroup();
|
||||
for ( var scriptGroup in allLanguages ) {
|
||||
for ( var langNum = 0; langNum < allLanguages[scriptGroup].length; langNum++ ) {
|
||||
var langCode = allLanguages[scriptGroup][langNum];
|
||||
if ( languages[langCode] !== undefined && ( query === "" || that.filter( langCode, query ) ) )
|
||||
{
|
||||
that.render( langCode );
|
||||
}
|
||||
}
|
||||
else if ( that.filter( langCode, query ) ) {
|
||||
that.render( langCode );
|
||||
}
|
||||
} ) ;
|
||||
}
|
||||
},
|
||||
|
||||
render: function( langCode ) {
|
||||
|
||||
Reference in New Issue
Block a user