User:Rider ranger47/common.js
ShoutWiki — express yourself and be heard!
Jump to navigation
Jump to search
Note: After saving, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Go to Menu → Settings (Opera → Preferences on a Mac) and then to Privacy & security → Clear browsing data → Cached images and files.
/* __NOWYSIWYG__<source lang="javascript"> */
/*!
* Mark for deletion
*
* Adds a button to the toolbar that automatically adds {{delete|reason}} to the top of a page
* so that users can quickly mark spam or inappropriate pages for deletion
*
* 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 = "marked for deletion: " + deleteReason,
content = "{{delete|" + 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 = $('<li><a id="mark-for-deletion-link" style="cursor: pointer;">Mark for deletion</a></li>');
$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 delete reason to quickly mark this page for deletion:", 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));
}
/* </source> */