MediaWiki:Common.js: Difference between revisions

From SCA Lochac
Jump to navigation Jump to search
No edit summary
No edit summary
Line 2: Line 2:


var ruleBooks = [
var ruleBooks = [
  {
    {
    namespace: "Armoured_Combat",
        namespace: "Armoured_Combat",
    label: "Armoured combat rules",
        label: "Armoured combat rules",
    webVersion:
        webVersion:
      "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Handbook",
            "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Handbook",
    pdfVersion:
        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",
            "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: [
        chapters: [
      [ "Classes of Participant and combat",
            ["Classes of Participant and combat",
          "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Classes_of_Participant_and_Combat"],
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Classes_of_Participant_and_Combat"],
      [ "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",
            ["Rules of the Lists",
        "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Rules_of_the_Lists"],
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Rules_of_the_Lists"],
      [ "Conventions of Combat",
            ["Conventions of Combat",
        "https://sca.org.nz/wiki/index.php?title=Armoured_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",
            ["Armour Requirements",
        "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Armour_Requirements"],
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Armour_Requirements"],
      [ "Melee Weapon Standards",
            ["Melee Weapon Standards",
        "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Melee_Weapon_Standards"],
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Melee_Weapon_Standards"],
      [ "Throwing Weapon Standards",
            ["Throwing Weapon Standards",
        "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Throwing_Weapon_Standards"],
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Throwing_Weapon_Standards"],
      [ "Missile Weapon Standards",
            ["Missile Weapon Standards",
        "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Missile_Weapon_Standards"],
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Missile_Weapon_Standards"],
      [ "Grievances and Sanctions",
            ["Grievances and Sanctions",
        "https://sca.org.nz/wiki/index.php?title=Armoured_Combat: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",
            ["Glossary",
        "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Glossary"],
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Glossary"],
      ["Change log",
            ["Change log",
        "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Change_Log"]
                "https://sca.org.nz/wiki/index.php?title=Armoured_Combat:Change_Log"]
    ]
        ]
  },
    },
  {
    {
    namespace: "Archery",
        namespace: "Archery",
    label: "Target Archery / Thrown Weapon Rules",
        label: "Target Archery / Thrown Weapon Rules",
    webVersion: "https://sca.org.nz/wiki/index.php?title=Archery:Handbook",
        webVersion: "https://sca.org.nz/wiki/index.php?title=Archery:Handbook",
    pdfVersion:
        pdfVersion:
      "https://sca.org.nz/wiki/index.php?title=Category:Target_Archery_Rulebook&action=pdfbook&titlePage=Archery:Titlepage",
            "https://sca.org.nz/wiki/index.php?title=Category:Target_Archery_Rulebook&action=pdfbook&titlePage=Archery:Titlepage",
    chapters: [
        chapters: [
      [ "Basic Rules",
            ["Basic Rules",
        "https://sca.org.nz/wiki/index.php?title=Archery:Basic_Rules"],
                "https://sca.org.nz/wiki/index.php?title=Archery:Basic_Rules"],
      [ "Equipment standards",
            ["Equipment standards",
        "https://sca.org.nz/wiki/index.php?title=Archery:Equipment_standards"],
                "https://sca.org.nz/wiki/index.php?title=Archery:Equipment_standards"],
      [ "Range safety",
            ["Range safety",
        "https://sca.org.nz/wiki/index.php?title=Archery:Range_safety"],
                "https://sca.org.nz/wiki/index.php?title=Archery:Range_safety"],
      [ "Officers",
            ["Officers",
        "https://sca.org.nz/wiki/index.php?title=Archery:Officers"],
                "https://sca.org.nz/wiki/index.php?title=Archery:Officers"],
      [ "Authorising as a Target Archery Marshal",
            ["Authorising as a Target Archery Marshal",
        "https://sca.org.nz/wiki/index.php?title=Archery:Authorising"]
                "https://sca.org.nz/wiki/index.php?title=Archery:Authorising"]
    ]
        ]
  }
    }
];
];


function showToolBox() {
function showToolBox() {
  var toolBox = document.getElementById("p-tb");
    var toolBox = document.getElementById("p-tb");
  toolBox.style.visibility = "visible";
    toolBox.style.visibility = "visible";
}
}


function buildSideMenu() {
function buildSideMenu() {
  currentNamespace = mw.config.get("wgCanonicalNamespace");
    currentNamespace = mw.config.get("wgCanonicalNamespace");
  var navigationMenu = document.getElementById("mw-panel");
    var navigationMenu = document.getElementById("mw-panel");


  for (var ruleBook in ruleBooks) {
    for (var ruleBook in ruleBooks) {
    var bookObj = ruleBooks[ruleBook];
        var bookObj = ruleBooks[ruleBook];


    var bookDiv = document.createElement("div");
        var bookDiv = document.createElement("div");
    bookDiv.setAttribute("class", "portal");
        bookDiv.setAttribute("class", "portal");
    navigationMenu.insertBefore(bookDiv, document.getElementById("p-tb"));
        navigationMenu.insertBefore(bookDiv, document.getElementById("p-tb"));


    var title = document.createElement("h3");
        var title = document.createElement("h3");
    //title.setAttribute("class", "portal");
        //title.setAttribute("class", "portal");
    //title.setAttribute("role", "navigation");
        //title.setAttribute("role", "navigation");
    if ("webVersion" in bookObj) {
        if ("webVersion" in bookObj) {
      var titleLink = document.createElement("a");
            var titleLink = document.createElement("a");
      titleLink.setAttribute("href", bookObj.webVersion);
            titleLink.setAttribute("href", bookObj.webVersion);
      titleLink.appendChild(document.createTextNode(bookObj.label));
            titleLink.appendChild(document.createTextNode(bookObj.label));
      title.appendChild(titleLink);
            title.appendChild(titleLink);
    } else {
        } else {
      title.appendChild(document.createTextNode(bookObj.label));
            title.appendChild(document.createTextNode(bookObj.label));
    }
        }
    bookDiv.appendChild(title);
        bookDiv.appendChild(title);
 
        var navBody = document.createElement("div");
        navBody.setAttribute("class", "body");
        bookDiv.appendChild(navBody);


    var navBody = document.createElement("div");
        var entries = document.createElement("ul");
    navBody.setAttribute("class", "body");
        navBody.appendChild(entries);
    bookDiv.appendChild(navBody);


    var entries = document.createElement("ul");
        if (
    navBody.appendChild(entries);
            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 (
        if ("pdfVersion" in bookObj) {
      bookObj.namespace === mw.config.get("wgCanonicalNamespace") &&
            var pdfLink = document.createElement("a");
      "chapters" in bookObj
            pdfLink.appendChild(document.createTextNode("PDF version"));
    ) {
            pdfLink.setAttribute("href", bookObj.pdfVersion);
      var chapterCount = bookObj.chapters.length;
            var h3 = document.createElement("h3");
      for (var i = 0; i < chapterCount; i++) {
            h3.appendChild(pdfLink);
        chapter = bookObj.chapters[i];
            bookDiv.appendChild(h3);
        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);
      }
     }
     }
}
function ModifyPage() {
    var isLoggedIn;


     if ("pdfVersion" in bookObj) {
     try {
      var pdfLink = document.createElement("a");
        isLoggedIn = mw.config.get("wgUserId");
      pdfLink.appendChild(document.createTextNode("PDF version"));
        if (isLoggedIn === null) {
      pdfLink.setAttribute("href", bookObj.pdfVersion);
            isLoggedIn = false;
      var h3 = document.createElement("h3");
        } else {
      h3.appendChild(pdfLink);
            isLoggedIn = true;
      bookDiv.appendChild(h3);
        }
    } catch (ReferenceError) {
        isLoggedIn = false;
     }
     }
  }
}


function CustomizeModificationsOfSidebar() {
    var isDraft;
  var isLoggedIn;
    var nameSpace = mw.config.get("wgCanonicalNamespace");


  try {
     if (nameSpace.toLowerCase.search("draft") === -1) {
     isLoggedIn = mw.config.get("wgUserId");
        isDraft = false;
    if (isLoggedIn === null) {
      isLoggedIn = false;
     } else {
     } else {
      isLoggedIn = true;
        isDraft = true;
     }
     }
  } catch (ReferenceError) {
    isLoggedIn = false;
  }


  if (isLoggedIn) {
    if (isLoggedIn) {
    showToolBox();
        showToolBox();
  }
    }
  buildSideMenu();
    buildSideMenu();
 
    if (isDraft) {
        document.title = "The king is a fink!"
    }
}
}


jQuery(CustomizeModificationsOfSidebar);
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);