MediaWiki:Common.js: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 92: | Line 92: | ||
function buildSideMenu() { | function buildSideMenu() { | ||
currentNamespace = wgCanonicalNamespace; | currentNamespace = wgCanonicalNamespace; | ||
var navigationMenu = document.getElementById(" | var navigationMenu = document.getElementById("mw-panel"); | ||
for (var ruleBook in ruleBooks) { | for (var ruleBook in ruleBooks) { | ||
var bookObj = ruleBooks[ruleBook]; | var bookObj = ruleBooks[ruleBook]; | ||
var bookDiv = document.createElement("div"); | |||
navigationMenu.appendChild(bookDiv); | |||
var title = document.createElement("h3"); | var title = document.createElement("h3"); | ||
Line 101: | Line 104: | ||
title.setAttribute("role", "navigation"); | title.setAttribute("role", "navigation"); | ||
title.appendChild(document.createTextNode(bookObj.label)); | title.appendChild(document.createTextNode(bookObj.label)); | ||
bookDiv.appendChild(title); | |||
var navBody = document.createElement("div"); | var navBody = document.createElement("div"); | ||
navBody.setAttribute("class", "body"); | navBody.setAttribute("class", "body"); | ||
bookDiv.appendChild(navBody); | |||
var entries = document.createElement("ul"); | var entries = document.createElement("ul"); | ||
navBody.appendChild(entries); | navBody.appendChild(entries); | ||
if ("pdfVersion" in bookObj) { | if ("pdfVersion" in bookObj) { | ||
var pdfLink = document.createElement("a"); | var pdfLink = document.createElement("a"); | ||
Line 123: | Line 124: | ||
} | } | ||
} | } | ||
<div | |||
class="portal" | |||
role="navigation" | |||
id="p-Target_Archery_.2F_Thrown_Weapon_Rules" | |||
aria-labelledby="p-Target_Archery_.2F_Thrown_Weapon_Rules-label" | |||
> | |||
<h3 id="p-Target_Archery_.2F_Thrown_Weapon_Rules-label"> | |||
Target Archery / Thrown Weapon Rules | |||
</h3> | |||
<div class="body"> | |||
<ul> | |||
<li id="n-Web-version"> | |||
<a href="/wiki/index.php?title=Archery:Handbook">Web version</a> | |||
</li> | |||
<li id="n-PDF-version"> | |||
<a | |||
href="https://sca.org.nz/wiki/index.php?title=Category:Target_Archery_Rulebook&action=pdfbook&titlePage=Archery:Titlepage" | |||
rel="nofollow" | |||
> | |||
PDF version | |||
</a> | |||
</li> | |||
</ul> | |||
</div> | |||
</div>; | |||
function CustomizeModificationsOfSidebar() { | function CustomizeModificationsOfSidebar() { |
Revision as of 04:52, 2 June 2019
/* Any JavaScript here will be loaded for all users on every page load. */ var ruleBooks = [ { namespace: "Archery", label: "Target Archery / Thrown Weapon Rules", webVerson: "https://sca.org.nz/wiki/index.php?title=Archery:Handbook", pdfVersion: "https://sca.org.nz/wiki/index.php?title=Category:Target_Archery_Rulebook&action=pdfbook&titlePage=Archery:Titlepage", chapters: [ [ "Basic Rules", "https://sca.org.nz/wiki/index.php?title=Archery:Basic_Rules" ], [ "Equipment standards", "https://sca.org.nz/wiki/index.php?title=Archery:Equipment_standards" ], [ "Range safety", "https://sca.org.nz/wiki/index.php?title=Archery:Range_safety" ], ["Officers", "https://sca.org.nz/wiki/index.php?title=Archery:Officers"], [ "Authorising as a Target Archery Marshal", "https://sca.org.nz/wiki/index.php?title=Archery:Authorising" ] ] } ]; function ModifySidebar(action, section, name, link) { try { switch (section) { case "languages": var target = "p-lang"; break; case "toolbox": var target = "p-tb"; break; case "navigation": var target = "p-navigation"; break; default: var target = "p-" + section; break; } if (action == "add") { var node = document .getElementById(target) .getElementsByTagName("div")[0] .getElementsByTagName("ul")[0]; var aNode = document.createElement("a"); var liNode = document.createElement("li"); aNode.appendChild(document.createTextNode(name)); aNode.setAttribute("href", link); liNode.appendChild(aNode); liNode.className = "plainlinks"; node.appendChild(liNode); } if (action == "remove") { var list = document .getElementById(target) .getElementsByTagName("div")[0] .getElementsByTagName("ul")[0]; var listelements = list.getElementsByTagName("li"); for (var i = 0; i < listelements.length; i++) { if ( listelements[i].getElementsByTagName("a")[0].innerHTML == name || listelements[i].getElementsByTagName("a")[0].href == link ) { list.removeChild(listelements[i]); } } } } catch (e) { // let's just ignore what's happened return; } } function showToolBox() { var toolBox = document.getElementById("p-tb"); toolBox.style.visibility = "visible"; } function buildSideMenu() { currentNamespace = wgCanonicalNamespace; var navigationMenu = document.getElementById("mw-panel"); for (var ruleBook in ruleBooks) { var bookObj = ruleBooks[ruleBook]; var bookDiv = document.createElement("div"); navigationMenu.appendChild(bookDiv); var title = document.createElement("h3"); title.setAttribute("class", "portal"); title.setAttribute("role", "navigation"); title.appendChild(document.createTextNode(bookObj.label)); bookDiv.appendChild(title); var navBody = document.createElement("div"); navBody.setAttribute("class", "body"); bookDiv.appendChild(navBody); var entries = document.createElement("ul"); navBody.appendChild(entries); if ("pdfVersion" in bookObj) { var pdfLink = document.createElement("a"); pdfLink.appendChild(document.createTextNode("PDF version")); pdfLink.setAttribute("href", bookObj.pdfVersion); var li = document.createElement("li"); li.appendChild(pdfLink); entries.appendChild(li); } } } <div class="portal" role="navigation" id="p-Target_Archery_.2F_Thrown_Weapon_Rules" aria-labelledby="p-Target_Archery_.2F_Thrown_Weapon_Rules-label" > <h3 id="p-Target_Archery_.2F_Thrown_Weapon_Rules-label"> Target Archery / Thrown Weapon Rules </h3> <div class="body"> <ul> <li id="n-Web-version"> <a href="/wiki/index.php?title=Archery:Handbook">Web version</a> </li> <li id="n-PDF-version"> <a href="https://sca.org.nz/wiki/index.php?title=Category:Target_Archery_Rulebook&action=pdfbook&titlePage=Archery:Titlepage" rel="nofollow" > PDF version </a> </li> </ul> </div> </div>; function CustomizeModificationsOfSidebar() { var isLoggedIn; try { isLoggedIn = wgUserId; isLoggedIn = true; } catch (ReferenceError) { isLoggedIn = false; } if (isLoggedIn) { showToolBox(); } buildSideMenu(); } jQuery(CustomizeModificationsOfSidebar);