MediaWiki:Gadget-RevertMoves.js

Från Wikipedia

OBS: Efter du har publicerat sidan kan du behöva tömma din webbläsares cache för att se ändringarna.

  • Firefox / Safari: Håll ned Skift och klicka på Uppdatera sidan eller tryck Ctrl-F5 eller Ctrl-R (⌘-R på Mac)
  • Google Chrome: Tryck Ctrl-Skift-R (⌘-Skift-R på Mac)
  • Internet Explorer / Edge: Håll ned Ctrl och klicka på Uppdatera eller tryck Ctrl-F5
  • Opera: Tryck Ctrl-F5.
$( function() {
	'use strict';
	var api = new mw.Api();
	if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Contributions' ) {
		if ( $( '.mw-contributions-blocked-notice' ).length ) {
			$( '#contentSub' )
				.find( '.mw-changeslist-links' )
				.contents()
				.last()
				.after( ' <span id="gadget-revertmoves"><a>Återställ flyttar</a></span>' )
				.next()
				.children( 'a' )
				.attr( {
					'href': '#',
					'title': 'Flytta tillbaka sidor utan att lämna omdirigering'
				} )
				.click( function( ev ) {
					ev.preventDefault();
					function getLogEvents( start ) {
						var obj = {
							list: 'logevents',
							letype: 'move',
							leuser: mw.config.get( 'wgRelevantUserName' ),
							formatversion: 2
						};
						if ( start ) {
							obj.lecontinue = start;
						}
						api.get( obj ).done( function( getres ) {
							var logevents = getres.query.logevents;
							var i = -1;
							function move() {
								i = i + 1;
								if ( i >= logevents.length ) {
									if ( getres.continue ) {
										if ( getres.continue.lecontinue ) {
											getLogEvents( getres.continue.lecontinue );
										}
									} else {
										$( '#gadget-revertmoves' ).text( 'Flyttar återställda' );
									}
								} else {
									api.postWithToken( 'csrf', {
										action: 'move',
										from: logevents[ i ].params.target_title,
										to: logevents[ i ].title,
										noredirect: true
									} ).done( function() {
										move();
									} );
								}
							}
							move();
						} );
					}
					getLogEvents();
				} );
		}
	}
} );