MediaWiki:Common.js: Difference between revisions

From SCA Lochac
Jump to navigation Jump to search
No edit summary
No edit summary
Line 16: Line 16:
       [
       [
         "Combat Authorisation Requirements",
         "Combat Authorisation Requirements",
         "https://sca.org.nz/wiki/index.php?title=Armoured_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"],
       ["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"],
       ["Conventions of Combat", "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Conventions_of_Combat"],
       [
       [
         "The Use of Weapons and Shields",
         "The Use of Weapons and Shields",
         "https://sca.org.nz/wiki/index.php?title=Armoured_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",
         "Target Areas and Acknowledgement of Blows",
         "https://sca.org.nz/wiki/index.php?title=Armoured_Combat: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"],
       ["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"],
       ["Melee Weapon Standards", "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Melee_Weapon_Standards"],
       [
       [
         "Throwing Weapon Standards",
         "Throwing Weapon Standards",
         "Armoured_Combat:https://sca.org.nz/wiki/index.php?title=Throwing Weapon Standards"
         "Armoured_Combat:https://sca.org.nz/wiki/index.php?title=Throwing_Weapon_Standards"
       ],
       ],
       ["Missile Weapon Standards", "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Missile 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"],
       ["Grievances and Sanctions", "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Grievances_and_Sanctions"],
       [
       [
         "Procedures for Changes to These Rules",
         "Procedures for Changes to These Rules",
         "https://sca.org.nz/wiki/index.php?title=Armoured_Combat: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"],
       ["Glossary", "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Glossary"],
Line 116: Line 116:
         chapter = bookObj.chapters[i];
         chapter = bookObj.chapters[i];
         var chapterLink = document.createElement("a");
         var chapterLink = document.createElement("a");
         chapterLink.appendChild(document.createTextNode(I + ". "+ chapter[0]));
         var chapterTitle = i + ". " + chapter[0];
        chapterLink.appendChild(document.createTextNode(chapterTitle));
         chapterLink.setAttribute("href", chapter[1]);
         chapterLink.setAttribute("href", chapter[1]);
         var li = document.createElement("li");
         var li = document.createElement("li");

Revision as of 06:20, 14 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",
         "Armoured_Combat:https://sca.org.nz/wiki/index.php?title=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 chapterTitle = i + ". " + 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 CustomizeModificationsOfSidebar() {
  var isLoggedIn;

  try {
    isLoggedIn = mw.config.get("wgUserId");
    if (isLoggedIn === null) {
      isLoggedIn = false;
    } else {
      isLoggedIn = true;
    }
  } catch (ReferenceError) {
    isLoggedIn = false;
  }

  if (isLoggedIn) {
    showToolBox();
  }
  buildSideMenu();
}

jQuery(CustomizeModificationsOfSidebar);