* Maps removed from UI
* From no-results UI, removed the links to navigate by clicking region names
* Removed the $.fn.regionSelctor plugin, Retained the RegionSelector class
* Removed all related css for the removed UI parts
* Reduced the padding for main ULS title so that the top header takes less height
* And a dozen of related changes
Change-Id: I8ac89ebe380047ca267e5c7720c2eaa3da080e9d
* Removed unused class end.
* Class uls-lcd-region-section was used in two different elements,
retained it on the outer one.
* Build a list of languages per region, once done render the regions at once.
* Use direct dom manipulation in hot spots.
* Use shorter selectors like children instead of find and dropping the tag name.
* Fixed mismatch when there were no results and when the message was shown.
* Less flickering by not hiding or showing regions unnecessary
* Cache the common languages "quicklist"
* Added itemsPerColumn as an option
Reduces time used to show language selector after clicking the trigger on my
machine from about 1.8s to about 380 ms (JS execution times, actual times are
about the same but little bigger. The actual rendering is now less than 100ms,
the rest is other setup overheard and $.fn.scrollIntoView which can take many
hundreds of milliseconds.
* Move the invocation into the parens that contain the function.
* unescaped regex
* Do not wrap function literals in parens unless they are to be
immediately invoked.
Change-Id: Ib3360f88fb7674af0e857d8a84a91fdac1fd8487
This happens when you type language code and hit enter very fast, without
a pause. A matched language is not available when enter is hit, so it goes
noop.
Handled this special case by checking whether the input is a valid language
code and calling onselect on it.
Change-Id: Icaf809f8db8162264d990247a164449b02b2f418
Also adds landing page feature. But candidate list is hardcoded
for now. Example html file updated.
show method of lcd renamed to render.
Introduced a trigger searchclear
Introduced mw.uls.changeLanguage, setPreviousLanguages
getPreviousLanguages and getBrowserLanguage methods
Region groups re-numbered - from [4, 1, 2, 3] to [1, 2, 3, 4].
Change-Id: Iac1edf628708e6f40e41578df70d40c42f15289a
* The jQuery selectors should be referring to the menu for the current
ULS instance rather than querying on the page. This allows multiple
instances of ULS present in the page
* Keep the HTML template with the plugin. No more HTML added from hooks.
* Updated the example based on above change.
* Updated the hooks code.
* Some more documentation.
Change-Id: I48e2e167bc2c09b8653a142c50317c22e8ba1362
* Introduced deactivate (clear without showing all languages)
* Renamed noresult in region filter to noresults to match the
callback in languagefilter
* Some comments to help understand the code
Change-Id: I544a29b860a6d3f4a5aa770f84cc8a72ae4a4b9d
Make sure that suggestion is not only prefix but also visually prefix.
Checks the ending character is pre-base vowel.
There might be characters with this property in non-indic languages, but
I am not aware of now.
Change-Id: I91abd4dee6c4349e901777ebd6972731808daf45
* if the search string is language code, select it
* else if the autocompletion available select it
* else select the first language matching the query
Change-Id: If66f5c547a471026b7b2aebcde3c3b056e1c2917
There are languges starting with those letters, but without autonyms
Add a null check for undefined autonyms to prevent js error
Change-Id: I88a1d79b3bb23beac7238c1e8817cd6eac614613
Added a utility callback function to sort languages by autonym.
Added CSS fix for group separatos.
Change-Id: I73c7c6518a85e4ea7999be3ef92a121e877610e8
* Do not hit search API if there are results to show from front end
* Avoid the lcd exists check
* slightly reduce the timeout of search term typing
* show autofill for search api results too.
* correct the tooltip text of results.
Change-Id: Id102fbf3bc09eb926d9e36f125ed6291943007f9
* Seperating standalone jQuery ULS plugin and extension related code
* lib/jquery.uls can be submodule, but not now.
Change-Id: I7d9cb47daa88dd1a27ceda602a08cab0073caf33