User:Porchcorpter/rollbackSum.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.
// Created by Ilmari Karonen
// Credits: Porchcrop for some minor improvements. Information shown at [[User:Porchcrop/Rollback Summary]]
 
$(function () {
    var serverRe = mw.config.get('wgServer').replace(/([^A-Za-z0-9_])/g, "\\$1"); 
    var scriptRe = mw.config.get('wgScript').replace(/([^A-Za-z0-9_])/g, "\\$1"); 
    var rollbackRe = new RegExp ("^(" + serverRe + ")?" + scriptRe + "\\?([^#]*&)?action=rollback(&|$)");
    var promptSummary = function () {
        var summary = prompt("Enter summary for rollback (or leave as current to use default summary):", "[[Help:Reverting|Reverted]] edits by [[Special:Contributions/$2|$2]] ([[User talk:$2|talk]]) to last version by $1");
        if (summary == null || summary == "") return false;
        if (summary == "[[Help:Reverting|Reverted]] edits by [[Special:Contributions/$2|$2]] ([[User talk:$2|talk]]) to last version by $1") return true;
        this.href = this.href.replace("?", "?summary=" + encodeURIComponent(summary) + "&"); 
    };
    var links = document.getElementsByTagName("a");
    for (var i = 0; i < links.length; i++) {
        if (rollbackRe.test(links[i].href)) links[i].onclick = promptSummary;
    }
});