jenkins-bot has submitted this change and it was merged.

Change subject: Preferences: Use mediawiki.confirmCloseWindow module
......................................................................


Preferences: Use mediawiki.confirmCloseWindow module

This logic was duplicated into the preferences page module before we
had refactored it into a separate module.

Bug: T89819
Change-Id: I67a25ff8758f009123526d5194929bfcd7c3039b
---
M resources/Resources.php
M resources/src/mediawiki.special/mediawiki.special.preferences.js
2 files changed, 10 insertions(+), 34 deletions(-)

Approvals:
  Hoo man: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/resources/Resources.php b/resources/Resources.php
index 2168899..3750593 100644
--- a/resources/Resources.php
+++ b/resources/Resources.php
@@ -1371,6 +1371,7 @@
                ),
                'dependencies' => array(
                        'mediawiki.language',
+                       'mediawiki.confirmCloseWindow',
                ),
        ),
        'mediawiki.special.recentchanges' => array(
diff --git a/resources/src/mediawiki.special/mediawiki.special.preferences.js 
b/resources/src/mediawiki.special/mediawiki.special.preferences.js
index a3eedd6..2e660ce 100644
--- a/resources/src/mediawiki.special/mediawiki.special.preferences.js
+++ b/resources/src/mediawiki.special/mediawiki.special.preferences.js
@@ -5,7 +5,7 @@
        var $preftoc, $preferences, $fieldsets, $legends,
                hash, labelFunc,
                $tzSelect, $tzTextbox, $localtimeHolder, servertime,
-               $checkBoxes, savedWindowOnBeforeUnload;
+               $checkBoxes, allowCloseWindowFn;
 
        labelFunc = function () {
                return this.id.replace( /^mw-prefsection/g, 'preftab' );
@@ -267,39 +267,14 @@
        // Set up a message to notify users if they try to leave the page 
without
        // saving.
        $( '#mw-prefs-form' ).data( 'origdata', $( '#mw-prefs-form' 
).serialize() );
-       $( window )
-               .on( 'beforeunload.prefswarning', function () {
-                       var retval;
+       allowCloseWindowFn = mediaWiki.confirmCloseWindow( {
+               test: function () {
+                       return $( '#mw-prefs-form' ).serialize() !== $( 
'#mw-prefs-form' ).data( 'origdata' );
+               },
 
-                       // Check if anything changed
-                       if ( $( '#mw-prefs-form' ).serialize() !== $( 
'#mw-prefs-form' ).data( 'origdata' ) ) {
-                               // Return our message
-                               retval = mediaWiki.msg( 'prefswarning-warning', 
mediaWiki.msg( 'saveprefs' ) );
-                       }
-
-                       // 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.prefswarning', function () {
-                       // Re-add onbeforeunload handler
-                       if ( !window.onbeforeunload ) {
-                               window.onbeforeunload = 
savedWindowOnBeforeUnload;
-                       }
-               } );
-       $( '#mw-prefs-form' ).submit( function () {
-               // Unbind our beforeunload handler
-               $( window ).off( '.prefswarning' );
+               message: mediaWiki.msg( 'prefswarning-warning', mediaWiki.msg( 
'saveprefs' ) ),
+               namespace: 'prefswarning'
        } );
-       $( '#mw-prefs-restoreprefs' ).click( function () {
-               // Unbind our beforeunload handler
-               $( window ).off( '.prefswarning' );
-       } );
+       $( '#mw-prefs-form' ).submit( allowCloseWindowFn );
+       $( '#mw-prefs-restoreprefs' ).click( allowCloseWindowFn );
 } );

-- 
To view, visit https://gerrit.wikimedia.org/r/191490
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I67a25ff8758f009123526d5194929bfcd7c3039b
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: TheDJ <hartman.w...@gmail.com>
Gerrit-Reviewer: Bartosz DziewoƄski <matma....@gmail.com>
Gerrit-Reviewer: Hoo man <h...@online.de>
Gerrit-Reviewer: Jack Phoenix <j...@countervandalism.net>
Gerrit-Reviewer: Umherirrender <umherirrender_de...@web.de>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to