Merge "Log ime-change event"

This commit is contained in:
jenkins-bot
2013-08-20 05:44:08 +00:00
committed by Gerrit Code Review
5 changed files with 33 additions and 8 deletions

View File

@@ -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() {

View File

@@ -23,7 +23,7 @@
['6', '6'], ['6', '6'],
['7', '7'], ['7', '7'],
['8', '8'], ['8', '8'],
['\\)', '੯'], ['\\(', '੯'],
['9', '9'], ['9', '9'],
['\\),', ''], ['\\),', ''],
['0', '0'], ['0', '0'],

View File

@@ -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

View File

@@ -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 () {

View File

@@ -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