MediaWiki:Common.js
Note: After publishing, 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 / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */
var ruleBooks = [
{
namespace: "Armoured_Combat",
label: "Armoured Combat - Fighters' Handbook",
banner: "https://seneschal.lochac.sca.org/files/2017/12/warfield1.jpg",
logo: "https://sca.org.nz/wiki/images/f/f4/Fightershandbookcover-al.svg",
webVersion:
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Handbook",
pdfVersion:
"https://sca.org.nz/wiki/index.php?title=Armoured_combat:pdf",
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: "Armoured_Combat",
label: "Armoured Combat - Marshals' Handbook",
banner: "http://seneschal.sca.org.au/files/2017/12/warfield1.jpg",
logo: "https://sca.org.nz/wiki/images/f/f4/Fightershandbookcover-al.svg",
webVersion:
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Handbook",
pdfVersion:
"https://sca.org.nz/wiki/index.php?title=Armoured_combat:Marshals_pdf",
chapters: [
["Introduction",
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Introduction"],
["Structure of the Marshallate",
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Structure"],
["Authorisation of Marshals",
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Authorisation_Of_Marshals"],
["Inspecting Equipment",
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Inspecting_Equipment"],
["Marshalling Combat",
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Marshalling_Combat"],
["Combat Injury Procedures",
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Combat_Injury_Procedures"],
["Experimental Weapons and Materials Procedures",
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Experimental"],
["Chain of Command and Procedures for Reporting",
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Chain_Of_Command"],
["Sanctions and Appeals",
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Sanctions"],
["Changing These Rules",
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Changing_These_Rules"],
["Marshals' Handbook Change Log",
"https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Marshals_Handbook_Change_Log"],
]
},
{
namespace: "Archery",
logo: "https://sca.org.nz/wiki/images/0/05/ArcheryHandbookCover.svg",
banner: "https://sca.org.nz/wiki/images/2/21/St-Sebs-Ian-Piddington-3.jpg",
label: "Target Archery / Thrown Weapons",
webVersion: "https://sca.org.nz/wiki/index.php?title=Archery:Handbook",
pdfVersion:
"https://sca.org.nz/wiki/index.php?title=Archery:pdf",
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";
}
var defaultBanner = "https://sca.org.nz/wiki/images/f/f2/Lochac_marshal_banner.svg";
var defaultLogo = "https://sca.org.nz/wiki/images/8/8f/Lochaclarge_320x320.png";
function setBannerImage(nameSpace) {
var namespaceObj = ruleBooks.find(function (obj) { return 'namespace' in obj && obj.namespace === nameSpace });
var banner;
var logo;
if (namespaceObj === undefined) {
banner = defaultBanner;
logo = defaultLogo;
} else {
banner = namespaceObj.banner ? namespaceObj.banner : defaultBanner;
logo = namespaceObj.logo ? namespaceObj.logo : defaultLogo;
}
document.getElementById("mw-head-base").style.backgroundImage = "url(\"" + banner + "\")";
document.getElementById("mw-head-base").style.backgroundRepeat = "no-repeat";
document.getElementsByClassName("mw-wiki-logo")[0].style.backgroundImage = "url(\"" + logo + "\")";
// document.getElementsByClassName("mw-wiki-logo")[0].style.backgroundRepeat = "no-repeat";
}
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");
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 markAsDraft() {
var topDiv = document.getElementById("top");
var h1 = document.createElement("h1");
h1.style.fontsize = "xx-large";
h1.style.color = "red";
h1.appendChild(document.createTextNode("This page is a draft only"));
topDiv.appendChild(h1);
watermark = document.createElement("div");
document.getElementById("content").prepend(watermark)
watermark.append("Draft");
watermark.style.zIndex = 0;
watermark.style.position = "fixed";
watermark.style.display = "block";
watermark.style.color = "#eeeeee";
watermark.style.fontSize = "250px";
watermark.style.transform = "rotate(310deg)";
watermark.style.left = "40%";
watermark.style.fontWeight = "bolder";
document.title = "Draft " + document.title;
}
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");
try {
if (nameSpace.toLowerCase().search("draft") === -1) {
isDraft = false;
} else {
isDraft = true;
}
} catch (Exception) {
isDraft = false;
}
if (isLoggedIn) {
showToolBox();
}
buildSideMenu();
if (isDraft) {
markAsDraft();
}
setBannerImage(nameSpace);
}
jQuery(ModifyPage);