"wlshowhidemine": "Option text in [[Special:Watchlist]]. Cf. {{msg-mw|rcshowhidemine}}.",
"wlshowhidecategorization": "Option text in [[Special:Watchlist]]. Cf. {{msg-mw|rcshowhidecategorization}}.",
"watchlist-options": "Legend of the fieldset of [[Special:Watchlist]]\n\nSee also:\n* {{msg-mw|Watchlist-details|watchlist header}}\n* {{msg-mw|Wlheader-enotif|watchlist header}}\n* {{msg-mw|enotif reset|Submit button text}}",
- "watchlist-mark-all-visited": "Dialog text in [[Special:Watchlist]] displayed for confirming whether the user wants to reset unseen watchlist changes by marking all pages as visited.",
"watching": "Text displayed when clicked on the watch tab: {{msg-mw|Watch}}. It means the wiki is adding that page to your watchlist.",
"unwatching": "Text displayed when clicked on the unwatch tab: {{msg-mw|Unwatch}}. It means the wiki is removing that page from your watchlist.",
"watcherrortext": "When a user clicked the watch/unwatch tab and the action did not succeed, this message is displayed.\n\nThis message is used raw and should not contain wikitext.\n\nParameters:\n* $1 - ...\nSee also:\n* {{msg-mw|Addedwatchtext}}",
// Adapted from a user script by User:NQ of English Wikipedia
// (User:NQ/WatchlistResetConfirm.js)
$resetForm.submit( function ( event ) {
- event.preventDefault();
-
- OO.ui.confirm( mw.msg( 'watchlist-mark-all-visited' ) )
- .done( function ( confirmed ) {
- var $button;
-
- if ( !confirmed ) {
- return;
- }
+ var $button = $resetForm.find( 'input[name=mw-watchlist-reset-submit]' );
- // Disable reset button to prevent multiple requests
- $button = $resetForm.find( 'input[name=mw-watchlist-reset-submit]' );
- $button.prop( 'disabled', true );
-
- // Show progress bar
- if ( $progressBar ) {
- $progressBar.css( 'visibility', 'visible' );
- } else {
- $progressBar = new OO.ui.ProgressBarWidget( { progress: false } ).$element;
- $progressBar.css( {
- position: 'absolute',
- width: '100%'
- } );
- $resetForm.append( $progressBar );
- }
+ event.preventDefault();
- // Use action=setnotificationtimestamp to mark all as visited,
- // then set all watchlist lines accordingly
- new mw.Api().postWithToken( 'csrf', {
- formatversion: 2,
- action: 'setnotificationtimestamp',
- entirewatchlist: true
- } ).done( function () {
- // Enable button again
- $button.prop( 'disabled', false );
- // Hide the button because further clicks can not generate any visual changes
- $button.css( 'visibility', 'hidden' );
- $progressBar.css( 'visibility', 'hidden' );
- $( '.mw-changeslist-line-watched' )
- .removeClass( 'mw-changeslist-line-watched' )
- .addClass( 'mw-changeslist-line-not-watched' );
- } ).fail( function () {
- // On error, fall back to server-side reset
- // First remove this submit listener and then re-submit the form
- $resetForm.off( 'submit' ).submit();
+ // Disable reset button to prevent multiple concurrent requests
+ $button.prop( 'disabled', true );
+
+ // Show progress bar
+ if ( $progressBar ) {
+ $progressBar.css( 'visibility', 'visible' );
+ } else {
+ $progressBar = new OO.ui.ProgressBarWidget( { progress: false } ).$element;
+ $progressBar.css( {
+ position: 'absolute',
+ width: '100%'
} );
+ $resetForm.append( $progressBar );
+ }
+
+ // Use action=setnotificationtimestamp to mark all as visited,
+ // then set all watchlist lines accordingly
+ new mw.Api().postWithToken( 'csrf', {
+ formatversion: 2,
+ action: 'setnotificationtimestamp',
+ entirewatchlist: true
+ } ).done( function () {
+ // Enable button again
+ $button.prop( 'disabled', false );
+ // Hide the button because further clicks can not generate any visual changes
+ $button.css( 'visibility', 'hidden' );
+ $progressBar.css( 'visibility', 'hidden' );
+ $( '.mw-changeslist-line-watched' )
+ .removeClass( 'mw-changeslist-line-watched' )
+ .addClass( 'mw-changeslist-line-not-watched' );
+ } ).fail( function () {
+ // On error, fall back to server-side reset
+ // First remove this submit listener and then re-submit the form
+ $resetForm.off( 'submit' ).submit();
} );
} );