diff --git a/resources/js/ext.uls.displaysettings.js b/resources/js/ext.uls.displaysettings.js index 2be98e20..8023b586 100644 --- a/resources/js/ext.uls.displaysettings.js +++ b/resources/js/ext.uls.displaysettings.js @@ -549,6 +549,8 @@ $button.addClass( 'down' ); } ); + + mw.hook( 'mw.uls.settings.cancel' ).add( $.proxy( this.cancel, this ) ); }, /** diff --git a/resources/js/ext.uls.inputsettings.js b/resources/js/ext.uls.inputsettings.js index 58eff10a..5afedae0 100644 --- a/resources/js/ext.uls.inputsettings.js +++ b/resources/js/ext.uls.inputsettings.js @@ -474,6 +474,8 @@ inputSettings.enableInputTools(); } } ); + + mw.hook( 'mw.uls.settings.cancel' ).add( $.proxy( this.cancel, this ) ); }, /** diff --git a/resources/js/ext.uls.languagesettings.js b/resources/js/ext.uls.languagesettings.js index dbc26b4c..b921fe2e 100644 --- a/resources/js/ext.uls.languagesettings.js +++ b/resources/js/ext.uls.languagesettings.js @@ -17,7 +17,7 @@ * @licence MIT License */ -( function ( $ ) { +( function ( $, mw ) { 'use strict'; var closeRow, settingsMenu, settingsPanel, windowTemplate, panelsRow; @@ -217,13 +217,7 @@ this.options.onClose(); } - // We are closing language settings. That also means we are cancelling - // any changes the user did, but not saved, in all registered modules. - $.each( this.modules, function( id, module ) { - // Modules should make sure to return early if no changes were made - // They can use some kind of 'dirty bits' to implement this. - module.cancel(); - } ); + mw.hook( 'mw.uls.settings.cancel' ).fire(); }, click: function ( e ) { @@ -265,4 +259,4 @@ }; $.fn.languagesettings.Constructor = LanguageSettings; -}( jQuery ) ); +}( jQuery, mediaWiki ) );