'prefs-tabs-navigation-hint',
'prefswarning-warning',
'saveprefs',
+ 'savedprefs',
),
'dependencies' => array(
'mediawiki.language',
'mediawiki.confirmCloseWindow',
+ 'mediawiki.notification',
),
),
'mediawiki.special.recentchanges' => array(
+
/*!
* JavaScript for Special:Preferences
*/
var $preftoc, $preferences, $fieldsets, $legends,
hash, labelFunc,
$tzSelect, $tzTextbox, $localtimeHolder, servertime,
- $checkBoxes, allowCloseWindow;
+ $checkBoxes, allowCloseWindow,
+ notif;
labelFunc = function () {
return this.id.replace( /^mw-prefsection/g, 'preftab' );
}
}
+ // If there is a #mw-preferences-success box and javascript is enabled, use a slick notification instead!
+ if ( $( '#mw-preferences-success' ).length ) {
+ notif = mediaWiki.notification.notify( mediaWiki.message( 'savedprefs' ), { autoHide: false } );
+ $( '#preftoc, .prefsection' ).one( 'change keydown mousedown', function () { // 'change' event not reliable!
+ if ( notif ) {
+ notif.close();
+ }
+ } );
+
+ // Remove now-unnecessary success=1 querystring to prevent reappearance of notification on reload
+ if ( history.replaceState ) {
+ history.replaceState( {}, document.title, document.URL.replace( /&?success=1/, '' ) );
+ }
+ }
+
// Populate the prefToc
$legends.each( function ( i, legend ) {
var $legend = $( legend ),