--- /dev/null
+/*
+ * Javascript for module editWarning
+ */
+( function ( mw, $ ) {
+ 'use strict';
+
+ $( function () {
+ var allowCloseWindow,
+ $textBox = $( '#wpTextbox1' ),
+ $summary = $( '#wpSummary' ),
+ $both = $textBox.add( $summary );
+
+ // Check if EditWarning is enabled and if we need it
+ if ( !mw.user.options.get( 'useeditwarning' ) ) {
+ return true;
+ }
+
+ // Save the original value of the text fields
+ $both.each( function ( index, element ) {
+ var $element = $( element );
+ $element.data( 'origtext', $element.textSelection( 'getContents' ) );
+ } );
+
+ allowCloseWindow = mw.confirmCloseWindow( {
+ test: function () {
+ // We use .textSelection, because editors might not have updated the form yet.
+ return mw.config.get( 'wgAction' ) === 'submit' ||
+ $textBox.data( 'origtext' ) !== $textBox.textSelection( 'getContents' ) ||
+ $summary.data( 'origtext' ) !== $summary.textSelection( 'getContents' );
+ },
+
+ message: mw.msg( 'editwarning-warning' ),
+ namespace: 'editwarning'
+ } );
+
+ // Add form submission handler
+ $( '#editform' ).submit( function () {
+ allowCloseWindow.release();
+ } );
+ } );
+
+}( mediaWiki, jQuery ) );