User:Voice of All/replacetxt.js
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.
//Manual replace
function replacetxt()
{
withw = '';
what = prompt("What text do you want to replace?" + "\n" + "You can even use regex commands." + "\n" + "Put '//' before and after the phrase to use regex.");
if (what == ''){alert("Invalid command."); return;}
else if (what == null){alert("Action cancelled."); return;}
what_GUI = what;
if (what.replace('//','').replace('//','') == what.split('//')[1])
{
what = what.split('//')[1]
replacetxtdone(what.split('//')[0],1,what);
}
else
{
what = what.replace(/\\/g,"\\\\");
what = what.replace(/\(/g,"\\(").replace(/\)/g,"\\)");
what = what.replace(/\{/g,"\\{").replace(/\}/g,"\\}");
what = what.replace(/\[/g,"\\[").replace(/\]/g,"\\]");
what = what.replace(/\|/g,"\\|");
what = what.replace(/\./g,"\\.");
what = what.replace(/\$/g,"\\$");
what = what.replace(/\+/g,"\\+");
what = what.replace(/\^/g,"\\^");
what = what.replace(/\?/g,"\\?");
what = what.replace(/\*/g,"\\*");
what = what.replace(/\//g,"\\/");
replacetxtdone(what,0,what_GUI);
}
}
//END
//Manual replace
function replacetxtdone(s,regexon,what_GUI)
{
var original = document.editform.wpTextbox1.value;
if(s)
{
if (regexon==1)
{var r = prompt('Replace "' + what_GUI + '" with what? (Regex)');}
else
{var r = prompt('Replace "' + what_GUI + '" with what?');}
if(!r && r != '') {alert('Action cancelled.'); return;}
if (r == ''){alert("All such appearances of text will be removed.");}
var txt = document.editform.wpTextbox1;
var rep = RegExp(s,"g");
txt.value = txt.value.replace(rep, r);
form = document.getElementById('bodyContent');
l = form.getElementsByTagName('input');
for (i = 0; i < l.length; i++)
{
if (l[i].name == 'wpMinoredit')
{l[i].value = '1'; l[i].checked=true;}
}
if (document.editform.wpTextbox1.value == original){alert('The word or phrase was not found on this page.'); return;}
document.editform.wpSummary.value += 'JS: Replacing "' + what_GUI + '" with "' + r + '". ';
}
}
//END
//---------------------------------------------------------------
//add tab
$(replacetab)
function replacetab()
{
if (document.title.indexOf("Editing ") != -1)
{
addToolboxLink("javascript:replacetxt()","Text replacer","txt-repl");
}
}
//END
////////////REDIRECTS////////////
$(redir_other_add)
function redir_other_add()
{
if (typeof addToolboxLink === 'undefined') return;
if (document.title.search(/Editing |Edit conflict/) != 0)
{addToolboxLink('javascript:redire_other()','Redirect to here','redir-hr','`');}
if (location.href.indexOf('&action=edit&jsaction=Redirect&target=') != -1)
{
var page = unescape(location.href.split('&target=')[1]);
var redirect = '#REDIRECT [[' + page + ']]';
var message = 'Note: Page already exists. Override?';
if (document.editform.wpTextbox1.value != '')
{
var override = confirm(message);
if (!override){return;}
}
document.editform.wpTextbox1.value = redirect;
document.editform.wpSummary.value = 'Redirect to [[' + page + ']]';
var form = document.getElementById('bodyContent');
l = form.getElementsByTagName('input');
for (var i = 0; i < l.length; i++)
{
if (l[i].name == 'wpMinoredit')
{l[i].value = '1'; l[i].checked=true; break;}
}
}
}
function redire_other()
{
var page = document.title.replace('Editing ','').replace('Edit Conflict','').replace('Edit conflict','').split(' - ')[0];
var txt = new String;
var foundIn = '';
if (window.getSelection)
{
txt = window.getSelection();
foundIn = 'window.getSelection()';
}
else if (document.getSelection)
{
txt = document.getSelection();
foundIn = 'document.getSelection()';
}
else if (document.selection)
{
txt = document.selection.createRange().text;
foundIn = 'document.selection.createRange()';
}
else
{var txt = prompt('No selected text found. Enter the page name:');}
if (!txt || txt == '')
{var txt = prompt('No selected text found. Enter the page name:');}
if (!txt || txt == ''){return;}
URL = mw.config.get('wgServer') + '/w/index.php?title=' + txt + '&action=edit&jsaction=Redirect&target=' + page;
URL = URL.replace(' &action','&action');
location.href = URL;
}