User:Calabe1992/monobook.js

// Prompt for an edit summary when clicking a rollback link addOnloadHook(function {    var serverRe = wgServer.replace(/([^A-Za-z0-9_])/g, "\\$1");     var scriptRe = wgScript.replace(/([^A-Za-z0-9_])/g, "\\$1");     var rollbackRe = new RegExp ("^(" + serverRe + ")?" + scriptRe + "\\?([^#]*&)?action=rollback(&|$)");   var promptSummary = function  {        var summary = prompt("Enter rollback summary (or leave as \"default\" to use default summary):", "default");        if (summary == null || summary == "") return false;        if (summary == "default") return true;        this.href = this.href.replace("?", "?summary=" + encodeURIComponent(summary) + "&");        return true;    };    var links = document.getElementsByTagName("a");    for (var i = 0; i < links.length; i++) {        if (rollbackRe.test(links[i].href)) links[i].onclick = promptSummary;    } });

function inc (file) { mw.loader.load('/w/index.php?title='+file+'&action=raw&ctype=text/javascript&dontcountme=s'); } inc("User:Lightdarkness/aiv.js");

importScript('User:Mr.Z-man/badimages.js');

/** * This script lets you use a custom summary with the rollback feature * by adding a "sum" link wherever a rollback link appears. When you * click "sum" you are prompted for a custom summary, and the script * adds an additional summary parameter to the rollback URL submitting it. * * For usage and extra options, see the talk page. */ function addSumLink { var rbnode = [], diffnode, index = {}, gebcn = document.getElementsByClassName ? function(a, b, c) { return a.getElementsByClassName(c) } : getElementsByClassName; if (typeof rollbackLinksDisable == 'object' && rollbackLinksDisable instanceof Array) for (var i = 0; i < rollbackLinksDisable.length; i++) index[rollbackLinksDisable[i]] = true; if (!('user' in index) && wgCanonicalSpecialPageName == "Contributions" ||       !('recent' in index) && wgCanonicalSpecialPageName == "Recentchanges" ||        !('watchlist' in index) && wgCanonicalSpecialPageName == "Watchlist") rbnode = gebcn(document.getElementById("bodyContent"), "span", "mw-rollback-link"); else if (!('history' in index) && wgAction == "history") rbnode = gebcn(document.getElementById("pagehistory"), "span", "mw-rollback-link"); else if (!('diff' in index) && (diffnode = document.getElementById("mw-diff-ntitle2"))) rbnode = gebcn(diffnode, "span", "mw-rollback-link"); for (var i = 0, len = rbnode.length; i < len; i++) addRollbackSummaryLink(rbnode[i]); }; function confirmRollback { var url = this.href; var user = url.match(/[?&]from=([^&]*)/); if (!user) return; user = decodeURIComponent(user[1].replace(/\+/g, " ")); var summary = prompt("Enter a summary to use for rollback.\n\nLeave blank to use the default. $user will be replaced with \"" + user + "\".",                        rollbackSummaryDefault); if (summary == undefined) return false; else if (summary == "") return true; this.href += "&summary=" + encodeURIComponent(summary.replace(/\$user/g, user)); return true; }; function addRollbackSummaryLink(rbnode) { var rblink = rbnode.getElementsByTagName("a")[0]; var alink = rblink.cloneNode(true); alink.className = ""; //don't confuse other scripts alink.firstChild.nodeValue = "sum"; alink.onclick = confirmRollback; rbnode.insertBefore(alink, rblink.nextSibling); rbnode.insertBefore(document.createTextNode(" | "), alink); }; if (typeof rollbackLinksDisable == 'undefined') rollbackLinksDisable = []; if (typeof rollbackSummaryDefault == 'undefined') rollbackSummaryDefault = ""; addOnloadHook(addSumLink);