From 2b2477c36cb5981a62f0b5d6741b7e266e1d50b3 Mon Sep 17 00:00:00 2001 From: "Amir E. Aharoni" Date: Thu, 25 Apr 2013 15:17:44 +0300 Subject: [PATCH] Update ULS from upstream Change-Id: Ic1bcfb82ad433600ebb4896e303f3cf205d384e1 --- lib/jquery.uls/src/jquery.uls.core.js | 27 ++++++++++++++++++- .../src/jquery.uls.languagefilter.js | 5 ++-- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/lib/jquery.uls/src/jquery.uls.core.js b/lib/jquery.uls/src/jquery.uls.core.js index 63522395..74906824 100644 --- a/lib/jquery.uls/src/jquery.uls.core.js +++ b/lib/jquery.uls/src/jquery.uls.core.js @@ -114,12 +114,33 @@ ULS.prototype = { constructor: ULS, + /** + * A "hook" that runs after the ULS constructor. + * At this point it is not guaranteed that the ULS has its dimensions + * and that the languages lists are initialized. + * + * To use it, pass a function as the onReady parameter + * in the options when initializing ULS. + */ ready: function () { if ( this.options.onReady ) { this.options.onReady.call( this ); } }, + /** + * A "hook" that runs after the ULS panel becomes visible + * by using the show method. + * + * To use it, pass a function as the onVisible parameter + * in the options when initializing ULS. + */ + visible: function () { + if ( this.options.onVisible ) { + this.options.onVisible.call( this ); + } + }, + /** * Calculate the position of ULS * Returns an object with top and left properties. @@ -152,13 +173,15 @@ if ( !this.initialized ) { $( 'body' ).prepend( this.$menu ); this.i18n(); + // Initialize with a full search. // This happens on first time click of uls trigger. this.defaultSearch(); + this.initialized = true; } - // hide any other ULS visible + // hide any other visible ULS $( '.uls-menu' ).hide(); this.$menu.show(); @@ -167,6 +190,8 @@ if ( !this.isMobile() ) { this.$languageFilter.focus(); } + + this.visible(); }, i18n: function () { diff --git a/lib/jquery.uls/src/jquery.uls.languagefilter.js b/lib/jquery.uls/src/jquery.uls.languagefilter.js index 28140f8b..c5e245eb 100644 --- a/lib/jquery.uls/src/jquery.uls.languagefilter.js +++ b/lib/jquery.uls/src/jquery.uls.languagefilter.js @@ -159,14 +159,15 @@ }, search: function() { - var query = $.trim( this.$element.val() ), + var languagesInScript, + query = $.trim( this.$element.val() ), languages = $.uls.data.getLanguagesByScriptGroup( this.options.languages ), scriptGroup, langNum, langCode; this.resultCount = 0; for ( scriptGroup in languages ) { - var languagesInScript = languages[scriptGroup]; + languagesInScript = languages[scriptGroup]; languagesInScript.sort( $.uls.data.sortByAutonym );