User:Voice of All/Approvals.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.
//<pre><nowiki>

function add_bottabs()
{
if (document.title.indexOf('Editing Wikipedia:Bots/Requests for approval/') ==0)
  {
        var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
        addlimenu(tabs, 'bot approval', 'respfunc');
        var respfunc = document.getElementById('respfunc').getElementsByTagName('ul')[0];
        addlilink(respfunc, 'javascript:rfa_trial(1)',"trial (t)", '');
        addlilink(respfunc, 'javascript:rfa_trial(2)',"trial (e)", '');
        addlilink(respfunc, 'javascript:rfa_pass(1)',"app. (f)", '');
        addlilink(respfunc, 'javascript:rfa_pass(0)',"app. (nf)", '');
        addlilink(respfunc, 'javascript:rfa_pass(2)',"app. task", '');
        addlilink(respfunc, 'javascript:rfa_fail()',"deny", '');
        addlilink(respfunc, 'javascript:rfa_arch()',"done", '');
  }
else if (document.title.indexOf('Editing Wikipedia:Bots/Requests for approval') ==0)
  {
  if (location.href.search(/&jstext=/) !=-1)
        {
        var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
        addlimenu(tabs, 'bot approval', 'respfunc');
        var respfunc = document.getElementById('respfunc').getElementsByTagName('ul')[0];
        addlilink(respfunc, 'javascript:add_text()',"Add", '');
        alert('Add "<JSADD>" to the correct place and press the "add" tab');
        }
  }
}

function add_text()
{
var target = unescape(location.href.split('&jstext=')[1].split('&')[0]);
var f = document.editform, t = f.wpTextbox1;
if (t.value.search(/<JSADD>/) ==-1) return;
t.value = t.value.replace(/<JSADD>/g,target);
f.wpSummary.value += "JS: adding " + target;
}

//
var approvals_url = 'Wikipedia:Bots/Requests_for_approval';
var approved_list_url = 'Wikipedia:Bots/Approved_bot_requests';
var rejected_list_url = 'Wikipedia:Bots/Requests_for_approval/rejected';

function rfa_trial(type)
{
  var name = document.title.split('/Requests for approval/')[1].split(' (section)')[0];
  var f = document.editform, t = f.wpTextbox1;
  if (t.value.length > 0)
    t.value += '\n';
  if (type==1)
      t.value +=":[[Image:Symbol support vote.svg|20px]] Bot trial run approved for the duration of one week. " + "~" + "~" + "~" + "~";
  else
      t.value +=":[[Image:Symbol support vote.svg|20px]] Bot trial run approved for 50 edits. " + "~" + "~" + "~" + "~";
  target = "*<!--TRIAL" + name + "-->{{botlinks|" + name + "}} ''Approved for trials as of ~~~~~''";
  f.wpSummary.value += "Response: trial run approved";
  window.open(mw.config.get('wgServer') + '/w/index.php?title=' + approvals_url + '&action=edit&section=3&jstext=' + escape(target),'RFBA:add',
    'location=no,toolbar=no,status=no,directories=no,scrollbars=yes,fullscreen=yes');
}

function rfa_fail()
{
  var name = document.title.split('/Requests for approval/')[1].split(' (section)')[0];
  var f = document.editform, t = f.wpTextbox1;
  if (t.value.length > 0)
    t.value += '\n';
  t.value +=":[[Image:Symbol oppose vote.svg|20px]] '''Bot not approved''', discussion archived. " + "~" + "~" + "~" + "~";
  if (t.value.search(/:''The above discussion is preserved as an archive/) !=-1)
    {t.value = '<noinclude>' + '\n' + t.value + '\n' + '</noinclude>'; alert('Please tag manually.');}
  else
    {t.value = '<noinclude>{{subst:debate top}}' + '\n' + t.value + '\n' + '{{subst:debate bottom}}</noinclude>';}
  f.wpSummary.value += "Archiving, bot not approved";
  window.open(mw.config.get('wgServer') + '/w/index.php?title=' + rejected_list_url + '&action=edit','RFBA:archf',
    'location=no,toolbar=no,status=no,directories=no,scrollbars=yes,fullscreen=yes');
}

function rfa_pass(flag)
{
  var name = document.title.split('/Requests for approval/')[1].split(' (section)')[0];
  var f = document.editform, t = f.wpTextbox1;
  target ='';
  if (t.value.length > 0)
    t.value += '\n';
  if (flag==1)
  {
  t.value +=":[[Image:Symbol keep vote.svg|20px]] '''Approved'''; the bot shall run ''with'' a flag. " + "~" + "~" + "~" + "~";
  f.wpSummary.value += "Response: bot approved (flagged)";
  target = "{{botlinks|" + name + "}} ''Approved on ~~~~~'' '''(flag needed)'''";
  }
  else if (flag==0)
  {
  t.value +=":[[Image:Symbol keep vote.svg|20px]] '''Approved'''; the bot shall run ''without'' a flag. " + "~" + "~" + "~" + "~";
  f.wpSummary.value += "Response: bot approved (not flagged)";
  target = "{{botlinks|" + name + "}} ''Approved on ~~~~~'' ''(not flagged)''";
  }
  else if (flag==2)
  {
  t.value +=":[[Image:Symbol keep vote.svg|20px]] '''Task approved'''. " + "~" + "~" + "~" + "~";
  f.wpSummary.value += "Response: task approved";
  target = "{{botlinks|" + name + "}} ''Task approved on ~~~~~''";
  }
//approved reqs
  window.open(mw.config.get('wgServer') + '/w/index.php?title=' + approved_list_url + '&action=edit&section=4&jstext=' + escape(target),'RFBA:add',
    'location=no,toolbar=no,status=no,directories=no,scrollbars=yes,fullscreen=yes');
//bots in a trial, bot should be removed from here if listed
  window.open(mw.config.get('wgServer') + '/w/index.php?title=' + approvals_url + '&action=edit&section=3','RFBA:rm',
    'location=no,toolbar=no,status=no,directories=no,scrollbars=yes,fullscreen=yes');
}

function rfa_arch()
{
  var f = document.editform, t = f.wpTextbox1;
  if (t.value.search(/:''The above discussion is preserved as an archive/) !=-1)
    {t.value = '<noinclude>' + '\n' + t.value + '\n' + '</noinclude>'; alert('Please tag manually.');}
  else
    {t.value = '<noinclude>{{subst:debate top}}' + '\n' + t.value + '\n' + '{{subst:debate bottom}}</noinclude>';}
  window.open(approvals_url,'RFBA:remove',
    'location=no,toolbar=no,status=no,directories=no,scrollbars=yes,fullscreen=yes');
  document.editform.wpMinoredit.checked = true;
  f.wpSummary.value += "Archiving request";
  var URL ='http://en.wikipedia.org/w/index.php?title=Wikipedia:Bots/Requests_for_approval/Approved&action=edit';
  window.open(URL,'RFBA:archp',
    'location=no,toolbar=no,status=no,directories=no,scrollbars=yes,fullscreen=yes');
}

$(approvals_main)
function approvals_main()
{
add_bottabs();
}

//</nowiki></pre>