|
|
| (20 intermediate revisions by one other user not shown) |
| Line 1: |
Line 1: |
| /* Any JavaScript here will be loaded for all users on every page load. */
| |
|
| |
|
| var ruleBooks = [
| |
| {
| |
| namespace: "Armoured_Combat",
| |
| label: "Armoured Combat",
| |
| 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: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: "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 Weapon Rules",
| |
| 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);
| |