User:NTPYTO/Sandbox/AddTemplatecode.js

/*! * Mark for deletion * * Adds text to the top of the page * so that users can quickly mark spam or inappropriate pages for deletion, or add any other template. * * Please don't edit the script, I'm still working on things. Suggestions welcome on talk page. Thanks! * *Based on: http://dev.wikia.com/wiki/MarkForDeletion */ /*jshint forin:true, noempty:true, eqeqeq:true, bitwise:true, strict:true, undef:true, unused:true, curly:true, browser:true, jquery:true */ /*global mediaWiki */ if (mediaWiki.config.get("wgAction") === "view" && mediaWiki.config.get("wgNamespaceNumber") !== -1 && mediaWiki.config.get("wgUserName") !== null) { (function ($, mw, window, document) {		"use strict";		var wgServer = mw.config.get("wgServer"),			wgPageNameEncoded = window.encodeURIComponent(mw.config.get("wgPageName"));		// uses MW API to automatically edit the page and insert the delete template at the top		function setDeleteNotice(deleteReason) {			var xhr = new XMLHttpRequest,				summary = "Added template: " + deleteReason,				content = "deleteReason",				editToken = mw.user.tokens.get("editToken"),				url = wgServer + "/api.php?action=edit&title=" + wgPageNameEncoded + "&summary=" + window.encodeURIComponent(summary) + "&format=json&prependtext=" + window.encodeURIComponent(content) + "&token=" + window.encodeURIComponent(editToken);			xhr.open("POST", url);			xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");			xhr.onreadystatechange = function {				if (this.readyState === 4) {					window.location.reload; }			};			xhr.send; }		// adds a "Mark for deletion" button to the user's toolbar function initDeleteNoticeButton { var $button, toolbar, $mytoolsLI, $customizeLI; // don't create duplicate buttons if (document.getElementById("mark-for-deletion-link") !== null) { return; }			// create button $button = $('Add Template'); $button.click(function deleteNoticeButtonClickHandler {				var promptedDeleteReason = "spam";				if (typeof window.MarkForDeletion === "object" && window.MarkForDeletion !== null && typeof window.MarkForDeletion.promptedDeleteReason === "string") {					promptedDeleteReason = window.MarkForDeletion.promptedDeleteReason;				}				var deleteReason = window.prompt("Enter text to quickly add template:", promptedDeleteReason);				if (typeof deleteReason === "string" && deleteReason.length > 0) {					setDeleteNotice(deleteReason);				}			}); // add button to toolbar toolbar = document.getElementById("WikiaBarWrapper"); if (toolbar !== null) { // oasis $mytoolsLI = $(toolbar).find("li.mytools"); if ($mytoolsLI.length > 0) { // insert link before My Tools $mytoolsLI.before($button); } else { // try to insert link before Customize $customizeLI = $(toolbar).find("a.tools-customize").parent; $customizeLI.before($button); }			} else { // monobook toolbar = document.getElementById("p-tb"); if (toolbar !== null) { $(toolbar).find("ul").append($button); }			}		}		// add button on DOMReady $(initDeleteNoticeButton); }(jQuery, mediaWiki, window, document)); } /*