MediaWiki:Common.js: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 88: | Line 88: | ||
document.getElementById("mw-head-base").style.backgroundImage = "url(\"" + banner + "\")"; | document.getElementById("mw-head-base").style.backgroundImage = "url(\"" + banner + "\")"; | ||
document.getElementsByClassName("mw-wiki-logo")[0].style.backgroundImage = "url(\"" + logo + "\")"; | document.getElementsByClassName("mw-wiki-logo")[0].style.backgroundImage = "url(\"" + logo + "\")"; | ||
document.getElementsByClassName("mw-wiki-logo")[0].style. | document.getElementsByClassName("mw-wiki-logo")[0].style.background-repeat = "no-repeat"; | ||
} | } | ||
Revision as of 06:26, 29 August 2019
/* Any JavaScript here will be loaded for all users on every page load. */ var ruleBooks = [ { namespace: "Armoured_Combat", label: "Armoured combat rules", 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.getElementsByClassName("mw-wiki-logo")[0].style.backgroundImage = "url(\"" + logo + "\")"; document.getElementsByClassName("mw-wiki-logo")[0].style.background-repeat = "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);