TheDJ has uploaded a new change for review.
https://gerrit.wikimedia.org/r/191490
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(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core
refs/changes/90/191490/1
diff --git a/resources/Resources.php b/resources/Resources.php
index 233485c..bcfbdca 100644
--- a/resources/Resources.php
+++ b/resources/Resources.php
@@ -1360,6 +1360,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..19af6cf 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 = mw.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: newchange
Gerrit-Change-Id: I67a25ff8758f009123526d5194929bfcd7c3039b
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: TheDJ <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits