From ac32e53fe6913bdd4f0f97806527b11334a6ce7a Mon Sep 17 00:00:00 2001 From: "Amir E. Aharoni" Date: Thu, 22 Nov 2012 15:00:35 +0200 Subject: [PATCH] (bug 39685) Disable the Apply button until there are changes This commit completes the solution of this bug for Input settings. Change-Id: Iebabb08bdd4138cff278b811a681d684363ecc12 --- resources/js/ext.uls.inputsettings.js | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/resources/js/ext.uls.inputsettings.js b/resources/js/ext.uls.inputsettings.js index 404de18d..6a4b75f9 100644 --- a/resources/js/ext.uls.inputsettings.js +++ b/resources/js/ext.uls.inputsettings.js @@ -62,7 +62,7 @@ + '
' + '
' + '' - + '' + + '' + '
' + '
' + ''; @@ -105,6 +105,14 @@ this.listen(); }, + /** + * Enable the apply button. + * Useful in many places when something changes. + */ + enableApplyButton: function () { + this.$template.find( 'button.uls-input-settings-apply' ).removeAttr( 'disabled' ); + }, + prepareInputmethods: function ( language ) { var index = 0, inputSettings, $imeListContainer, defaultInputmethod, imes, selected, imeId, @@ -177,8 +185,9 @@ } } - $imeLabel.append( $( '' ).text( name ) ).append( - $( '' ).text( description ) ); + $imeLabel + .append( $( '' ).text( name ) ) + .append( $( '' ).text( description ) ); return $imeLabel; }, @@ -231,6 +240,7 @@ return function () { var selectedLanguage = button.data( 'language' ) || inputSettings.imeLanguage; + inputSettings.enableApplyButton(); $.ime.preferences.setLanguage( selectedLanguage ); $( 'div.uls-ui-languages button.button' ).removeClass( 'down' ); button.addClass( 'down' ); @@ -297,6 +307,7 @@ uls.$menu.find( 'div.uls-title' ).append( $back ); }, onSelect: function ( langCode ) { + inputSettings.enableApplyButton(); inputSettings.imeLanguage = langCode; inputSettings.$parent.show(); inputSettings.prepareLanguages(); @@ -378,14 +389,14 @@ } ); $imeListContainer.on( 'change', 'input:radio[name=ime]:checked', function () { - var ime = $( this ).val(); - + inputSettings.enableApplyButton(); $.ime.preferences.setLanguage( inputSettings.imeLanguage ); - $.ime.preferences.setIM( ime ); + $.ime.preferences.setIM( $( this ).val() ); } ); inputSettings.$template.find( 'button.uls-input-toggle-button' ) .on( 'click', function () { + inputSettings.enableApplyButton(); if ( $.ime.preferences.isEnabled() ) { inputSettings.disableInputTools(); } else {