MediaWiki:Common.js: Difference between revisions

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


     if (action == "add") {
     if (action == "add") {
       var node = document
       var node = Document.getElementById(target)
        .getElementById(target)
         .getElementsByTagName("div")[0]
         .getElementsByTagName("div")[0]
         .getElementsByTagName("ul")[0];
         .getElementsByTagName("ul")[0];


       var aNode = document.createElement("a");
       var aNode = Document.createElement("a");
       var liNode = document.createElement("li");
       var liNode = Document.createElement("li");


       aNode.appendChild(document.createTextNode(name));
       aNode.appendChild(Document.createTextNode(name));
       aNode.setAttribute("href", link);
       aNode.setAttribute("href", link);
       liNode.appendChild(aNode);
       liNode.appendChild(aNode);
Line 64: Line 63:


     if (action == "remove") {
     if (action == "remove") {
       var list = document
       var list = Document.getElementById(target)
        .getElementById(target)
         .getElementsByTagName("div")[0]
         .getElementsByTagName("div")[0]
         .getElementsByTagName("ul")[0];
         .getElementsByTagName("ul")[0];
Line 86: Line 84:
}
}
function showToolBox() {
function showToolBox() {
   var toolBox = document.getElementById("p-tb");
   var toolBox = Document.getElementById("p-tb");
   toolBox.style.visibility = "visible";
   toolBox.style.visibility = "visible";
}
}
Line 92: Line 90:
function buildSideMenu() {
function buildSideMenu() {
   currentNamespace = wgCanonicalNamespace;
   currentNamespace = wgCanonicalNamespace;
   var navigationMenu = document.getElementById("p-navigation");
   var navigationMenu = Document.getElementById("p-navigation");


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


     var title = document.createElement("h3");
     var title = Document.createElement("h3");
     title.appendChild(document.createTextNode(bookObj.title));
     title.appendChild(Document.createTextNode(bookObj.title));
     navigationMenu.appendChild(title);
     navigationMenu.appendChild(title);


     var entries = document.createElement("ul");
     var entries = Document.createElement("ul");
     navigationMenu.appendChild(entries);
     navigationMenu.appendChild(entries);


Line 107: Line 105:
     }
     }
     if ("pdfVersion" in bookObj) {
     if ("pdfVersion" in bookObj) {
       var pdfLink = document.createElement("a");
       var pdfLink = Document.createElement("a");
       pdfLink.appendChild(document.createTextNode("PDF version"));
       pdfLink.appendChild(Document.createTextNode("PDF version"));
       pdfLink.setAttribute("href", bookObj.pdfVersion);
       pdfLink.setAttribute("href", bookObj.pdfVersion);



Revision as of 04:19, 2 June 2019

/* Any JavaScript here will be loaded for all users on every page load. */

var ruleBooks = [
  {
    namespace: "Archery",
    label: "Target Archery / Thrown Weapon Rules",
    webVerson: "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 ModifySidebar(action, section, name, link) {
  try {
    switch (section) {
      case "languages":
        var target = "p-lang";
        break;
      case "toolbox":
        var target = "p-tb";
        break;
      case "navigation":
        var target = "p-navigation";
        break;
      default:
        var target = "p-" + section;
        break;
    }

    if (action == "add") {
      var node = Document.getElementById(target)
        .getElementsByTagName("div")[0]
        .getElementsByTagName("ul")[0];

      var aNode = Document.createElement("a");
      var liNode = Document.createElement("li");

      aNode.appendChild(Document.createTextNode(name));
      aNode.setAttribute("href", link);
      liNode.appendChild(aNode);
      liNode.className = "plainlinks";
      node.appendChild(liNode);
    }

    if (action == "remove") {
      var list = Document.getElementById(target)
        .getElementsByTagName("div")[0]
        .getElementsByTagName("ul")[0];

      var listelements = list.getElementsByTagName("li");

      for (var i = 0; i < listelements.length; i++) {
        if (
          listelements[i].getElementsByTagName("a")[0].innerHTML == name ||
          listelements[i].getElementsByTagName("a")[0].href == link
        ) {
          list.removeChild(listelements[i]);
        }
      }
    }
  } catch (e) {
    // let's just ignore what's happened
    return;
  }
}
function showToolBox() {
  var toolBox = Document.getElementById("p-tb");
  toolBox.style.visibility = "visible";
}

function buildSideMenu() {
  currentNamespace = wgCanonicalNamespace;
  var navigationMenu = Document.getElementById("p-navigation");

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

    var title = Document.createElement("h3");
    title.appendChild(Document.createTextNode(bookObj.title));
    navigationMenu.appendChild(title);

    var entries = Document.createElement("ul");
    navigationMenu.appendChild(entries);

    if ("webVersion" in bookObj) {
    }
    if ("pdfVersion" in bookObj) {
      var pdfLink = Document.createElement("a");
      pdfLink.appendChild(Document.createTextNode("PDF version"));
      pdfLink.setAttribute("href", bookObj.pdfVersion);

      navigationMenu.appendChild(
        docment.createElement("ul").appendChild(pdfLink)
      );
    }
  }
}

function CustomizeModificationsOfSidebar() {
  var isLoggedIn;

  try {
    isLoggedIn = wgUserId;
    isLoggedIn = true;
  } catch (ReferenceError) {
    isLoggedIn = false;
  }

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

jQuery(CustomizeModificationsOfSidebar);