Difference between revisions of "User:MrDolomite/monobook.js"

From MidrangeWiki
Jump to: navigation, search
(http://en.wikipedia.org/skins-1.5/common/wikibits.js for addPortletLink)
m (addPortletLink is already in http://wiki.midrange.com/skins/common/wikibits.js Undo revision 9858 by MrDolomite (Talk))
 
Line 1: Line 1:
 
<pre>
 
<pre>
 
/////////////////////////////////////////////////////////////////////////////////////
 
// START: created from http://en.wikipedia.org/skins-1.5/common/wikibits.js //
 
/////////////////////////////////////////////////////////////////////////////////////
 
// to enable addPortletLink function so that the add [purge] tab works
 
 
/**
 
* Add a link to one of the portlet menus on the page, including:
 
*
 
* p-cactions: Content actions (shown as tabs above the main content in Monobook)
 
* p-personal: Personal tools (shown at the top right of the page in Monobook)
 
* p-navigation: Navigation
 
* p-tb: Toolbox
 
*
 
* This function exists for the convenience of custom JS authors.  All
 
* but the first three parameters are optional, though providing at
 
* least an id and a tooltip is recommended.
 
*
 
* By default the new link will be added to the end of the list.  To
 
* add the link before a given existing item, pass the DOM node of
 
* that item (easily obtained with document.getElementById()) as the
 
* nextnode parameter; to add the link _after_ an existing item, pass
 
* the node's nextSibling instead.
 
*
 
* @param String portlet -- id of the target portlet ("p-cactions", "p-personal", "p-navigation" or "p-tb")
 
* @param String href -- link URL
 
* @param String text -- link text (will be automatically lowercased by CSS for p-cactions in Monobook)
 
* @param String id -- id of the new item, should be unique and preferably have the appropriate prefix ("ca-", "pt-", "n-" or "t-")
 
* @param String tooltip -- text to show when hovering over the link, without accesskey suffix
 
* @param String accesskey -- accesskey to activate this link (one character, try to avoid conflicts)
 
* @param Node nextnode -- the DOM node before which the new item should be added, should be another item in the same list
 
*
 
* @return Node -- the DOM node of the new item (an LI element) or null
 
*/
 
function addPortletLink(portlet, href, text, id, tooltip, accesskey, nextnode) {
 
var node = document.getElementById(portlet);
 
if ( !node ) return null;
 
node = node.getElementsByTagName( "ul" )[0];
 
if ( !node ) return null;
 
 
var link = document.createElement( "a" );
 
link.appendChild( document.createTextNode( text ) );
 
link.href = href;
 
 
var item = document.createElement( "li" );
 
item.appendChild( link );
 
if ( id ) item.id = id;
 
 
if ( accesskey ) {
 
link.setAttribute( "accesskey", accesskey );
 
tooltip += " ["+accesskey+"]";
 
}
 
if ( tooltip ) {
 
link.setAttribute( "title", tooltip );
 
}
 
if ( accesskey && tooltip ) {
 
updateTooltipAccessKeys( new Array( link ) );
 
}
 
 
if ( nextnode && nextnode.parentNode == node )
 
node.insertBefore( item, nextnode );
 
else
 
node.appendChild( item );  // IE compatibility (?)
 
 
return item;
 
}
 
 
/////////////////////////////////////////////////////////////////////////////////////
 
// END: created from http://en.wikipedia.org/skins-1.5/common/wikibits.js //
 
/////////////////////////////////////////////////////////////////////////////////////
 
 
  
 
/////////////////////////////////////////////////////////////////////////////////////
 
/////////////////////////////////////////////////////////////////////////////////////

Latest revision as of 11:20, 3 April 2008

<pre>

/////////////////////////////////////////////////////////////////////////////////////
// START: created from http://en.wikipedia.org/wiki/Wikipedia:WikiProject_User_scripts/Scripts/Add_purge_to_tabs //
/////////////////////////////////////////////////////////////////////////////////////
// This will add a [purge] tab

// addPurge
addOnloadHook(function () {
    var hist; var url;
    if (!(hist = document.getElementById('ca-history') )) return;
    if (!(url = hist.getElementsByTagName('a')[0] )) return;
    if (!(url = url.href )) return;
    addPortletLink('p-cactions', url.replace(/([?&]action=)history([&#]|$)/, '$1purge$2'),
                   'purge', 'ca-purge', 'Purge server cache for this page', '0');
});

/////////////////////////////////////////////////////////////////////////////////////
// END: created from http://en.wikipedia.org/wiki/Wikipedia:WikiProject_User_scripts/Scripts/Add_purge_to_tabs //
/////////////////////////////////////////////////////////////////////////////////////



///////////////////////////////////////////////////////////////////////////////////////
// START: created from http://en.wikipedia.org/wiki/User:Misza13/Scripts/View_source //
///////////////////////////////////////////////////////////////////////////////////////
// VIEW SOURCE
addOnloadHook(function () {
  if (location.href.indexOf('viewsource=1') != -1) {
    sl = document.getElementById('wpSummaryLabel'); sl.parentNode.removeChild(sl);
    ed = document.getElementById('wpSummary').parentNode; ed.parentNode.removeChild(ed);
    return;
  }
  editbutton = document.getElementById('ca-edit');
  if (editbutton && location.href.indexOf('action=edit')==-1) {
    editlink = editbutton.getElementsByTagName('a')[0].href + '&viewsource=1';
    tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
    na = document.createElement('a');
    na.href = editlink; na.appendChild(document.createTextNode('view source'));
    li = document.createElement('li'); li.id = 'ca-viewsource'; li.appendChild(na);
    tabs.insertBefore(li,editbutton);
  }
});
/////////////////////////////////////////////////////////////////////////////////////
// END: created from http://en.wikipedia.org/wiki/User:Misza13/Scripts/View_source //
/////////////////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////////////////////////
// START: created from http://en.wikipedia.org/wiki/Wikipedia:WikiProject_User_scripts/Scripts/Edit_Top //
/////////////////////////////////////////////////////////////////////////////////////
// This will add an [edit] link at the top of all pages except preview pages and the main page
// by User:Pile0nades


// Add an [edit] link to pages
addOnloadHook(function () {
// if this is preview page or generated page, stop
  if(document.getElementById("wikiPreview") || window.location.href.indexOf("/wiki/Special:") != -1) return;

  // if this is a revision history, stop
  if(document.getElementById("histlegend‎") || window.location.href.indexOf("/wiki/Special:") != -1) return;

  // if this is a diff page, stop
  if(document.getElementById("difference‎") || window.location.href.indexOf("/wiki/Special:") != -1) return;

  // if this is a watchlist, stop
  if(document.getElementById("watchdetails") || window.location.href.indexOf("/wiki/Special:") != -1) return;

  // if this is the main page, stop
  if(document.getElementById("mainpage") || window.location.href.indexOf("/wiki/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 = '<div class="editsection" style="float:right;margin-left:5px;margin-right:0px;margin-top:47px;">[<a href="/index.php?title='+pageTitle+'&action=edit&section=0" title="'+document.title.split(" - ")[0]+'">edit</a>]</div>';

  // insert divContainer into the DOM below the h1
  if(window.location.href.indexOf("&action=edit") == -1)
    document.getElementById("content").insertBefore(divContainer, document.getElementsByTagName("h1")[0]);

  if(window.location.href.indexOf("&action=edit&section=0") != -1)
    document.getElementById("wpSummary").value = "/* Intro */ ";
});
/////////////////////////////////////////////////////////////////////////////////////
// END: created from http://en.wikipedia.org/wiki/Wikipedia:WikiProject_User_scripts/Scripts/Edit_Top //
/////////////////////////////////////////////////////////////////////////////////////





</pre>