MediaWiki:Cavendish.js
From Frack - Hackerspace Friesland
Jump to navigationJump to searchNote: After saving, 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: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Go to Menu → Settings (Opera → Preferences on a Mac) and then to Privacy & security → Clear browsing data → Cached images and files.
// ///////////////////////////////////////////// // Top of page menu // ///////////////////////////////////////////// // Restructure the tooltip menu var listContainer = $('<div id="user-menu">'); var userMenu = $('<ul>'); var userPageLink = $('#pt-userpage'); userPageLink.append(listContainer); userPageLink.find('a').append('<img src="/w/extensions/Vector/modules/images/open.png">'); listContainer.append(userMenu); // Move links into the new userMenu list $('#pt-mytalk').appendTo(userMenu); $('#pt-preferences').appendTo(userMenu); $('#pt-watchlist').appendTo(userMenu); $('#pt-mycontris').appendTo(userMenu); $('#pt-logout').appendTo(userMenu); // Clean up Cavendish menu tag rubbish $('#user-menu .top-nav-left').detach(); $('#user-menu .top-nav-mid').removeClass('top-nav-mid'); $('#user-menu .top-nav-right').detach(); // Open the menu when hovered, close after of being outside of it for 300ms var userMenuClosed = true; var userMenuCloseHandle = undefined; userPageLink.hover(function() { clearTimeout(userMenuCloseHandle); if (userMenuClosed) { userMenuClosed = false; $('#user-menu').slideDown(250); } }, function() { userMenuCloseHandle = setTimeout(function () { $('#user-menu').slideUp(250, function() { userMenuClosed = true; }); }, 300); }); // ///////////////////////////////////////////// // "New" Button // ///////////////////////////////////////////// var addPageMenu = { "Projecten": {"url": "Form:Project", "label": "Add Project"}, "Meetings": {"url":"Form:Meeting", "label": "Add Meeting"}, "Activiteiten": {"url": "Form:Activiteit", "label": "Add Event"}}; var pageName = $("#firstHeading").text(); if (addPageMenu[pageName]) { var createNewPage = addPageMenu[pageName]; $("#p-cactions > ul").append( "<li><a href='/wiki/" + createNewPage["url"] + "'>" + createNewPage["label"] +"</a></li>"); } // ///////////////////////////////////////////// // Folding page menu // ///////////////////////////////////////////// // Nodes to fold away in the menu below var foldAwayLinks = ['ca-talk', 'ca-history', 'ca-delete', 'ca-editschema', 'ca-move', 'ca-protect', 'ca-unprotect', 'ca-watch', 'ca-unwatch', 'ca-purge']; $("#p-cactions ul").append("<li id='pagemenu_fold'><img src='/w/extensions/Vector/modules/images/open.png'><ul></ul></li>"); var pageMenu = $('#pagemenu_fold ul'); for (index in foldAwayLinks) { $("#" + foldAwayLinks[index]).appendTo(pageMenu); }; // Hide the menu button if it has no nodes inside if (!pageMenu.children().length) { $("#pagemenu_fold").hide() } // Open the menu when hovered, close after of being outside of it for 300ms var pageMenuClosed = true; var pageMenuCloseHandle = undefined; $('#pagemenu_fold').hover(function() { clearTimeout(pageMenuCloseHandle); if (pageMenuClosed) { pageMenuClosed = false; pageMenu.slideDown(250); } }, function() { pageMenuCloseHandle = setTimeout(function () { pageMenu.slideUp(250, function() { pageMenuClosed = true; }); }, 300); }); // //////////////////////////////////////////// // Tracking open state for left hand menu // ///////////////////////////////////////////// var navigationHeaders = $('#nav > div > h3'); navigationHeaders.last().find('+ div').hide(); navigationHeaders.last().addClass('collapsed'); navigationHeaders.each(function() { $(this).attr('id', $(this).text()); toggleMenu(this); checkCookie(this); }); function checkCookie(id) { var cookieName = id.id; var c = readCookie(cookieName); if(c === 'show') { $(id).each(function() { $(this).find("+ div").slideDown('fast'); }); } } function toggleMenu(id) { $(id).click(function() { togglePlusMinus(this); $(this).find("+ div").slideToggle("fast"); $(this).toggleClass("collapsed"); }); } function togglePlusMinus(id) { $(id).each(function() { if($(this).find("+ div").is(':visible')) { eraseCookie(this.id); } else { createCookie(this.id, 'show', 365); } }); } // cookie functions http://www.quirksmode.org/js/cookies.html function createCookie(name, value, days) { if (days) { var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); var expires = "; expires=" + date.toGMTString(); } else { var expires = ""; } document.cookie = name + "=" + value + expires + "; path=/"; } function readCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for (var i=0; i < ca.length; i++) { var c = ca[i] while (c.charAt(0)==' ') { c = c.substring(1, c.length); } if (c.indexOf(nameEQ) == 0) { return c.substring(nameEQ.length, c.length); } } return null; } function eraseCookie(name) { createCookie(name, "", -1); }