User:Voice of All/replacetxt.js

//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;

}