User:DESiegel/monobook.js/addons

From Wikipedia, the free encyclopedia

// This will add an [edit top] link at the top of all pages except preview pages // by User:Pile0nades

setTimeout("editTopLink()", 0) // this is equivalent of onload function editTopLink() {

 // if this is preview page or generated page, stop
 if(document.getElementById("wikiPreview") || window.location.href.indexOf("w/index.php?title=Special:") != -1) return;
 // get the page title
 var pageTitle = document.title.split(" - ")[0].replace(" ", "_"); 
 // create div and set innerHTML to link
 var divContainer = document.createElement("div");

divContainer.innerHTML = '

[<a href="/w/index.php?title='+pageTitle+'&action=edit&section=0" title="'+document.title.split(" - ")[0]+'">edit top</a>]

';

 // insert divContainer into the DOM before the h1
 document.getElementById("content").insertBefore(divContainer, document.getElementsByTagName("h1")[0]);

}

// //Add purge to tabs function addPurge(){

   ta['ca-purge'] = ['g', 'Purge the internal cache for this page'];
   var x = document.getElementById('ca-history');
   if(!x) return;
   if(x.children) x = x.children[0].href;
   else x = x.childNodes[0].href;
   addTab(x.replace(/=history/, "=purge"), 'purge', 'ca-purge');
   akeytt();

}

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

//


//Changes since I last edited //From http://en.wikipedia.org/w/index.php?title=User:JesseW/monobook.js&oldid=20755510 function addSinceTab() {

   var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
   if (window.location.href.indexOf("&action=history&gotosince=true")!=-1) {
      do_since_I_last_edited()
   }
   else if (!/wiki\/Special:|w\/index.php?title=Special:/.test(window.location.href)) {
      var thetitle=document.title.slice(0, String(document.title).indexOf(" - "));
      var l=addlilink(tabs, "/w/index.php?title="+thetitle+"&action=history&gotosince=true", 'since', );
      l.lastChild.title="Changes since I last edited";
   }

} function do_since_I_last_edited() {

       var csub=document.getElementById("contentSub");
       var msg=document.createElement("p");
       msg.appendChild(document.createTextNode
                       ("Parsing history... please wait..."));
       msg.className="error";
       csub.insertBefore(msg, csub.firstChild)
       var username=document.getElementById("pt-userpage").textContent;
       var hists=document.getElementById("pagehistory").childNodes;
       for (n=0;n<hists.length;n++) {
           if (hists[n].getElementsByTagName("span")[0].textContent==username) {
               document.location=hists[n].childNodes[1].href; 
               return;
           }
       }
       msg.replaceChild(document.createTextNode
                        ("You have not edited this page! (recently)"),
                        msg.firstChild);

}


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

//

// If you are editing a page, click the wikify button on your tab bar to add "Template:Wik"+"ify" to the top, set "Marked for wikification." as the edit summary, mark it as a minor edit, and submit.

function doQwikify() {

 document.editform.wpTextbox1.value = "Template:Wik"+"ify\n\n" + document.editform.wpTextbox1.value;
 document.editform.wpSummary.value = "Marked for wikification.";
 document.editform.wpMinoredit.checked = true;
 document.editform.submit();

} function addQwikify() {

 addTab("javascript:doQwikify()", "wikify", "ca-wikify", "Mark for wikification", "");
 akeytt();

}

if (document.title.indexOf("Editing ") == 0) {

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

}

// by raylu //


//Auto AFD script

//Please include the two following lines //Modified version of AutoVFD script to work with AFD //Script Modified by User:Jtkiefer


// This needs to change depending on skin used. function add_link(url, name) {

var na = document.createElement('a');
na.setAttribute('href', url);
na.appendChild(document.createTextNode(name));
var li = document.createElement('li');
li.appendChild(na);
var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
tabs.appendChild(li);

}

function strip_namespace(target) {

var colon = target.indexOf(':');
if (colon != -1)
  {
    var spaces = new Array('User', 'Wikipedia', 'Image', 'MediaWiki', 'Template', 'Help', 'Category');
    var ns = target.substring(0, colon);
    if (ns ==  || ns == 'Talk')
      return target.substring(colon + 1);
    else
      for (var i = 0; i < spaces.length; ++i)
        {
          if (ns == spaces[i]
              || ns == spaces[i] + '_talk')
            return target.substring(colon + 1);
        }
  }
return target;

}

function afd() {

document.editform.wpTextbox1.value = 'Template:' + 'subst:afd\n' + document.editform.wpTextbox1.value;
document.editform.wpSummary.value = 'afd';
var target = document.editform.action;
target = target.substring(target.indexOf('title=') + 6,
                          target.lastIndexOf('&action=submit'));
var months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
var date = new Date();
date = date.getUTCFullYear() + '_' + months[date.getUTCMonth()] + '_' + date.getUTCDate();
var pagename = strip_namespace(target);
window.open('/w/index.php?title=Wikipedia:Articles_for_deletion/' + pagename + '&action=edit&fakeaction=afdsub&faketarget=' + target,
            'Afd ' + unescape(target),
            'status,toolbar,location,menubar,directories,resizeable,scrollbars');
window.open('/w/index.php?title=Wikipedia:Articles_for_deletion/Log/' + date + '&action=edit&fakeaction=afdlist&faketarget=' + pagename,
            'AfdLog ' + unescape(target),
            'status,toolbar,location,menubar,directories,resizeable,scrollbars');

}

function autoafd() {

if (document.title.indexOf('Editing ') == 0)
  {
    var action = ;
    var target = ;
    if (location.search)
      {
        var l = location.search.substring(1).split('&');
        for (var i = 0; i < l.length; ++i)
          {
            var eq = l[i].indexOf('=');
            var name = l[i].substring(0, eq);
            if (name == 'fakeaction')
              action = l[i].substring(eq + 1);
            else if (name == 'faketarget')
              target = unescape(l[i].substring(eq + 1)).replace(/_/g, ' ');
          }
      }
    if (action == 'afdlist')
      {
        document.editform.wpTextbox1.value += 'Template:' + 'Wikipedia:Articles for deletion/' + target + '\n';
        document.editform.wpSummary.value = 'Wikipedia:Articles for deletion/' + target + '';
      }
    else if (action == 'afdsub')
      {
        if (document.editform.wpTextbox1.value.length > 0)
          {
            target = document.editform.action;
            target = unescape(target.substring(target.indexOf('title=') + 6, target.lastIndexOf('&action=submit'))).replace(/_/g, ' ');
            window.alert("There's an old afd at the default location already.\n\n" +
                         'Please either move it out of the way (and update existing links to it), or file the Afd by hand in another location (such as ' + target + ' (2)).');
          }
        else
          document.editform.wpTextbox1.value += '===' + target + '===\n' +
            'Reason for nomination. ~~' + '~~\n*\n*\n*\n';
      }
    else
      add_link('javascript:afd()', 'Afd');
  }

}

if (window.addEventListener)

window.addEventListener('load', autoafd, false);

else if (window.attachEvent)

window.attachEvent('onload', autoafd);


// **** Functions called by Modules ****

function addlilink(tabs, url, name, id, title, key){

   var na = document.createElement('a');
   na.href = url;
   na.appendChild(document.createTextNode(name));
   var li = document.createElement('li');
   if(id) li.id = id;
   li.appendChild(na);
   tabs.appendChild(li);
   if(id)
   {
       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;

}

//


function addTab(url, name, id, title, key){

   var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
   addlilink(tabs, url, name, id, title, key);

} //