MediaWiki:Common.js: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 2: | Line 2: | ||
var ruleBooks = [ | var ruleBooks = [ | ||
{ | |||
namespace: "Armoured_Combat", | |||
label: "Armoured combat rules", | |||
webVersion: | |||
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Handbook", | |||
pdfVersion: | |||
"https://sca.org.nz/wiki/index.php?title=Category:Fighters_Handbook&action=pandocpdfbook&titlePage=Armoured_Combat:Fighters_Handbook_Titlepage&template=Armoured_Combat:Fighters_Handbook_Template", | |||
chapters: [ | |||
["Classes of Participant and combat", | |||
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Classes_of_Participant_and_Combat"], | |||
["Combat Authorisation Requirements", | |||
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Combat_Authorisation_Requirements"], | |||
["Rules of the Lists", | |||
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Rules_of_the_Lists"], | |||
["Conventions of Combat", | |||
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Conventions_of_Combat"], | |||
["The Use of Weapons and Shields", | |||
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:The_Use_of_Weapons_and_Shields"], | |||
["Target Areas and Acknowledgement of Blows", | |||
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Target_Areas_and_Acknowledgement_of_Blows"], | |||
["Armour Requirements", | |||
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Armour_Requirements"], | |||
["Melee Weapon Standards", | |||
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Melee_Weapon_Standards"], | |||
["Throwing Weapon Standards", | |||
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Throwing_Weapon_Standards"], | |||
["Missile Weapon Standards", | |||
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Missile_Weapon_Standards"], | |||
["Grievances and Sanctions", | |||
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Grievances_and_Sanctions"], | |||
["Procedures for Changes to These Rules", | |||
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Procedures_for_Changes_to_These_Rules"], | |||
["Glossary", | |||
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Glossary"], | |||
["Change log", | |||
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Change_Log"] | |||
] | |||
}, | |||
{ | |||
namespace: "Archery", | |||
label: "Target Archery / Thrown Weapon Rules", | |||
webVersion: "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 showToolBox() { | function showToolBox() { | ||
var toolBox = document.getElementById("p-tb"); | |||
toolBox.style.visibility = "visible"; | |||
} | } | ||
function buildSideMenu() { | function buildSideMenu() { | ||
currentNamespace = mw.config.get("wgCanonicalNamespace"); | |||
var navigationMenu = document.getElementById("mw-panel"); | |||
for (var ruleBook in ruleBooks) { | |||
var bookObj = ruleBooks[ruleBook]; | |||
var bookDiv = document.createElement("div"); | |||
bookDiv.setAttribute("class", "portal"); | |||
navigationMenu.insertBefore(bookDiv, document.getElementById("p-tb")); | |||
var title = document.createElement("h3"); | |||
//title.setAttribute("class", "portal"); | |||
//title.setAttribute("role", "navigation"); | |||
if ("webVersion" in bookObj) { | |||
var titleLink = document.createElement("a"); | |||
titleLink.setAttribute("href", bookObj.webVersion); | |||
titleLink.appendChild(document.createTextNode(bookObj.label)); | |||
title.appendChild(titleLink); | |||
} else { | |||
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 ( | |||
bookObj.namespace === mw.config.get("wgCanonicalNamespace") && | |||
"chapters" in bookObj | |||
) { | |||
var chapterCount = bookObj.chapters.length; | |||
for (var i = 0; i < chapterCount; i++) { | |||
chapter = bookObj.chapters[i]; | |||
var chapterLink = document.createElement("a"); | |||
var chapterNumber = i + 1; | |||
var chapterTitle = chapterNumber + ". " + chapter[0]; | |||
chapterLink.appendChild(document.createTextNode(chapterTitle)); | |||
chapterLink.setAttribute("href", chapter[1]); | |||
var li = document.createElement("li"); | |||
li.appendChild(chapterLink); | |||
entries.appendChild(li); | |||
} | |||
} | |||
if ("pdfVersion" in bookObj) { | |||
var pdfLink = document.createElement("a"); | |||
pdfLink.appendChild(document.createTextNode("PDF version")); | |||
pdfLink.setAttribute("href", bookObj.pdfVersion); | |||
var h3 = document.createElement("h3"); | |||
h3.appendChild(pdfLink); | |||
bookDiv.appendChild(h3); | |||
} | |||
} | } | ||
} | |||
function ModifyPage() { | |||
var isLoggedIn; | |||
try { | |||
isLoggedIn = mw.config.get("wgUserId"); | |||
if (isLoggedIn === null) { | |||
isLoggedIn = false; | |||
} else { | |||
isLoggedIn = true; | |||
} | |||
} catch (ReferenceError) { | |||
isLoggedIn = false; | |||
} | } | ||
var isDraft; | |||
var nameSpace = mw.config.get("wgCanonicalNamespace"); | |||
if (nameSpace.toLowerCase.search("draft") === -1) { | |||
isDraft = false; | |||
} else { | } else { | ||
isDraft = true; | |||
} | } | ||
if (isLoggedIn) { | |||
showToolBox(); | |||
} | |||
buildSideMenu(); | |||
if (isDraft) { | |||
document.title = "The king is a fink!" | |||
} | |||
} | } | ||
jQuery( | jQuery(ModifyPage); | ||
Revision as of 08:37, 23 July 2019
/* Any JavaScript here will be loaded for all users on every page load. */
var ruleBooks = [
{
namespace: "Armoured_Combat",
label: "Armoured combat rules",
webVersion:
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Handbook",
pdfVersion:
"https://sca.org.nz/wiki/index.php?title=Category:Fighters_Handbook&action=pandocpdfbook&titlePage=Armoured_Combat:Fighters_Handbook_Titlepage&template=Armoured_Combat:Fighters_Handbook_Template",
chapters: [
["Classes of Participant and combat",
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Classes_of_Participant_and_Combat"],
["Combat Authorisation Requirements",
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Combat_Authorisation_Requirements"],
["Rules of the Lists",
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Rules_of_the_Lists"],
["Conventions of Combat",
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Conventions_of_Combat"],
["The Use of Weapons and Shields",
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:The_Use_of_Weapons_and_Shields"],
["Target Areas and Acknowledgement of Blows",
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Target_Areas_and_Acknowledgement_of_Blows"],
["Armour Requirements",
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Armour_Requirements"],
["Melee Weapon Standards",
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Melee_Weapon_Standards"],
["Throwing Weapon Standards",
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Throwing_Weapon_Standards"],
["Missile Weapon Standards",
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Missile_Weapon_Standards"],
["Grievances and Sanctions",
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Grievances_and_Sanctions"],
["Procedures for Changes to These Rules",
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Procedures_for_Changes_to_These_Rules"],
["Glossary",
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Glossary"],
["Change log",
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Change_Log"]
]
},
{
namespace: "Archery",
label: "Target Archery / Thrown Weapon Rules",
webVersion: "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 showToolBox() {
var toolBox = document.getElementById("p-tb");
toolBox.style.visibility = "visible";
}
function buildSideMenu() {
currentNamespace = mw.config.get("wgCanonicalNamespace");
var navigationMenu = document.getElementById("mw-panel");
for (var ruleBook in ruleBooks) {
var bookObj = ruleBooks[ruleBook];
var bookDiv = document.createElement("div");
bookDiv.setAttribute("class", "portal");
navigationMenu.insertBefore(bookDiv, document.getElementById("p-tb"));
var title = document.createElement("h3");
//title.setAttribute("class", "portal");
//title.setAttribute("role", "navigation");
if ("webVersion" in bookObj) {
var titleLink = document.createElement("a");
titleLink.setAttribute("href", bookObj.webVersion);
titleLink.appendChild(document.createTextNode(bookObj.label));
title.appendChild(titleLink);
} else {
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 (
bookObj.namespace === mw.config.get("wgCanonicalNamespace") &&
"chapters" in bookObj
) {
var chapterCount = bookObj.chapters.length;
for (var i = 0; i < chapterCount; i++) {
chapter = bookObj.chapters[i];
var chapterLink = document.createElement("a");
var chapterNumber = i + 1;
var chapterTitle = chapterNumber + ". " + chapter[0];
chapterLink.appendChild(document.createTextNode(chapterTitle));
chapterLink.setAttribute("href", chapter[1]);
var li = document.createElement("li");
li.appendChild(chapterLink);
entries.appendChild(li);
}
}
if ("pdfVersion" in bookObj) {
var pdfLink = document.createElement("a");
pdfLink.appendChild(document.createTextNode("PDF version"));
pdfLink.setAttribute("href", bookObj.pdfVersion);
var h3 = document.createElement("h3");
h3.appendChild(pdfLink);
bookDiv.appendChild(h3);
}
}
}
function ModifyPage() {
var isLoggedIn;
try {
isLoggedIn = mw.config.get("wgUserId");
if (isLoggedIn === null) {
isLoggedIn = false;
} else {
isLoggedIn = true;
}
} catch (ReferenceError) {
isLoggedIn = false;
}
var isDraft;
var nameSpace = mw.config.get("wgCanonicalNamespace");
if (nameSpace.toLowerCase.search("draft") === -1) {
isDraft = false;
} else {
isDraft = true;
}
if (isLoggedIn) {
showToolBox();
}
buildSideMenu();
if (isDraft) {
document.title = "The king is a fink!"
}
}
jQuery(ModifyPage);