MediaWiki:Gadget-protection-sidebar.js explained

// **********************************************************************// ** ***WARNING GLOBAL GADGET FILE*** **// ** changes to this file affect many users. **// ** please discuss on the talk page before editing **// ** **// **********************************************************************// Imported from: // Version as of: 2007-12-12T02:06:51//

<nowiki> 

function sysopFunctions {
	if (mw.config.get('wgUserGroups') && !window.disableSysopJS) {
		for (var g = 0; g < mw.config.get('wgUserGroups').length; ++g) {
			if (mw.config.get('wgUserGroups')[g] == "sysop") {

function addLink(where, url, name, id, title, key, after) {
    // addLink accepts either an id or a DOM node, mw.util.addPortletLink only takes a node
    if (after && !after.cloneNode)
        after = document.getElementById(after);

    return mw.util.addPortletLink(where, url, name, id, title, key, after);
}

  if (document.title.indexOf("Editing Wikipedia:Requests for page protection (section)") != -1) {

function fullprot_tag
{
  var f = document.editform, t = f.wpTextbox1;
  if (t.value.length > 0)
  t.value +=":{" + "{RFPP|p}} ~~" + "~~";
  f.wpSummary.value += "fully protected ";
}

// Break

function fullprotexp_tag
{
  var expfull = prompt("The page protection will expire in...");
  if(!expfull) {
  return;
 } else {
  var f = document.editform, t = f.wpTextbox1;
  if (t.value.length > 0)
  t.value +=":{" + "{RFPP|p|" + expfull + "}} ~~" + "~~";
  f.wpSummary.value += "fully protected ";
 }
}

// Break

function semiprot_tag
{
  var f = document.editform, t = f.wpTextbox1;
  if (t.value.length > 0)
  t.value +=":{" + "{RFPP|s}} ~~" + "~~";
  f.wpSummary.value += "sprotected ";
}

// Break

function semiprotexp_tag
{
  var expsemi = prompt("The page protection will expire in...");
  if(!expsemi) {
  return;
 } else {
  var f = document.editform, t = f.wpTextbox1;
  if (t.value.length > 0)
  t.value +=":{" + "{RFPP|s|" + expsemi + "}} ~~" + "~~";
  f.wpSummary.value += "sprotected ";
 }
}

// Break

function moveprot_tag
{
  var f = document.editform, t = f.wpTextbox1;
  if (t.value.length > 0)
  t.value +=":{" + "{RFPP|m}} ~~" + "~~";
  f.wpSummary.value += "move protected ";
}

// Break

function declinedprot_tag
{
  var declinereason = prompt("Reason? (Optional)");
  if(!declinereason) {
  var f = document.editform, t = f.wpTextbox1;
  if (t.value.length > 0)
  t.value +=":{" + "{RFPP|d}} ~~" + "~~";
  f.wpSummary.value += "declined ";
 } else {
  var f = document.editform, t = f.wpTextbox1;
  if (t.value.length > 0)
  t.value +=":{" + "{RFPP|d}}, " + declinereason + " ~~" + "~~";
  f.wpSummary.value += "declined ";
 }
}

// Break

function neaprot_tag
{
  var f = document.editform, t = f.wpTextbox1;
  if (t.value.length > 0)
  t.value +=":{" + "{RFPP|nea}} ~~" + "~~";
  f.wpSummary.value += "declined ";
}

// Break

function faprot_tag
{
  var f = document.editform, t = f.wpTextbox1;
  if (t.value.length > 0)
  t.value +=":{" + "{RFPP|fa}} ~~" + "~~";
  f.wpSummary.value += "declined ";
}

// Break

function userprot_tag
{
  var f = document.editform, t = f.wpTextbox1;
  if (t.value.length > 0)
  t.value +=":{" + "{RFPP|b}} ~~" + "~~";
  f.wpSummary.value += "user blocked ";
}

// Break

function unprot_tag
{
  var f = document.editform, t = f.wpTextbox1;
  if (t.value.length > 0)
  t.value +=":{" + "{RFPP|u}} ~~" + "~~";
  f.wpSummary.value += "unprotected ";
}

// Break

function doneprot_tag
{
  var f = document.editform, t = f.wpTextbox1;
  if (t.value.length > 0)
  t.value +=":{" + "{RFPP|do}} ~~" + "~~";
  f.wpSummary.value += "done ";
}

// Break

function note_tag
{
  var notereason = prompt ("Note:");
  if (!notereason) {
  return;
 } else {
  var f = document.editform, t = f.wpTextbox1;
  if (t.value.length > 0)
  t.value +=":{" + "{RFPP|n}} " + notereason + " ~~" + "~~";
  f.wpSummary.value += "note ";
 }
}

function prot_tagging
{
  mw.util.addPortletLink('p-navigation', 'javascript:fullprot_tag', "(Fully protected)");
  mw.util.addPortletLink('p-navigation', 'javascript:fullprotexp_tag', "(Full) \+ expiry");
  mw.util.addPortletLink('p-navigation', 'javascript:semiprot_tag', "(Semi-protected)");
  mw.util.addPortletLink('p-navigation', 'javascript:semiprotexp_tag', "(Semi) \+ expiry");
  mw.util.addPortletLink('p-navigation', 'javascript:moveprot_tag', "(Move-protected)");
  mw.util.addPortletLink('p-navigation', 'javascript:declinedprot_tag', "(Declined)");
  mw.util.addPortletLink('p-navigation', 'javascript:neaprot_tag', "(Declined nea)");
  mw.util.addPortletLink('p-navigation', 'javascript:faprot_tag', "(Declined fa)");
  mw.util.addPortletLink('p-navigation', 'javascript:userprot_tag', "(User blocked)");
  mw.util.addPortletLink('p-navigation', 'javascript:unprot_tag', "(Unprotected)");
  mw.util.addPortletLink('p-navigation', 'javascript:doneprot_tag', "(Done)");
  mw.util.addPortletLink('p-navigation', 'javascript:note_tag', "(Note)");
}

$(prot_tagging);
importStylesheet('User:Steel359/protection2.css');

// End if
};

// ---------------------------------------------------------------------------------------------------------------
//                                                                                                Protection tags

	function queryString(p) {
		var re = RegExp('[&?]' + p + '=([^&]*)');
		var matches;
		if (matches = re.exec(document.location)) {
			try { 
				return decodeURI(matches[1]);
			} catch (e) {
			}
		}
		return null;
	};

function misc_tagging
{
  mw.util.addPortletLink('p-tb', mw.config.get('wgServer') + '/wiki/Wikipedia:Requests for page protection', "WP:RFPP");
}

$(misc_tagging);
importStylesheet('User:Steel359/protection.css');

// ----------------------------------------------------------

// pp-dispute

$(function {
  if(queryString("jsaction")=="pp-dispute") {
  var fulldisputeexp = prompt("Expiry time? (Optional)");
  if (fulldisputeexp == null) {
  return;
 } else if (fulldisputeexp == '') {
  var f = document.editform, t = f.wpTextbox1;
  t.value = "{" + "{pp-dispute}}" + '\n' + t.value;
  f.wpSummary.value = "{" + "{pp-dispute}}";
 } else {
  var f = document.editform, t = f.wpTextbox1;
  t.value = "{" + "{pp-dispute|expiry={" + "{subst:#time:F j, Y|\+" + fulldisputeexp + "}}}}" + '\n' + t.value;
  f.wpSummary.value = "{" + "{pp-dispute}}";
 }
  document.forms[0].wpSave.click;
 }
});

// pp-vandalism

$(function {
  if(queryString("jsaction")=="pp-vandalism") {
  var fullvandalexp = prompt ("Expiry time? (Optional)");
  if (fullvandalexp == null) {
  return;
 } else if (fullvandalexp == '') {
  var f = document.editform, t = f.wpTextbox1;
  t.value = "{" + "{pp-vandalism}}" + '\n' + t.value;
  f.wpSummary.value = "{" + "{pp-vandalism}}";
 } else {
  var f = document.editform, t = f.wpTextbox1;
  t.value = "{" + "{pp-vandalism|expiry={" + "{subst:#time:F j, Y|\+" + fullvandalexp + "}}}}" + '\n' + t.value;
  f.wpSummary.value = "{" + "{pp-vandalism}}";
 }
  document.forms[0].wpSave.click;
 }
});

// pp-usertalk

$(function {
  if(queryString("jsaction")=="pp-usertalk") {
  var fulltalkexp = prompt ("Expiry time? (Optional)");
  if (fulltalkexp == null) {
  return;
 } else if (fulltalkexp == '') {
  var f = document.editform, t = f.wpTextbox1;
  t.value = "{" + "{pp-usertalk}}" + '\n' + t.value;
  f.wpSummary.value = "{" + "{pp-usertalk}}";
 } else {
  var f = document.editform, t = f.wpTextbox1;
  t.value = "{" + "{pp-usertalk|expiry={" + "{subst:#time:F j, Y|\+" + fulltalkexp + "}}}}" + '\n' + t.value;
  f.wpSummary.value = "{" + "{pp-usertalk}}";
 }
  document.forms[0].wpSave.click;
 }
});

// pp-protected (other)

$(function {
  if(queryString("jsaction")=="pp-protected") {
  var fullreason = prompt ("This page is currently protected from editing because... (Optional)");
  if (fullreason == null) {
  return;
 } else if (fullreason == '') {
  var f = document.editform, t = f.wpTextbox1;
  t.value = "{" + "{pp-protected}}" + '\n' + t.value;
  f.wpSummary.value = "{" + "{pp-protected}}";
 } else {
  var f = document.editform, t = f.wpTextbox1;
  t.value = "{" + "{pp-protected|reason=" + fullreason + "}}" + '\n' + t.value;
  f.wpSummary.value = "{" + "{pp-protected}}";
 }

  var fullotherexp = prompt ("Expiry time? (Optional)");
  if (fullotherexp == null) {
  return;
 } else if (fullotherexp == '') {
  document.forms[0].wpSave.click;
 } else {
  var f = document.editform, t = f.wpTextbox1;
  t.value = t.value.split('{'+'{pp-protected').join('{'+'{pp-protected|expiry={{subst:#time:F j, Y|\+' + fullotherexp + "}}");
  document.forms[0].wpSave.click;
 }
}
});

// pp-small=yes

$(function {
  if(queryString("jsaction")=="pp-small") {
  var f = document.editform, t = f.wpTextbox1;
  t.value = "{" + "{pp-protected|small=yes}}" + '\n' + t.value;
  f.wpSummary.value = "{" + "{pp-protected|small=yes}}";
  document.forms[0].wpSave.click;
 }
});

// pp-semi-vandalism

$(function {
  if(queryString("jsaction")=="pp-semi-vandalism") {
  var semivandalexp = prompt("Expiry time? (Optional)");
  if (semivandalexp == null) {
  return;
 } else if (semivandalexp == '') {
  var f = document.editform, t = f.wpTextbox1;
  t.value = "{" + "{pp-semi-vandalism}}" + '\n' + t.value;
  f.wpSummary.value = "{" + "{pp-semi-vandalism}}";
 } else {
  var f = document.editform, t = f.wpTextbox1;
  t.value = "{" + "{pp-semi-vandalism|expiry={" + "{subst:#time:F j, Y|\+" + semivandalexp + "}}}}" + '\n' + t.value;
  f.wpSummary.value = "{" + "{pp-semi-vandalism}}";
 }
  document.forms[0].wpSave.click;
 }
});

// pp-semi-usertalk

$(function {
  if(queryString("jsaction")=="pp-semi-usertalk") {
  var semitalkexp = prompt ("Expiry time? (Optional)");
  if (semitalkexp == null) {
  return;
 } else if (semitalkexp == '') {
  var f = document.editform, t = f.wpTextbox1;
  t.value = "{" + "{pp-semi-usertalk}}" + '\n' + t.value;
  f.wpSummary.value = "{" + "{pp-semi-usertalk}}";
 } else {
  var f = document.editform, t = f.wpTextbox1;
  t.value = "{" + "{pp-semi-usertalk|expiry={" + "{subst:#time:F j, Y|\+" + semitalkexp + "}}}}" + '\n' + t.value;
  f.wpSummary.value = "{" + "{pp-semi-usertalk}}";
 }
  document.forms[0].wpSave.click;
 }
});

// pp-semi-socks

$(function {
  if(queryString("jsaction")=="pp-semi-sock") {
  var semisockexp = prompt("Expiry time? (Optional)");
  if (semisockexp == null) {
  return;
 } else if (semisockexp == '') {
  var f = document.editform, t = f.wpTextbox1;
  t.value = "{" + "{pp-semi-sock}}" + '\n' + t.value;
  f.wpSummary.value = "{" + "{pp-semi-sock}}";
 } else {
  var f = document.editform, t = f.wpTextbox1;
  t.value = "{" + "{pp-semi-sock|expiry={" + "{subst:#time:F j, Y|\+" + semisockexp + "}}}}" + '\n' + t.value;
  f.wpSummary.value = "{" + "{pp-semi-sock}}";
 }
  document.forms[0].wpSave.click;
 }
});

// pp-semi-protected (other)

$(function {
  if(queryString("jsaction")=="pp-semi-protected") {
  var semireason = prompt ("Editing of this article by unregistered or newly registered users is currently disabled because... (Optional)");
  if (semireason == null) {
  return;
 } else if (semireason == '') {
  var f = document.editform, t = f.wpTextbox1;
  t.value = "{" + "{pp-semi-protected}}" + '\n' + t.value;
  f.wpSummary.value = "{" + "{pp-semi-protected}}";
 } else {
  var f = document.editform, t = f.wpTextbox1;
  t.value = "{" + "{pp-semi-protected|reason=" + semireason + "}}" + '\n' + t.value;
  f.wpSummary.value = "{" + "{pp-semi-protected}}";
 }

  var semiotherexp = prompt ("Expiry time? (Optional)");
  if (semiotherexp == null) {
  return;
 } else if (semiotherexp == '') {
  document.forms[0].wpSave.click;
 } else {
  var f = document.editform, t = f.wpTextbox1;
  t.value = t.value.split('{'+'{pp-semi-protected').join('{'+'{pp-semi-protected|expiry={{subst:#time:F j, Y|\+' + semiotherexp + "}}");
  document.forms[0].wpSave.click;
 }
}
});

// pp-semi-small=yes

$(function {
  if(queryString("jsaction")=="pp-semi-small") {
  var f = document.editform, t = f.wpTextbox1;
  t.value = "{" + "{pp-semi-protected|small=yes}}" + '\n' + t.value;
  f.wpSummary.value = "{" + "{pp-semi-protected|small=yes}}";
  document.forms[0].wpSave.click;
 }
});

// Unprotection

$(function {
  if(queryString("jsaction")=="unprotected") {
  var f = document.editform, t = f.wpTextbox1;
  var pp = RegExp("\{\{pp-.*?\}\}.*?\n");
  t.value = t.value.split(pp).join('');
  f.wpSummary.value = "Unprotected";
  var unprotconfirm = confirm("This script removes new style protection templates (eg, {"+"{pp-whatever}}), but not the older versions." + "\n" + "If an old style protection template is still present (eg, {"+"{sprotect}}), hit cancel to remove it manually, otherwise hit OK to save the page.");
  if(!unprotconfirm) {
  return;
 } else {
  document.forms[0].wpSave.click;
 }
}
});

// ---------------------------------------------------------------------------------------------------------

  if (mw.config.get('wgNamespaceNumber') > -1) {

function mylinks {
 var boxclone = document.createElement("div");
 boxclone.id = 'p-navclone';
 boxclone.setAttribute("class","portlet");

 var titolo = document.createElement("h5");
 titolo.innerHTML = "protection tags";
 boxclone.appendChild(titolo);

 var corpo = document.createElement("div");
 corpo.setAttribute("class","pBody");
 var list_ul = document.createElement("ul");

 var list_b = document.createElement("li");
 list_b.id = 'v-dispute';
 var link_b = document.createElement("a");
 link_b.href = mw.config.get('wgServer') + '/wiki/' + mw.config.get('wgPageName') + '?action=edit&jsaction=pp-dispute';
 link_b.innerHTML = 'Full (dispute)';
 list_b.appendChild(link_b);
 list_ul.appendChild(list_b);

 var list_e = document.createElement("li");
 list_e.id = 'v-vandalism';
 var link_e = document.createElement("a");
 link_e.href = mw.config.get('wgServer') + '/wiki/' + mw.config.get('wgPageName') + '?action=edit&jsaction=pp-vandalism';
 link_e.innerHTML = 'Full (vandalism)';
 list_e.appendChild(link_e);
 list_ul.appendChild(list_e);

 var list_e = document.createElement("li");
 list_e.id = 'v-usertalk';
 var link_e = document.createElement("a");
 link_e.href = mw.config.get('wgServer') + '/wiki/' + mw.config.get('wgPageName') + '?action=edit&jsaction=pp-usertalk';
 link_e.innerHTML = 'Full (unblockabuse)';
 list_e.appendChild(link_e);
 list_ul.appendChild(list_e);

 var list_j = document.createElement("li");
 list_j.id = 'v-protected';
 var link_j = document.createElement("a");
 link_j.href = mw.config.get('wgServer') + '/wiki/' + mw.config.get('wgPageName') + '?action=edit&jsaction=pp-protected';
 link_j.innerHTML = 'Full (other)';
 list_j.appendChild(link_j);
 list_ul.appendChild(list_j);

 var list_j = document.createElement("li");
 list_j.id = 'v-small';
 var link_j = document.createElement("a");
 link_j.href = mw.config.get('wgServer') + '/wiki/' + mw.config.get('wgPageName') + '?action=edit&jsaction=pp-small';
 link_j.innerHTML = 'Full (small=yes)';
 list_j.appendChild(link_j);
 list_ul.appendChild(list_j);

 var list_k = document.createElement("li");
 list_k.id = 'v-s-vandalism';
 var link_k = document.createElement("a");
 link_k.href = mw.config.get('wgServer') + '/wiki/' + mw.config.get('wgPageName') + '?action=edit&jsaction=pp-semi-vandalism';
 link_k.innerHTML = 'Semi (vandalism)';
 list_k.appendChild(link_k);
 list_ul.appendChild(list_k);

 var list_e = document.createElement("li");
 list_e.id = 'v-s-usertalk';
 var link_e = document.createElement("a");
 link_e.href = mw.config.get('wgServer') + '/wiki/' + mw.config.get('wgPageName') + '?action=edit&jsaction=pp-semi-usertalk';
 link_e.innerHTML = 'Semi (unblockabuse)';
 list_e.appendChild(link_e);
 list_ul.appendChild(list_e);

 var list_l = document.createElement("li");
 list_l.id = 'v-s-socks';
 var link_l = document.createElement("a");
 link_l.href = mw.config.get('wgServer') + '/wiki/' + mw.config.get('wgPageName') + '?action=edit&jsaction=pp-semi-sock';
 link_l.innerHTML = 'Semi (sock problems)';
 list_l.appendChild(link_l);
 list_ul.appendChild(list_l);

 var list_l = document.createElement("li");
 list_l.id = 'v-s-protected';
 var link_l = document.createElement("a");
 link_l.href = mw.config.get('wgServer') + '/wiki/' + mw.config.get('wgPageName') + '?action=edit&jsaction=pp-semi-protected';
 link_l.innerHTML = 'Semi (other)';
 list_l.appendChild(link_l);
 list_ul.appendChild(list_l);

 var list_j = document.createElement("li");
 list_j.id = 'v-small';
 var link_j = document.createElement("a");
 link_j.href = mw.config.get('wgServer') + '/wiki/' + mw.config.get('wgPageName') + '?action=edit&jsaction=pp-semi-small';
 link_j.innerHTML = 'Semi (small=yes)';
 list_j.appendChild(link_j);
 list_ul.appendChild(list_j);

 var list_l = document.createElement("li");
 list_l.id = 'v-unprot';
 var link_l = document.createElement("a");
 link_l.href = mw.config.get('wgServer') + '/wiki/' + mw.config.get('wgPageName') + '?action=edit&jsaction=unprotected';
 link_l.innerHTML = 'Unprotected';
 list_l.appendChild(link_l);
 list_ul.appendChild(list_l);

 corpo.appendChild(list_ul);
 boxclone.appendChild(corpo);
 var pcontainer = document.getElementById("column-one");
 if(!pcontainer) pcontainer=document.getElementById("mw_portlets");
 pcontainer.appendChild(boxclone);
}

if (window.addEventListener) window.addEventListener("load",mylinks,false);
else if (window.attachEvent) window.attachEvent("onload",mylinks);


};

// End sysop requirement
			}
		}
	}
}
$(sysopFunctions);

// </nowiki>