Difference between revisions of "User:MrDolomite/monobook.js"
From MidrangeWiki
MrDolomite (talk | contribs) m (http://en.wikipedia.org/wiki/Wikipedia:WikiProject_User_scripts/Scripts/Add_purge_to_tabs) |
MrDolomite (talk | contribs) (http://en.wikipedia.org/skins-1.5/common/wikibits.js for addPortletLink) |
||
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 // | ||
+ | ///////////////////////////////////////////////////////////////////////////////////// | ||
+ | |||
///////////////////////////////////////////////////////////////////////////////////// | ///////////////////////////////////////////////////////////////////////////////////// |
Revision as of 11:15, 3 April 2008
<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 // ///////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////// // 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§ion=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§ion=0") != -1) document.getElementById("wpSummary").value = "/* Intro */ "; }); ///////////////////////////////////////////////////////////////////////////////////// // END: created from http://en.wikipedia.org/wiki/Wikipedia:WikiProject_User_scripts/Scripts/Edit_Top // ///////////////////////////////////////////////////////////////////////////////////// </pre>