User:Fox/replace.js

// Does what it says on the tin. Adds a portlet link to the tab bar which allows the user to replace a phrase with another. // Code by User:Fox, fixed extensively by User:Tom Morris, with help from User:Quanticle.

addOnloadHook(function {   // parse URL parameters into an object    var urlParameters = (function { var urlParameters = new Object; var asReadInUrlParameters; var asReadInUrlParameter;

asReadInUrlParameters = location.search.substring(1, location.search.length).split("&"); for (i = 0; i < asReadInUrlParameters.length; i++) { asReadInUrlParameter = asReadInUrlParameters[i].split("="); urlParameters[decodeURIComponent(asReadInUrlParameter[0])] = decodeURIComponent(asReadInUrlParameter[1]); }       return urlParameters; });

// handle what happens if there is a 'replace' if (urlParameters["action"] == "edit" && urlParameters["replace"] != undefined) { // prompt the user var before = prompt("What do you want to replace?", ""); var after = prompt("What do you want to replace \"" + before + "\" with?", ""); // replace text var match = new RegExp(before, "ig"); var form = document.forms["editform"]; var txt = form["wpTextbox1"].value;

if (after.length > 0 && before.length > 0) { replaced = txt.replace(match, after); } else { alert("You must specify both variables!") }       form["wpTextbox1"].value = replaced; // set edit summary form["wpSummary"].value = 'Replacing the phrase ' + before + ' with ' + after + ' (RPL)'; // submit form.submit; }

// add portlet link mw.util.addPortletLink("p-cactions", wgScript + "?title=" + wgPageName + "&action=edit&replace=1", "replace", "ca-replace"); });