gracenotes/Rollback.js

This page is not available in other languages.

/**   * 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 ? 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) && mw.config.get("wgCanonicalSpecialPageName") == "Contributions" ||         !('recent' in index) && mw.config.get("wgCanonicalSpecialPageName") == "Recentchanges" ||         !('watchlist' in index) && mw.config.get("wgCanonicalSpecialPageName") == "Watchlist")         rbnode = gebcn(document.getElementById("bodyContent"), "span", "mw-rollback-link");     else if (!('history' in index) && mw.config.get("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 = "";  $(addSumLink); 

Tags:

🔥 Trending searches on Wiki English:

CaliforniaEdward VIIIRyan GoslingFrancis Scott Key Bridge (Baltimore)Young SheldonJoe KeeryWes MooreAlan RitchsonNorth KoreaThe Ministry of Ungentlemanly WarfareFort CarrollPier Gerlofs DoniaPakistanRuth KearneyBad Boys (franchise)Andrew HubermanFrancis Scott Key Bridge collapse2024 Miami OpenBand of Brothers (miniseries)Kristen StewartTitanicBlack Dolphin PrisonTiger WoodsNarendra ModiJasmin ParisRobin WilliamsBryan CranstonOnce Upon a Time in HollywoodThree-BodySkibidi ToiletStephen CurrySeven deadly sinsJesusBarbie (film)NetherlandsPrince (musician)Generation XCurb Your EnthusiasmTokugawa IeyasuTanteNational September 11 Memorial & MuseumPreity ZintaGodzilla vs. KongNeil ArmstrongRoad House (1989 film)2024 Summer OlympicsAlexander the GreatKim Soo-hyunInterstellar (film)Lisa (rapper)Joely RichardsonThe Passion of the ChristHong KongCarol BurnettBritney SpearsWeCrashedFábián MarozsánDeath's EndCuba Gooding Jr.Kung Fu Panda 4Adolf HitlerRamy YoussefMumbai IndiansAndre Jin CoquillardMasters of the AirKristen WiigRule 34Charles IIIRuby FrankeThe Voice (American season 25)Robert Downey Jr.Gary O'DonoghueRashida JonesMadelyne PryorIndiaSecond Punic WarWordle🡆 More