Update jquery.ime from upstream

Adds support for specifying the input method menu header text.

Change-Id: I4c0b8c4879ef49b58a4c897b9131dbfddea524f0
This commit is contained in:
Amir E. Aharoni
2013-08-26 13:19:59 +03:00
committed by Nikerabbit
parent e636528457
commit 60e038b0db

View File

@@ -1,4 +1,4 @@
/*! jquery.ime - v0.1.0+20130822 /*! jquery.ime - v0.1.0+20130826
* https://github.com/wikimedia/jquery.ime * https://github.com/wikimedia/jquery.ime
* Copyright (c) 2013 Santhosh Thottingal; Licensed GPL, MIT */ * Copyright (c) 2013 Santhosh Thottingal; Licensed GPL, MIT */
( function ( $ ) { ( function ( $ ) {
@@ -1053,16 +1053,16 @@
* @return {string|bool} Selected input method id or false * @return {string|bool} Selected input method id or false
*/ */
selectLanguage: function ( languageCode ) { selectLanguage: function ( languageCode ) {
var ime, var ime = this.$element.data( 'ime' ),
imePref = $.ime.preferences.getIM( languageCode ), imePref = $.ime.preferences.getIM( languageCode ),
language = $.ime.languages[languageCode]; language = $.ime.languages[languageCode];
this.setMenuTitle( this.getAutonym( languageCode ) );
if ( !language ) { if ( !language ) {
return false; return false;
} }
ime = this.$element.data( 'ime' );
if ( ime.getLanguage() === languageCode ) { if ( ime.getLanguage() === languageCode ) {
// Nothing to do. It is same as the current language, // Nothing to do. It is same as the current language,
// but check whether the input method changed. // but check whether the input method changed.
@@ -1076,7 +1076,6 @@
this.$menu.find( 'li.ime-lang' ).show(); this.$menu.find( 'li.ime-lang' ).show();
this.$menu.find( 'li[lang=' + languageCode + ']' ).hide(); this.$menu.find( 'li[lang=' + languageCode + ']' ).hide();
this.$menu.find( '.ime-list-title' ).text( language.autonym );
this.prepareInputMethods( languageCode ); this.prepareInputMethods( languageCode );
this.hide(); this.hide();
// And select the default inputmethod // And select the default inputmethod
@@ -1087,6 +1086,25 @@
return $.ime.preferences.getIM( languageCode ); return $.ime.preferences.getIM( languageCode );
}, },
/**
* Get the autonym by language code.
*
* @param {string} languageCode
* @return {string} The autonym
*/
getAutonym: function ( languageCode ) {
return $.ime.languages[languageCode].autonym;
},
/**
* Set the title of the selector menu.
*
* @param {string} title
*/
setMenuTitle: function ( title ) {
this.$menu.find( '.ime-list-title' ).text( title );
},
/** /**
* Decide on initial language to select * Decide on initial language to select
*/ */
@@ -1111,7 +1129,7 @@
/** /**
* Select an input method * Select an input method
* *
* @param inputmethodId * @param {string} inputmethodId
*/ */
selectIM: function ( inputmethodId ) { selectIM: function ( inputmethodId ) {
var imeselector = this, var imeselector = this,
@@ -1198,7 +1216,7 @@
$languageItem = $( '<a>' ) $languageItem = $( '<a>' )
.attr( 'href', '#' ) .attr( 'href', '#' )
.text( language.autonym ) .text( this.getAutonym( languageCode ) )
.addClass( 'selectable-row-item' ); .addClass( 'selectable-row-item' );
$language = $( '<li class="ime-lang selectable-row">' ).attr( 'lang', languageCode ); $language = $( '<li class="ime-lang selectable-row">' ).attr( 'lang', languageCode );
$language.append( $languageItem ); $language.append( $languageItem );
@@ -1216,7 +1234,7 @@
/** /**
* Prepare input methods in menu for the given language code * Prepare input methods in menu for the given language code
* *
* @param {String} languageCode * @param {string} languageCode
*/ */
prepareInputMethods: function ( languageCode ) { prepareInputMethods: function ( languageCode ) {
var language = $.ime.languages[languageCode], var language = $.ime.languages[languageCode],
@@ -1247,6 +1265,10 @@
} ); } );
}, },
/**
* Create a help link element.
* @return {jQuery}
*/
helpLink: function () { helpLink: function () {
return $( '<div class="ime-help-link selectable-row">' ) return $( '<div class="ime-help-link selectable-row">' )
.append( $( '<a>' ).text( 'Help' ) .append( $( '<a>' ).text( 'Help' )
@@ -1325,8 +1347,8 @@
/** /**
* Check whether a keypress event corresponds to the shortcut key * Check whether a keypress event corresponds to the shortcut key
* *
* @param event Event object * @param {event} event
* @return bool * @return {bool} true if the key is a shortcut key
*/ */
function isShortcutKey( event ) { function isShortcutKey( event ) {
// 77 - The letter M, for Ctrl-M // 77 - The letter M, for Ctrl-M