*/
( function ( mw, $ ) {
$( function () {
- var allowCloseWindow, saveButton, restoreButton;
+ var allowCloseWindow;
- // Check if all of the form values are unchanged.
- // (This function could be changed to infuse and check OOUI widgets, but that would only make it
- // slower and more complicated. It works fine to treat them as HTML elements.)
+ // Check if all of the form values are unchanged
function isPrefsChanged() {
var inputs = $( '#mw-prefs-form :input[name]' ),
input, $input, inputType,
return false;
}
- saveButton = OO.ui.infuse( $( '#prefcontrol' ) );
- restoreButton = OO.ui.infuse( $( '#mw-prefs-restoreprefs' ) );
-
// Disable the button to save preferences unless preferences have changed
// Check if preferences have been changed before JS has finished loading
- if ( !isPrefsChanged() ) {
- saveButton.setDisabled( true );
- $( '#preferences .oo-ui-fieldsetLayout' ).one( 'change keydown mousedown', function () {
- saveButton.setDisabled( false );
- } );
- }
+ $( '#prefcontrol' ).prop( 'disabled', !isPrefsChanged() );
+ $( '#preferences > fieldset' ).on( 'change keyup mouseup', function () {
+ $( '#prefcontrol' ).prop( 'disabled', !isPrefsChanged() );
+ } );
// Set up a message to notify users if they try to leave the page without
// saving.
namespace: 'prefswarning'
} );
$( '#mw-prefs-form' ).submit( $.proxy( allowCloseWindow, 'release' ) );
- restoreButton.on( 'click', function () {
- allowCloseWindow.release();
- // The default behavior of events in OOUI is always prevented. Follow the link manually.
- // Note that middle-click etc. still works, as it doesn't emit a OOUI 'click' event.
- location.href = restoreButton.getHref();
- } );
+ $( '#mw-prefs-restoreprefs' ).click( $.proxy( allowCloseWindow, 'release' ) );
} );
}( mediaWiki, jQuery ) );