Add window close warning to Special:Upload
authorMark Holmquist <mtraceur@member.fsf.org>
Fri, 1 Aug 2014 18:49:48 +0000 (11:49 -0700)
committerGergő Tisza <gtisza@wikimedia.org>
Sun, 28 Sep 2014 22:06:45 +0000 (22:06 +0000)
Change-Id: I43bf828654d342893a19656ddd4151c2558d2f63

resources/Resources.php
resources/src/mediawiki.special/mediawiki.special.upload.js

index a82260c..5603216 100644 (file)
@@ -1344,6 +1344,7 @@ return array(
                        'mediawiki.libs.jpegmeta',
                        'mediawiki.Title',
                        'mediawiki.util',
+                       'mediawiki.confirmCloseWindow',
                ),
        ),
        'mediawiki.special.userlogin.common.styles' => array(
index 286befc..04bc978 100644 (file)
                }
        } );
 
+       $( function () {
+               // Prevent losing work
+               var allowCloseWindow,
+                       $uploadForm = $( '#mw-upload-form' );
+
+               if ( !mw.user.options.get( 'useeditwarning' ) ) {
+                       // If the user doesn't want edit warnings, don't set things up.
+                       return;
+               }
+
+               $uploadForm.data( 'origtext', $uploadForm.serialize() );
+
+               allowCloseWindow = mw.confirmCloseWindow( {
+                       test: function () {
+                               return $( '#wpUploadFile' ).get( 0 ).files.length !== 0 ||
+                                       $uploadForm.data( 'origtext' ) !== $uploadForm.serialize();
+                       },
+
+                       message: mw.msg( 'editwarning-warning' ),
+                       namespace: 'uploadwarning'
+               } );
+
+               $uploadForm.submit( function () {
+                       allowCloseWindow();
+               } );
+       } );
 }( mediaWiki, jQuery ) );