|
m |
Line 1: |
Line 1: |
- | // Create "my links" sidebar box
| + | /* bottom tabs */ |
- | function myLinksBox () {
| + | |
- | // Create div#p-mylinks
| + | |
- | var myLinks = document.createElement('div');
| + | |
- | myLinks.id = 'p-mylinks';
| + | |
- | myLinks.className = 'portlet';
| + | |
| | | |
- | // Create h5 and append to div#p-mylinks
| + | function morelinks() { |
- | var h5 = document.createElement('h5');
| + | var tabs = document.getElementById('p-cactions').cloneNode(true); |
- | h5.appendChild(document.createTextNode('My Links'));
| + | tabs.id = 'mytabs'; |
- | myLinks.appendChild(h5);
| + | var listitems = tabs.getElementsByTagName('LI'); |
| + | for (i=0;i<listitems.length;i++) { |
| + | if(listitems[i].id) listitems[i].id = 'mytabs-' + listitems[i].id; |
| + | } |
| + | document.getElementById('column-content').appendChild(tabs); |
| + | } |
| + | if (window.addEventListener) window.addEventListener("load",morelinks,false); |
| + | else if (window.attachEvent) window.attachEvent("onload",morelinks); |
| | | |
- | // Create div.pBody and append to div#p-mylinks
| + | /* purge tab */ |
- | var pBody = document.createElement('div');
| + | function addPurgeButton() |
- | pBody.className = 'pBody'; | + | { |
- | myLinks.appendChild(pBody);
| + | var href = document.location.href; |
- | | + | { |
- | // Create ul and append to div.pBody
| + | var historyHref = document.getElementById( "ca-history" ).firstChild.href; |
- | var ul = document.createElement('ul');
| + | var div = document.getElementById( "p-cactions" ); |
- | pBody.appendChild(ul);
| + | var ul = div.getElementsByTagName( "ul" )[0]; |
- | | + | var newLi = document.createElement( "li" ); |
- | // Append div#p-mylinks to sidebar just before external links box | + | var newA = document.createElement( "a" ); |
- | var sidebar = document.getElementById('column-one');
| + | newA.setAttribute( "href" , historyHref.replace( "=history" , "=purge" ) ); |
- | sidebar.insertBefore(myLinks, document.getElementById('p-ext'));
| + | var text = document.createTextNode( "purge" ); |
- | | + | newA.appendChild( text ); |
- | // Populate the actual links
| + | newLi.appendChild( newA ); |
- | addLink("p-mylinks", "/index.php/Special:BrokenRedirects", "Broken redirects", "n-brokenredirects", "The list of broken redirects.");
| + | ul.appendChild( newLi ); |
- | addLink("p-mylinks", "/index.php/Special:DoubleRedirects", "Double redirects", "n-doubleredirects", "The list of double redirects.");
| + | } |
- | addLink("p-mylinks", "/index.php?limit=5000&title=Special%3ARecentchanges&namespace=8", "Interface changes", "n-interfacechanges", "The list of recent interface changes.");
| + | |
- | addLink("p-mylinks", "/index.php/Special:Log/move", "Moved pages", "n-movedpages", "The list of recently moved pages.");
| + | |
- | addLink("p-mylinks", "/index.php/Special:Log/newusers", "New users", "n-newusers", "The list of new users.");
| + | |
- | addLink("p-mylinks", "/index.php/Special:Renameuser", "Rename user", "n-renameuser", "Rename a user.");
| + | |
- | addLink("p-mylinks", "/index.php/Special:Userrights", "User rights", "n-userrights", "Modify a user's rights.");
| + | |
- | }
| + | |
- | | + | |
- | // Modify my talk link and add additional user page and talk links for GrapeNuts
| + | |
- | function modPersonalMenu() {
| + | |
- | var mytalk = document.getElementById('pt-mytalk');
| + | |
- | mytalk.firstChild.firstChild.data = 'Talk';
| + | |
- | mytalk.insertBefore(document.createTextNode("("), mytalk.firstChild);
| + | |
- | mytalk.appendChild(document.createTextNode("·"));
| + | |
- | var mycontribs = document.createElement('a');
| + | |
- | mycontribs.href = '/index.php/Special:Contributions/JoeyDay';
| + | |
- | mycontribs.appendChild(document.createTextNode('Edits'));
| + | |
- | mytalk.appendChild(mycontribs);
| + | |
- | mytalk.appendChild(document.createTextNode(")"));
| + | |
- | | + | |
- | addLink("p-personal", "/index.php/User talk:GrapeNuts", "Talk", "pt-gntalk", "GrapeNuts' talk page.", "", "pt-preferences");
| + | |
- | var gntalk = document.getElementById('pt-gntalk');
| + | |
- | gntalk.insertBefore(document.createTextNode("("), gntalk.firstChild);
| + | |
- | gntalk.appendChild(document.createTextNode("·"));
| + | |
- | var gncontribs = document.createElement('a');
| + | |
- | gncontribs.href = '/index.php/Special:Contributions/GrapeNuts';
| + | |
- | gncontribs.appendChild(document.createTextNode('Edits'));
| + | |
- | gntalk.appendChild(gncontribs);
| + | |
- | gntalk.appendChild(document.createTextNode(")"));
| + | |
- | | + | |
- | addLink("p-personal", "/index.php/User:GrapeNuts", "GrapeNuts", "pt-grapenuts", "GrapeNuts' user page.", "", "pt-gntalk");
| + | |
- | | + | |
- | var mycontris = document.getElementById('pt-mycontris');
| + | |
- | mycontris.parentNode.removeChild(mycontris);
| + | |
- | | + | |
- | var myprefs = document.getElementById('pt-preferences');
| + | |
- | myprefs.parentNode.removeChild(myprefs);
| + | |
- | addLink("p-personal", "/index.php/Special:Preferences", "Preferences", "pt-preferences", "My preferences", "", "pt-logout");
| + | |
- | }
| + | |
- | | + | |
- | // Add time to your monobook "personal menu" list at the very top of the page.
| + | |
- | // Created by [[User:Mathwiz2020]]
| + | |
- | //
| + | |
- | // Indicate where you would like the time to appear:
| + | |
- | // pt-userpage, pt-mytalk, pt-preferences,
| + | |
- | // pt-watchlist, pt-mycontris, pt-logout
| + | |
- | //
| + | |
- | gsTimeInsertBefore = ''; // leave blank to append after "logout"
| + | |
- | //
| + | |
- | function getTime() {
| + | |
- | var time = new Date();
| + | |
- | var hours = time.getUTCHours();
| + | |
- | if (hours < 10) { hours = "0" + hours; }
| + | |
- | var minutes = time.getUTCMinutes();
| + | |
- | if (minutes < 10) { minutes = "0" + minutes; }
| + | |
- | var currentTime = hours + ":" + minutes
| + | |
- | document.getElementById('pt-time').childNodes[0].childNodes[0].replaceData(0, 5, currentTime);
| + | |
- | doTime = window.setTimeout("getTime()", 1000);
| + | |
- | }
| + | |
- | | + | |
- | function makeTime() {
| + | |
- | var div = document.createElement( 'div' );
| + | |
- | div.id = 'pt-time';
| + | |
- | | + | |
- | var mySpan = document.createElement( 'span' );
| + | |
- | mySpan.appendChild( document.createTextNode( '00:00 UTC' ) );
| + | |
- | | + | |
- | div.appendChild( mySpan );
| + | |
- | | + | |
- | if ( ! gsTimeInsertBefore ) { // append to end (right) of list
| + | |
- | document.getElementById( 'globalWrapper' ).parentNode.appendChild( div );
| + | |
| } | | } |
- | else {
| + | if ( window.addEventListener ) window.addEventListener( "load" , addPurgeButton , false ); |
- | var before = document.getElementById( gsTimeInsertBefore );
| + | else if ( window.attachEvent ) window.attachEvent( "onload", addPurgeButton ); |
- | before.appendChild( li, before );
| + | |
- | }
| + | |
- | doTime = window.setTimeout("getTime()", 1000);
| + | |
- | }
| + | |
- | | + | |
- | // Add purge tab to action tabs
| + | |
- | function addPurge () {
| + | |
- | var x = document.getElementById('ca-history');
| + | |
- | if(!x) return;
| + | |
- | if(x.children) x = x.children[0].href;
| + | |
- | else x = x.childNodes[0].href;
| + | |
- | if (document.getElementById('ca-delete')) {
| + | |
- | addLink("p-cactions", x.replace(/=history/, "=purge"), 'purge', 'ca-purge', 'Purge the internal cache for this page', '', 'ca-delete');
| + | |
- | }
| + | |
- | else if (document.getElementById('ca-move')) {
| + | |
- | addLink("p-cactions", x.replace(/=history/, "=purge"), 'purge', 'ca-purge', 'Purge the internal cache for this page', '', 'ca-move');
| + | |
- | }
| + | |
- | else if (document.getElementById('ca-watch')) {
| + | |
- | addLink("p-cactions", x.replace(/=history/, "=purge"), 'purge', 'ca-purge', 'Purge the internal cache for this page', '', 'ca-watch');
| + | |
- | }
| + | |
- | else {
| + | |
- | addLink("p-cactions", x.replace(/=history/, "=purge"), 'purge', 'ca-purge', 'Purge the internal cache for this page', '', 'ca-unwatch');
| + | |
- | }
| + | |
- | }
| + | |
- | | + | |
- | // Adds bottom tabs
| + | |
- | function morelinks() {
| + | |
- | var tabs = document.getElementById('p-cactions').cloneNode(true);
| + | |
- | tabs.id = 'mytabs';
| + | |
- | var listitems = tabs.getElementsByTagName('LI');
| + | |
- | for (i=0;i<listitems.length;i++) {
| + | |
- | if(listitems[i].id) listitems[i].id = 'mytabs-' + listitems[i].id;
| + | |
- | }
| + | |
- | document.getElementById('column-content').appendChild(tabs);
| + | |
- | }
| + | |
- | | + | |
- | | + | |
- | // Enables adding links to the interface just about anywhere.
| + | |
- | //
| + | |
- | // * where is the id of the toolbar where the button should be added;
| + | |
- | // i.e. one of "p-cactions", "p-personal", "p-navigation", or "p-tb".
| + | |
- | //
| + | |
- | // * url is the URL which will be called when the button is clicked.
| + | |
- | // javascript: urls can be used to do more complex things.
| + | |
- | //
| + | |
- | // * name is what will appear as the name of the button.
| + | |
- | //
| + | |
- | // * id is the id of the button; it's best to define one.
| + | |
- | // Use a prefix to make sure its unique. Optional.
| + | |
- | //
| + | |
- | // * title is the tooltip title that gives a longer description
| + | |
- | // of the button; if you define a accesskey, mention it here. Optional.
| + | |
- | //
| + | |
- | // * key is the char you want for the accesskey. Optional.
| + | |
- | //
| + | |
- | // * after is the id of the button you want to follow this one. Optional.
| + | |
- | //
| + | |
- | function addLink (where, url, name, id, title, key, after) {
| + | |
- | 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);
| + | |
- | var tabs = document.getElementById(where).getElementsByTagName('ul')[0];
| + | |
- | if (after) {
| + | |
- | tabs.insertBefore(li,document.getElementById(after));
| + | |
- | }
| + | |
- | else {
| + | |
- | 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;
| + | |
- | }
| + | |
- | | + | |
- | //--- Execute all functions ---//
| + | |
- | function doEverything () {
| + | |
- | myLinksBox();
| + | |
- | modPersonalMenu();
| + | |
- | makeTime();
| + | |
- | addPurge();
| + | |
- | morelinks();
| + | |
- | }
| + | |
- | if (window.addEventListener) {
| + | |
- | window.addEventListener("load", doEverything, false);
| + | |
- | }
| + | |
- | else if (window.attachEvent) {
| + | |
- | window.attachEvent("onload", doEverything);
| + | |
- | }
| + | |