Update jquery.uls to 98fff1b

* Translation updates
* Change for SVG background image styles
* Use searchAPI always when provided

Change-Id: I5a90d76d5acc1939cc7b670df43c4ea3347dfcb3
This commit is contained in:
Niklas Laxström
2017-11-29 14:09:53 +01:00
parent e87dd20cdd
commit c2f0e297f5
6 changed files with 54 additions and 59 deletions

View File

@@ -1,9 +1,6 @@
.uls-trigger { .uls-trigger {
/* @embed */
background: url('../images/icon-language.png') no-repeat left center; background: url('../images/icon-language.png') no-repeat left center;
/* @embed */ /* @embed */
background-image: -webkit-linear-gradient(transparent, transparent), url('../images/icon-language.svg');
/* @embed */
background-image: linear-gradient(transparent, transparent), url('../images/icon-language.svg'); background-image: linear-gradient(transparent, transparent), url('../images/icon-language.svg');
padding-left: 30px; padding-left: 30px;
} }
@@ -69,7 +66,6 @@
.uls-search-label { .uls-search-label {
background: url('../images/search.png') no-repeat center center; background: url('../images/search.png') no-repeat center center;
background-image: -webkit-linear-gradient(transparent, transparent), url('../images/search.svg');
/* @embed */ /* @embed */
background-image: linear-gradient(transparent, transparent), url('../images/search.svg'); background-image: linear-gradient(transparent, transparent), url('../images/search.svg');
background-size: 20px; background-size: 20px;
@@ -115,7 +111,6 @@
.uls-languagefilter-clear { .uls-languagefilter-clear {
background: url('../images/clear.png') no-repeat left center; background: url('../images/clear.png') no-repeat left center;
background-image: -webkit-linear-gradient(transparent, transparent), url('../images/clear.svg');
/* @embed */ /* @embed */
background-image: linear-gradient(transparent, transparent), url('../images/clear.svg'); background-image: linear-gradient(transparent, transparent), url('../images/clear.svg');
background-size: 15px; background-size: 15px;

View File

@@ -18,8 +18,8 @@
"uls-region-PA": "Stille Oseaan", "uls-region-PA": "Stille Oseaan",
"uls-region-all": "Alle tale", "uls-region-all": "Alle tale",
"uls-no-results-found": "Geen resultate gevind nie", "uls-no-results-found": "Geen resultate gevind nie",
"uls-common-languages": "Voorgestelde Tale", "uls-common-languages": "Voorgestelde tale",
"uls-no-results-suggestion-title": "U mag geïnteresseerd wees in:", "uls-no-results-suggestion-title": "U mag geïnteresseerd wees in:",
"uls-search-help": "Soektogte kan volgende taalnaam, skripnaam, ISO-kode, of volgens streek geskied.", "uls-search-help": "Soek gerus volgens taalnaam, skrifnaam of ISO-kode, of blaai volgens streek.",
"uls-search-placeholder": "Soek na n taal" "uls-search-placeholder": "Soek na n taal"
} }

View File

@@ -12,9 +12,10 @@
"uls-region-AS": "एशिया", "uls-region-AS": "एशिया",
"uls-region-ME": "मध्य पूर्व", "uls-region-ME": "मध्य पूर्व",
"uls-region-PA": "प्रशांत", "uls-region-PA": "प्रशांत",
"uls-region-all": "सब्भे भाषा",
"uls-no-results-found": "कोय परिणाम नै मिललै", "uls-no-results-found": "कोय परिणाम नै मिललै",
"uls-common-languages": "आम भाषा सनी", "uls-common-languages": "आम भाषा सिनी",
"uls-no-results-suggestion-title": "आपन॑ लेली संभवतः उपयोगी:", "uls-no-results-suggestion-title": "आपन॑ लेली संभवतः उपयोगी:",
"uls-search-help": "आपन॑ भाषा केरऽ नाम , स्क्रिप्ट केरऽ नाम , भाषा केरऽ आईएसओ कोड सं॑ खोज॑ सकै छहो या आपन॑ क्षेत्र के नाम सं॑ ब्राउज़ कर॑ सकै छहऽ.", "uls-search-help": "आपन॑ भाषा केरऽ नाम , स्क्रिप्ट केरऽ नाम , भाषा केरऽ आईएसओ कोड सं॑ खोज॑ सकै छहो या आपन॑ क्षेत्र के नाम सं॑ ब्राउज़ कर॑ सकै छहऽ.",
"uls-search-placeholder": "भाषा खोज" "uls-search-placeholder": "भाषा लेली खोज"
} }

View File

@@ -3,7 +3,8 @@
"authors": [ "authors": [
"Calak", "Calak",
"Asoxor", "Asoxor",
"Lost Whispers" "Lost Whispers",
"Épine"
] ]
}, },
"uls-region-WW": "لە گشت جیھاندا", "uls-region-WW": "لە گشت جیھاندا",

View File

@@ -10,7 +10,12 @@
"uls-region-AF": "𑢡𑣘𑣗𑣜𑣂𑣌𑣁", "uls-region-AF": "𑢡𑣘𑣗𑣜𑣂𑣌𑣁",
"uls-region-EU": "𑢥𑣃𑣜𑣉𑣉𑣘", "uls-region-EU": "𑢥𑣃𑣜𑣉𑣉𑣘",
"uls-region-AS": "𑢨𑣈𑣞𑣂𑣅𑣁", "uls-region-AS": "𑢨𑣈𑣞𑣂𑣅𑣁",
"uls-region-ME": "𑢵𑣚𑣁-𑣕𑣃𑣜 𑣞𑣄",
"uls-region-PA": "𑢸𑣈𑣞𑣂𑣘𑣂𑣌",
"uls-region-all": "𑢾𑣗𑣈𑣓 𑣎𑣈𑣋𑣁𑣜 𑣌𑣉", "uls-region-all": "𑢾𑣗𑣈𑣓 𑣎𑣈𑣋𑣁𑣜 𑣌𑣉",
"uls-no-results-found": "𑢮𑣁𑣓𑣄 𑣌𑣁 𑣓𑣖 𑣎𑣓𑣁", "uls-no-results-found": "𑢮𑣁𑣓𑣄 𑣌𑣁 𑣓𑣖 𑣎𑣓𑣁",
"uls-common-languages": "𑢨𑣒𑣄 𑣎𑣈𑣋𑣁𑣜 𑣌𑣉",
"uls-no-results-suggestion-title": "𑢳𑣈𑣓𑣁 𑣌𑣉 𑣏𑣂 𑣗𑣈𑣓 𑣓𑣖 𑣕𑣓𑣁:",
"uls-search-help": "𑢮𑣈𑣋𑣁𑣜 𑣓𑣃𑣕𑣃𑣖 𑣕𑣈, 𑣏𑣂𑣕𑣂 𑣓𑣃𑣕𑣃𑣖 𑣕𑣈, 𑣎𑣈𑣋𑣁𑣜 𑣜𑣈𑣅𑣄 ISO 𑣌𑣉𑣉𑣑 𑣕𑣈 𑣌𑣁𑣜𑣈 𑣕𑣅𑣑 𑣓𑣃𑣕𑣃𑣖 𑣕𑣈 𑣉𑣉 𑣓𑣖-𑣓𑣈𑣚 𑣔𑣆𑣅𑣉𑣄𑣁.",
"uls-search-placeholder": "𑢶𑣂𑣈𑣑 𑣎𑣈𑣋𑣁𑣓 𑣓𑣈𑣚-𑣓𑣖𑣈" "uls-search-placeholder": "𑢶𑣂𑣈𑣑 𑣎𑣈𑣋𑣁𑣓 𑣓𑣈𑣚-𑣓𑣖𑣈"
} }

View File

@@ -167,76 +167,69 @@
}, },
search: function () { search: function () {
var langCode, scriptGroup, langNum, languagesInScript, var languages = Object.keys( this.options.languages ),
languages = $.uls.data.getLanguagesByScriptGroup( this.options.languages ), results = [],
query = $.trim( this.$element.val() ); query = $.trim( this.$element.val() ).toLowerCase();
this.resultCount = 0; if ( query === '' ) {
for ( scriptGroup in languages ) { languages.map( this.render.bind( this ) );
languagesInScript = languages[ scriptGroup ]; this.resultHandler( query, languages );
languagesInScript.sort( $.uls.data.sortByAutonym ); return;
for ( langNum = 0; langNum < languagesInScript.length; langNum++ ) {
langCode = languagesInScript[ langNum ];
if ( query === '' || this.filter( langCode, query ) ) {
if ( this.resultCount === 0 ) {
// Autofill the first result.
this.autofill( langCode );
}
if ( query.toLowerCase() === langCode ) {
this.selectedLanguage = langCode;
}
if ( this.render( langCode ) ) {
this.resultCount++;
}
}
}
} }
// Also do a search by search API // Local search results
if ( !this.resultCount && this.options.searchAPI && query ) { results = languages.filter( function ( langCode ) {
this.searchAPI( query ); return this.filter( langCode, query );
}.bind( this ) );
// Use the searchAPI if available, assuming that it has superior search results.
if ( this.options.searchAPI ) {
this.searchAPI( query )
.done( this.resultHandler.bind( this ) )
.fail( this.resultHandler.bind( this, query, results, undefined ) );
} else { } else {
this.resultHandler( query ); this.resultHandler( query, results );
} }
}, },
searchAPI: function ( query ) { searchAPI: function ( query ) {
var languageFilter = this; return $.get( this.options.searchAPI, { search: query } ).then( function ( result ) {
var autofillLabel,
results = [];
$.get( languageFilter.options.searchAPI, {
search: query
}, function ( result ) {
$.each( result.languagesearch, function ( code, name ) { $.each( result.languagesearch, function ( code, name ) {
if ( languageFilter.resultCount === 0 ) { if ( this.options.languages[ code ] ) {
// Autofill the first result. autofillLabel = autofillLabel || name;
languageFilter.autofill( code, name ); results.push( code );
} }
}.bind( this ) );
if ( languageFilter.options.languages[ code ] && return $.Deferred().resolve( query, results, autofillLabel );
languageFilter.render( code )
) {
languageFilter.resultCount++;
}
} );
languageFilter.resultHandler( query ); }.bind( this ) );
} );
}, },
/** /**
* Handler method to be called once search is over. * Handler method to be called once search is over.
* Based on search result triggers resultsfound or noresults events * Based on search result triggers resultsfound or noresults events
* @param query string * @param {string} query
* @param {number} resultCount
* @param {string} [autofillLabel]
*/ */
resultHandler: function ( query ) { resultHandler: function ( query, results, autofillLabel ) {
if ( this.resultCount === 0 ) { if ( results.length === 0 ) {
this.$suggestion.val( '' ); this.$suggestion.val( '' );
this.$element.trigger( 'noresults.uls', query ); this.$element.trigger( 'noresults.uls', query );
} else { return;
this.$element.trigger( 'resultsfound.uls', [ query, this.resultCount ] );
} }
if ( query ) {
this.selectedLanguage = results[ 0 ];
this.autofill( results[ 0 ], autofillLabel );
}
results.map( this.render.bind( this ) );
this.$element.trigger( 'resultsfound.uls', [ query, results.length ] );
}, },
autofill: function ( langCode, languageName ) { autofill: function ( langCode, languageName ) {
@@ -251,7 +244,6 @@
return; return;
} }
this.selectedLanguage = langCode;
languageName = languageName || this.options.languages[ langCode ]; languageName = languageName || this.options.languages[ langCode ];
if ( !languageName ) { if ( !languageName ) {
@@ -281,6 +273,7 @@
}, },
render: function ( langCode ) { render: function ( langCode ) {
// This is actually instance of LanguageCategoryDisplay and not jQuery!
var $target = this.options.$target; var $target = this.options.$target;
if ( !$target ) { if ( !$target ) {