Merge "Log ime-change event"
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
/*! jquery.ime - v0.1.0+20130819
|
/*! jquery.ime - v0.1.0+20130820
|
||||||
* 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 ( $ ) {
|
||||||
@@ -881,12 +881,14 @@
|
|||||||
|
|
||||||
imeselector.$menu.on( 'click.ime', 'li.ime-im', function () {
|
imeselector.$menu.on( 'click.ime', 'li.ime-im', function () {
|
||||||
imeselector.selectIM( $( this ).data( 'ime-inputmethod' ) );
|
imeselector.selectIM( $( this ).data( 'ime-inputmethod' ) );
|
||||||
|
imeselector.$element.trigger( 'setim.ime', $( this ).data( 'ime-inputmethod' ) );
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
} );
|
} );
|
||||||
|
|
||||||
imeselector.$menu.on( 'click.ime', 'li.ime-lang', function () {
|
imeselector.$menu.on( 'click.ime', 'li.ime-lang', function () {
|
||||||
imeselector.selectLanguage( $( this ).attr( 'lang' ) );
|
var im = imeselector.selectLanguage( $( this ).attr( 'lang' ) );
|
||||||
|
imeselector.$element.trigger( 'setim.ime', im );
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
} );
|
} );
|
||||||
@@ -942,9 +944,11 @@
|
|||||||
if ( isShortcutKey( e ) ) {
|
if ( isShortcutKey( e ) ) {
|
||||||
if ( ime.isActive() ) {
|
if ( ime.isActive() ) {
|
||||||
this.disableIM();
|
this.disableIM();
|
||||||
|
this.$element.trigger( 'setim.ime', 'system' );
|
||||||
} else {
|
} else {
|
||||||
if ( this.inputmethod !== null ) {
|
if ( this.inputmethod !== null ) {
|
||||||
this.selectIM( this.inputmethod.id );
|
this.selectIM( this.inputmethod.id );
|
||||||
|
this.$element.trigger( 'setim.ime', this.inputmethod.id );
|
||||||
} else {
|
} else {
|
||||||
languageCode = this.decideLanguage();
|
languageCode = this.decideLanguage();
|
||||||
this.selectLanguage( languageCode );
|
this.selectLanguage( languageCode );
|
||||||
@@ -1042,7 +1046,8 @@
|
|||||||
/**
|
/**
|
||||||
* Select a language
|
* Select a language
|
||||||
*
|
*
|
||||||
* @param languageCode
|
* @param {string} languageCode
|
||||||
|
* @return {string|bool} Selected input method id or false
|
||||||
*/
|
*/
|
||||||
selectLanguage: function ( languageCode ) {
|
selectLanguage: function ( languageCode ) {
|
||||||
var ime,
|
var ime,
|
||||||
@@ -1062,7 +1067,7 @@
|
|||||||
this.selectIM( $.ime.preferences.getIM( languageCode ) );
|
this.selectIM( $.ime.preferences.getIM( languageCode ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return $.ime.preferences.getIM( languageCode );
|
||||||
}
|
}
|
||||||
|
|
||||||
this.$menu.find( 'li.ime-lang' ).show();
|
this.$menu.find( 'li.ime-lang' ).show();
|
||||||
@@ -1075,6 +1080,8 @@
|
|||||||
ime.setLanguage( languageCode );
|
ime.setLanguage( languageCode );
|
||||||
this.inputmethod = null;
|
this.inputmethod = null;
|
||||||
this.selectIM( $.ime.preferences.getIM( languageCode ) );
|
this.selectIM( $.ime.preferences.getIM( languageCode ) );
|
||||||
|
|
||||||
|
return $.ime.preferences.getIM( languageCode );
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1283,11 +1290,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function imeList() {
|
function imeList() {
|
||||||
return $( '<ul>' ).addClass( 'ime-list' );
|
return $( '<ul>' ).addClass( 'ime-list' );
|
||||||
}
|
}
|
||||||
|
|
||||||
function imeListTitle() {
|
function imeListTitle() {
|
||||||
return $( '<h3>' ).addClass( 'ime-list-title' );
|
return $( '<h3>' ).addClass( 'ime-list-title' );
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleMenuItem() {
|
function toggleMenuItem() {
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
['6', '6'],
|
['6', '6'],
|
||||||
['7', '7'],
|
['7', '7'],
|
||||||
['8', '8'],
|
['8', '8'],
|
||||||
['\\)', '੯'],
|
['\\(', '੯'],
|
||||||
['9', '9'],
|
['9', '9'],
|
||||||
['\\),', '੦'],
|
['\\),', '੦'],
|
||||||
['0', '0'],
|
['0', '0'],
|
||||||
|
|||||||
@@ -78,6 +78,7 @@
|
|||||||
mw.hook( 'mw.uls.language.revert' ).add( $.proxy( this.ulsLanguageRevert, this ) );
|
mw.hook( 'mw.uls.language.revert' ).add( $.proxy( this.ulsLanguageRevert, this ) );
|
||||||
mw.hook( 'mw.uls.ime.enable' ).add( $.proxy( this.enableIME, this ) );
|
mw.hook( 'mw.uls.ime.enable' ).add( $.proxy( this.enableIME, this ) );
|
||||||
mw.hook( 'mw.uls.ime.disable' ).add( $.proxy( this.disableIME, this ) );
|
mw.hook( 'mw.uls.ime.disable' ).add( $.proxy( this.disableIME, this ) );
|
||||||
|
mw.hook( 'mw.uls.ime.change' ).add( $.proxy( this.changeIME, this ) );
|
||||||
mw.hook( 'mw.uls.login.click' ).add( $.proxy( this.loginClick, this ) );
|
mw.hook( 'mw.uls.login.click' ).add( $.proxy( this.loginClick, this ) );
|
||||||
mw.hook( 'mw.uls.ime.morelanguages' ).add( $.proxy( this.imeMoreLanguages, this ) );
|
mw.hook( 'mw.uls.ime.morelanguages' ).add( $.proxy( this.imeMoreLanguages, this ) );
|
||||||
mw.hook( 'mw.uls.interface.morelanguages' ).add( $.proxy( this.interfaceMoreLanguages, this ) );
|
mw.hook( 'mw.uls.interface.morelanguages' ).add( $.proxy( this.interfaceMoreLanguages, this ) );
|
||||||
@@ -121,6 +122,17 @@
|
|||||||
this.log( { action: 'ime-enable' } );
|
this.log( { action: 'ime-enable' } );
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Log IME change
|
||||||
|
* @param {string} inputMethod
|
||||||
|
*/
|
||||||
|
changeIME: function ( inputMethod ) {
|
||||||
|
this.log( {
|
||||||
|
action: 'ime-change',
|
||||||
|
inputMethod: inputMethod
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Log login link click in display settings.
|
* Log login link click in display settings.
|
||||||
* @param {jQuery.Deferred} deferred
|
* @param {jQuery.Deferred} deferred
|
||||||
|
|||||||
@@ -262,9 +262,11 @@
|
|||||||
imeselector = $input.data( 'imeselector' );
|
imeselector = $input.data( 'imeselector' );
|
||||||
if ( imeselector ) {
|
if ( imeselector ) {
|
||||||
imeselector.selectLanguage( $.ime.preferences.getLanguage() );
|
imeselector.selectLanguage( $.ime.preferences.getLanguage() );
|
||||||
|
imeselector.$element.on( 'setim.ime', function ( event, inputMethod ) {
|
||||||
|
mw.hook( 'mw.uls.ime.change' ).fire( inputMethod );
|
||||||
|
} );
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
$( document ).ready( function () {
|
$( document ).ready( function () {
|
||||||
|
|||||||
@@ -530,6 +530,10 @@
|
|||||||
apply: function () {
|
apply: function () {
|
||||||
var inputSettings = this;
|
var inputSettings = this;
|
||||||
|
|
||||||
|
mw.hook( 'mw.uls.ime.change' ).fire(
|
||||||
|
$.ime.preferences.getIM( $.ime.preferences.getLanguage() )
|
||||||
|
);
|
||||||
|
|
||||||
// Save the preferences
|
// Save the preferences
|
||||||
$.ime.preferences.save( function ( result ) {
|
$.ime.preferences.save( function ( result ) {
|
||||||
// closure for not losing the scope
|
// closure for not losing the scope
|
||||||
|
|||||||
Reference in New Issue
Block a user