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