Jump to content

User:JJPMaster/Scripts/SuppressRedirect.js

From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
function checkToBoolean(check) {
	if(check == "on") return true;
	return false;
}
// mw.loader.load('//en.wikipedia.org/w/index.php?title=User%3AJJPMaster%2Fusefulvars.js&action=raw&ctype=text/javascript'); // [[User:JJPMaster/usefulvars.js]]
$(() => {
	if (mw.config.get("wgArticleId") !== 0) {
		var porty = mw.util.addPortletLink('p-cactions', '#', 'Suppress redirect', 'pt-supp', 'Move and suppress the redirect');
		ad = "(using [[w:en:User:JJPMaster/SuppressRedirect|SuppressRedirect]])";
		$("#bodyContent").append(`
		<div id="suppressRedirectDialog">
			Why do you want to suppress this redirect?
			<select name="criterion" id="PMRcriterion">
				<option>Select the criterion</option>
				<option>Reverting page move vandalism ([[w:en:WP:PMRC#1]])</option>
				<option>Moving pages within a requester's own userspace to another location if a desire for deletion is expressed ([[w:en:WP:PMRC#2]])</option>
				<option>Moving pages from a title unambiguously created in error or in the incorrect namespace ([[w:en:WP:PMRC#3]])</option>
				<option>Round-robin page move ([[w:en:WP:PMRC#4]]</option>
				<option>File shadows Wikimedia Commons file ([[w:en:WP:PMRC#5]])</option>
				<option>Moving from mainspace to other namespace ([[w:en:WP:PMRC#6]])</option>
				<option>Moving recently created page from implausible title ([[w:en:WP:PMRC#7]])</option>
				<option>Moving editnotice to subpage of [[Template:Editnotices]] ([[w:en:WP:PMRC#8]])</option>
				<option>Redirect would meet a criterion for speedy deletion ([[w:en:WP:PMRC#9]])</option>
		    </select><br />
		    <input type="text" id="toMoveTitle" name="toMoveTitle" /><label for="toMoveTitle">The title the page will be moved to</label><br />
		    <input type="checkbox" class="subpageonly" id="moveSubpages" name="moveSubpages" checked /><label class="subpageonly" for="moveSubpages">Move subpages</label><br />
		    <input type="checkbox" id="moveTalk" name="moveTalk" checked /><label for="moveTalk">Move talk page</label><br />
		    <button type="button" id="moveForReal">Move page and suppress redirect</button>
	    </div>
		`);
		$("#suppressRedirectDialog").hide();
		$(porty).click(() => $("#suppressRedirectDialog").dialog());
		$("#moveForReal").click(function() {
			var critValue = document.getElementById("PMRcriterion").value;
			var criterion;
			if(critValue !== "Redirect would meet a criterion for speedy deletion ([[w:en:WP:PMRC#9]])")
				criterion = critValue;
			else {
				var innerCrit = prompt("What criterion?");
				if(innerCrit)
					criterion = `Redirect would meet criterion [[WP:CSD#${innerCrit.toUpperCase()}|${innerCrit.toUpperCase()}]] for speedy deletion ([[w:en:WP:PMRC#9]])`;
				else criterion = critValue;
			}
			var params = {
				action: 'move',
				from: mw.config.get("wgPageName"),
				to: document.getElementById("toMoveTitle").value,
				reason: criterion + " " + ad,
				movetalk: checkToBoolean(document.getElementById("moveTalk").value),
				movesubpages: checkToBoolean(document.getElementById("moveSubpages").value),
				noredirect: true,
				format: 'json'
			},
			api = new mw.Api();
		
			api.postWithToken( 'csrf', params ).done( function ( data ) {
				console.log( data );
				window.location.href = mw.config.get("wgArticlePath").replace("$1", "") + document.getElementById("toMoveTitle").value;
			} );
		});
	}
});