User:Ais523/stubtagtab2.js

From OpenWetWare
Jump to navigationJump to search

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.
// Stub tag tab. Original version by [[User:ais523]], on a request by [[User:thesublime514]].
// Enhancements made on requests by [[User:Alai]] and [[User:jj137]].
// ([[User:ais523/stubtagtab2.js]])
// <source lang="javascript">
addOnloadHook(function(){
  if(wgNamespaceNumber==0&&wgAction=="view")
  {
    if(document.getElementById("ca-edit"))
      addPortletLink('p-cactions', 'javascript:stubtagtab()', 'stub', 'ca-stubtag',
                                   'Add a stub tag to this page', '');
  }
  if(location.href.indexOf("&autoaddstubtag=")!=-1&&document.getElementById('wpTextbox1')!=null)
  {
    var x=decodeURIComponent(location.href.split("&autoaddstubtag=")[1]);
    if(x.indexOf("-stub")==-1) x+="-stub";
    document.getElementById('wpTextbox1').value+="\n{"+"{"+x+"}}"; //add to the end of the article
    document.getElementById('wpSummary').value=
      "Tagging with {"+"{"+x+"}} using [[WP:US/S|user scripts]]";
    document.getElementById('wpPreview').click();
  }
});

function stubtagtab()
{
  var h;
  // A list of subpages of WikiProject Stub sorting/Stub types/ that are relevant to this
  var a=['Commerce','Culture','Education','Geography','Government, law, and politics','History',
         'Leisure','Military and weaponry','Miscellaneous','Organizations','People',
         'Religion, mythology, faiths, and beliefs','Science','Sports','Technology','Transport'];
  var i=0;
  h="<div style='color:#000000; background-color:#fff8f8;'>&bull; ";
  while(i<a.length)
  {
    h+="<a href='javascript:stubtagmenu(\""+a[i]+"\");'>"+a[i]+"</a> &bull; ";
    i++;
  }
  h+="</div><div id='stubtagmenudiv' style='color:#000000; background-color:#fffff8;'></div>";
  document.getElementById("contentSub").innerHTML=h;
}

function stubtagmenurender(a)
{
  if(a.responseText.indexOf("<text>")==-1)
  {
    document.getElementById('stubtagmenudiv').innerHTML=
      "<i>Loading, please wait...</i>";
    return;
  }
  var s=a.responseText.split("<text>")[1].split("</text>")[0];
  s=s.split("&lt;").join("<").split("&gt;").join(">");
  s=s.split("&quot;").join('"').split("&amp;").join('&');
  s=s.split('<a href="/wiki/Template:');
  var i=s.length;
  while(--i) s[i]=s[i].split('" title').join('\');" title');
  s=s.join('<a temphref="javascript:stubtagwith(\'');
  s=s.split('<a href=').join('<a style="color:#000000;" notanhref=');
  s=s.split('<a temphref=').join('<a href=');
  document.getElementById('stubtagmenudiv').innerHTML=s;
}

function stubtagmenu(x)
{
  //Fetch the relevant subpage of the WikiProject
  var a = sajax_init_object();
  a.open('GET', wgServer+wgScriptPath+'/api.php?action=parse&prop=text&text='+
    encodeURIComponent('__NOTOC____NOEDITSECTION__{{Wikipedia:WikiProject Stub sorting/Stub types/'+
                       x+'}}')+'&format=xml');
  a.onreadystatechange = function(){stubtagmenurender(a)};
  a.send('');
}

function stubtagwith(x)
{
  if(x==null||x=="") return;
  location.href=wgServer+wgScript+"?title="+encodeURIComponent(wgPageName)+                                  
                "&action=edit&autoaddstubtag="+encodeURIComponent(x);
}

// </source> <!--[[Category:Wikipedia scripts]]-->