mirror of
https://github.com/YunoHost-Apps/mediawiki_ynh.git
synced 2024-09-03 19:46:05 +02:00
56 lines
1.6 KiB
JavaScript
56 lines
1.6 KiB
JavaScript
/*
|
|
* Javascript for module editWarning
|
|
*/
|
|
( function ( mw, $ ) {
|
|
$( function () {
|
|
// Check if EditWarning is enabled and if we need it
|
|
if ( $( '#wpTextbox1' ).length === 0 ) {
|
|
return true;
|
|
}
|
|
// Get the original values of some form elements
|
|
$( '#wpTextbox1, #wpSummary' ).each( function () {
|
|
$( this ).data( 'origtext', $( this ).val() );
|
|
});
|
|
var savedWindowOnBeforeUnload;
|
|
$( window )
|
|
.on( 'beforeunload.editwarning', function () {
|
|
var retval;
|
|
|
|
// Check if the current values of some form elements are the same as
|
|
// the original values
|
|
if (
|
|
mw.config.get( 'wgAction' ) === 'submit' ||
|
|
$( '#wpTextbox1' ).data( 'origtext' ) !== $( '#wpTextbox1' ).val() ||
|
|
$( '#wpSummary' ).data( 'origtext' ) !== $( '#wpSummary' ).val()
|
|
) {
|
|
// Return our message
|
|
retval = mw.msg( 'editwarning-warning' );
|
|
}
|
|
|
|
// Unset the onbeforeunload handler so we don't break page caching in Firefox
|
|
savedWindowOnBeforeUnload = window.onbeforeunload;
|
|
window.onbeforeunload = null;
|
|
if ( retval !== undefined ) {
|
|
// ...but if the user chooses not to leave the page, we need to rebind it
|
|
setTimeout( function () {
|
|
window.onbeforeunload = savedWindowOnBeforeUnload;
|
|
}, 1 );
|
|
return retval;
|
|
}
|
|
} )
|
|
.on( 'pageshow.editwarning', function () {
|
|
// Re-add onbeforeunload handler
|
|
if ( !window.onbeforeunload ) {
|
|
window.onbeforeunload = savedWindowOnBeforeUnload;
|
|
}
|
|
} );
|
|
|
|
// Add form submission handler
|
|
$( '#editform' ).submit( function () {
|
|
// Unbind our handlers
|
|
$( window ).off( '.editwarning' );
|
|
} );
|
|
} );
|
|
|
|
}( mediaWiki, jQuery ) );
|
|
|