User:Voice of All/replacetxt.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.
//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;
}