Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/*
** GLOBALDELETE
** Quickly insert common deletion reasons on a template
** This script is meant to be used globally
** Heavily adapted from UserMessages. See [[mw:User:GeorgeBarnick/usermessages.js]] for attributions.
*/
// <source lang="javascript">
 
//moved here from commons
function getParamValue(paramName, url) { if (typeof url == "undefined") { url = document.location.href; } var cmdRe = RegExp("[&?]" + paramName + "=([^&]*)"); var m = cmdRe.exec(url); if (m) { try { return decodeURIComponent(m[1]); } catch (someError) { } } return null; }
//end moved here from commons
// Configuration
 
// Should the edits be saved automatically?
if(window.template_autosave === false){}else{ template_autosave = true; }
 
// Template Name
var uTemplate = new Array(24);
uTemplate[0] = 'Delete|Test page';
uTemplate[1] = 'Delete|Vandalism';
uTemplate[2] = 'Delete|Spam';
uTemplate[3] = 'Delete|Out of project scope';
uTemplate[4] = 'Delete|No good content';
uTemplate[5] = 'Delete|Nonsense';
uTemplate[6] = 'Delete';
 
// Text to be shown in Toolbox
var uText = new Array(24);
uText[0] = "Test page";
uText[1] = "Vandalism";
uText[2] = "Spam";
uText[3] = "Out of scope";
uText[4] = "No good content";
uText[5] = "Nonsense";
uText[6] = "(no reason)";
 
// Mouseover help text for Toolbox
var uHelp = new Array(24);
uHelp[0] = "Page is clearly a test or other nonsense";
uHelp[1] = "Page is complete vandalism";
uHelp[2] = "Page is spam or other advertising material";
uHelp[3] = "Page is out of the wiki's project scope";
uHelp[4] = "Page contains no good or meaninful content";
uHelp[5] = "Page is complete nonsense or gibberish";
uHelp[6] = "No specified reason";
 
template_reason = "The reason?";
template_pagename = "The page name?";
template_who = "Who does this IP belong to?";
 
// Site info
scriptPath = "/w/index.php";
prettyPath = "/wiki/";
wikiHostname = "www.mediawiki.org";
 
// From [[en:Wikipedia:WikiProject User scripts/Scripts/addLink]]
function addLink(where, url1, name1, id, title, key, after, url2, name2)
{
    //* where is the id of the toolbar where the button should be added;
    //   i.e. one of "p-cactions", "p-personal", "p-navigation", or "p-tb".
    //
    //* url1 is the URL which will be called when the button is clicked.
    //   javascript: urls can be used to do more complex things.
    //
    //* name1 is what will appear as the name of the button.
    //
    //* id is the id of the button; it's best to define one.
    //   Use a prefix to make sure its unique. Optional.
    //
    //* title is the tooltip title that gives a longer description
    //   of the button; if you define a accesskey, mention it here. Optional.
    //
    //* key is the char you want for the accesskey. Optional.
    //
    //* after is the id of the button you want to follow this one. Optional.
    //
    //* url2 is a second url to add. Optional
    //
    //*name2 is the name of the second url; defaults to name1. Optional
    var na = document.createElement('a');
    na.href = url1;
    na.appendChild(document.createTextNode(name1));
    var li = document.createElement('li');
    if(id) li.id = id;
    li.appendChild(na);
 
    if (url2) { //Another link, brother of the previous.
       na.href = url2;
       na.appendChild(document.createTextNode(name2 ? name2 : name1));
       li.appendChild(document.createTextNode(" · ")); //separate them a bit
       li.appendChild(na);
    }
 
    var tabs = document.getElementById(where).getElementsByTagName('ul')[0];
    if(after) {
        tabs.insertBefore(li,document.getElementById(after));
    } else {
        tabs.appendChild(li);
    }
    //akeytt is deprected and does nothing. who cares about access keys anyhow.
    /*if(id && ta) { //ta does not exist in vector? 
        if(key && title) { ta[id] = [key, title]; }
        else if(key) { ta[id] = [key, '']; }
        else if(title) { ta[id] = ['', title];}
    }
    // re-render the title and accesskeys from existing code in wikibits.js
    akeytt();*/
    return li;
}
 
// Add the template
function template_mark(talkpage_deleteaction, message_lang) {
  //if (!message_lang) return; //User pressed cancel
 
  //Now we assume message templates to be properly autotranslated
  if (message_lang) langparam='&template_lang=' + message_lang;
  else langparam='';
 
  var pagename = encodeURIComponent(mw.config.get('wgPageName'));
  var editlk = document.getElementById('ca-edit').getElementsByTagName('a')[0].href;
  document.location = editlk + '&deleteaction=' + talkpage_deleteaction + langparam + '&template_type=1';
}
 
// Add template to user talk page
function template_addTemplate(template) {
  if (getParamValue('template_lang')) {
          template = template + '/' + getParamValue('template_lang');
  }
 
  var txt = '{{' + template + '}}';
  document.editform.wpTextbox1.value = txt + '\n' + document.editform.wpTextbox1.value;
  //  the edit summary for when you mark the image. You can change it if you want.
  document.editform.wpSummary.value = 'Marked for deletion ([[m:User:GeorgeBarnick/delete.js|using GlobalDelete]])';
  if (template_autosave) document.editform.wpSave.click();
}
 
// Add the template
function template_mark2(talkpage_deleteaction, media_name, can_handle_empty_parameter, add_namespace) {
  if (media_name === null) return; // User pressed cancel
  if (media_name === '' && can_handle_empty_parameter != 1) return; // User did not supply parameter and template cannot handle that
  // Parameter handling for special cases
  if (add_namespace && media_name.length > 0) media_name = 'File:' + media_name;
 
  var pagename = encodeURIComponent(mw.config.get('wgPageName'));
  var editlk = document.getElementById('ca-edit').getElementsByTagName('a')[0].href;
  document.location = editlk + '&deleteaction=' + talkpage_deleteaction + '&media_name=' + encodeURIComponent (media_name) + '&template_type=2';
}
 
// Add template to user talk page
function template_addTemplate2(template) {
  if (getParamValue('media_name')) {
          template = template + '|' + getParamValue('media_name');
  }
 
  var txt = '{{subst:' + template + '}}';
  document.editform.wpTextbox1.value = document.editform.wpTextbox1.value + '\n' + txt + '\n~~~~';
  //  the edit summary for when you mark the image. You can change it if you want.
  document.editform.wpSummary.value = 'Adding template \"' + template + '\" to inform user. ([[User:Diego Grez/UserMessages.js|using UserMessages]])';
  if (template_autosave) document.editform.wpSave.click();
}
 
 
// Do the thing with the stuff here.
function template_onload() {
  // new section
  try {
  if (skin === 'vector') {
      if (window.useFancyVectorDropdown || window.useFancyVectorDropdown === undefined) {
          try {
              makeVectorFancySection();
              useFancyVectorDropdown = 'done'; //this is for debug. can remove
          }
          catch (e) {
              document.getElementById('panel').innerHTML += '<div id="p-Notify" class="portal"><h3 lang="en" xml:lang="en">Notify</h3><div class="body">\n <ul> </ul> </div> </div>';
          }
      }
      else {
          document.getElementById('panel').innerHTML += '<div id="p-Notify" class="portal"><h3 lang="en" xml:lang="en">Notify</h3><div class="body">\n <ul> </ul> </div> </div>';
     }
  }
  if (skin === 'monobook') {
      document.getElementById('column-one').innerHTML += '<div id="p-Notify" class="portlet"> <h3 lang="en" xml:lang="en">Notify</h3> <div class="pBody">	<ul></ul></div>	</div>';
  }
  } catch (e) {} //ignore errors and just use tb if they happen.
  var portlet = (document.getElementById('p-Notify') ? 'p-Notify' : 'p-tb');

  addLink(portlet, 'javascript:template_mark(\'0\')', uText[0], 'mark-warn', uHelp[0], null, null);
  addLink(portlet, 'javascript:template_mark(\'1\')', uText[1], 'mark-warn', uHelp[1], null, null);
  addLink(portlet, 'javascript:template_mark(\'2\')', uText[2], 'mark-warn', uHelp[2], null, null);
  addLink(portlet, 'javascript:template_mark(\'3\')', uText[3], 'mark-warn', uHelp[3], null, null);
  addLink(portlet, 'javascript:template_mark(\'4\')', uText[4], 'mark-warn', uHelp[4], null, null);
  addLink(portlet, 'javascript:template_mark(\'5\')', uText[5], 'mark-warn', uHelp[5], null, null);
  addLink(portlet, 'javascript:template_mark(\'6\')', uText[6], 'mark-warn', uHelp[6], null, null);

}
// Important thing and stuff above.
 
var deleteaction = getParamValue('deleteaction');
var template_type = getParamValue('template_type');	// Fetch what template to add
var action_idx = -1;

try {
  action_idx = parseInt (deleteaction, 10);
} catch (some_error) {
  action_idx = -1;    
}
var add_idx = -1;
try {
  add_idx = parseInt (template_type, 10);
} catch (some_error) {
  add_idx = -1;    
}
if (add_idx >= 1 && add_idx <= 2 && action_idx >= 0 && action_idx < uTemplate.length) {
  //may i take this moment to mention, this script is very very confusing
  if (add_idx == 1)
    template_addTemplate (uTemplate[action_idx]);
  else
    template_addTemplate2 (uTemplate[action_idx]);
}
 
$(template_onload);
 
function makeVectorFancySection()  {
//wrap this in a try. this might be somewhat delicate at the moment.
var pNotify = document.createElement('div');
pNotify.id = 'p-Notify';
pNotify.className = 'vectorMenu';
pNotify.innerHTML = ' <h3><span>Notify</span><a href="#" style="background-image:none;"/></h3> <div class="menu"> <ul lang="en" xml:lang="en"> </ul> </div>';
var rightNav = document.getElementById('right-navigation');
var pViews = document.getElementById('p-views');
pViewsCont = document.createElement('div');
pViewsCont.id = 'p-views-continued';
pViewsCont.className = 'vectorTabs';
var pViewsUL = document.createElement('ul');
pViewsCont.appendChild(pViewsUL);
var pivot = (document.getElementById('ca-history') ? document.getElementById('ca-history') : document.getElementById('ca-addsection'));
pivot = (pivot ? pivot : document.getElementById('ca-edit'));
pViewsUL.appendChild(pivot);
rightNav.insertBefore(pNotify, pViews.nextSibling);
rightNav.insertBefore(pViewsCont, pNotify.nextSibling); 
}
// </source>