Difference between revisions of "MediaWiki:Common.js"

From Wiki
Jump to navigation Jump to search
(Remove Flattr code)
m
Line 1: Line 1:
 
/* Any JavaScript here will be loaded for all users on every page load. */
 
/* Any JavaScript here will be loaded for all users on every page load. */
 +
 +
filterSelection("all")
 +
function filterSelection(c) {
 +
  var x, i;
 +
  x = document.getElementsByClassName("ManualsfilterLi");
 +
  if (c == "all") c = "";
 +
  // Add the "show" class (display:block) to the filtered elements, and remove the "show" class from the elements that are not selected
 +
  for (i = 0; i < x.length; i++) {
 +
    w3RemoveClass(x[i], "Manualsshow");
 +
    if (x[i].className.indexOf(c) > -1) w3AddClass(x[i], "Manualsshow");
 +
  }
 +
}
 +
 +
// Show filtered elements
 +
function w3AddClass(element, name) {
 +
  var i, arr1, arr2;
 +
  arr1 = element.className.split(" ");
 +
  arr2 = name.split(" ");
 +
  for (i = 0; i < arr2.length; i++) {
 +
    if (arr1.indexOf(arr2[i]) == -1) {
 +
      element.className += " " + arr2[i];
 +
    }
 +
  }
 +
}
 +
 +
// Hide elements that are not selected
 +
function w3RemoveClass(element, name) {
 +
  var i, arr1, arr2;
 +
  arr1 = element.className.split(" ");
 +
  arr2 = name.split(" ");
 +
  for (i = 0; i < arr2.length; i++) {
 +
    while (arr1.indexOf(arr2[i]) > -1) {
 +
      arr1.splice(arr1.indexOf(arr2[i]), 1);
 +
    }
 +
  }
 +
  element.className = arr1.join(" ");
 +
}
 +
 +
// Add active class to the current control button (highlight it)
 +
var btnContainer = document.getElementById("myBtnContainer");
 +
var btns = btnContainer.getElementsByClassName("Manualsbtn");
 +
for (var i = 0; i < btns.length; i++) {
 +
  btns[i].addEventListener("click", function() {
 +
    var current = document.getElementsByClassName("active");
 +
    current[0].className = current[0].className.replace(" active", "");
 +
    this.className += " active";
 +
  });
 +
}

Revision as of 10:42, 27 May 2020

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

filterSelection("all")
function filterSelection(c) {
  var x, i;
  x = document.getElementsByClassName("ManualsfilterLi");
  if (c == "all") c = "";
  // Add the "show" class (display:block) to the filtered elements, and remove the "show" class from the elements that are not selected
  for (i = 0; i < x.length; i++) {
    w3RemoveClass(x[i], "Manualsshow");
    if (x[i].className.indexOf(c) > -1) w3AddClass(x[i], "Manualsshow");
  }
}

// Show filtered elements
function w3AddClass(element, name) {
  var i, arr1, arr2;
  arr1 = element.className.split(" ");
  arr2 = name.split(" ");
  for (i = 0; i < arr2.length; i++) {
    if (arr1.indexOf(arr2[i]) == -1) {
      element.className += " " + arr2[i];
    }
  }
}

// Hide elements that are not selected
function w3RemoveClass(element, name) {
  var i, arr1, arr2;
  arr1 = element.className.split(" ");
  arr2 = name.split(" ");
  for (i = 0; i < arr2.length; i++) {
    while (arr1.indexOf(arr2[i]) > -1) {
      arr1.splice(arr1.indexOf(arr2[i]), 1);
    }
  }
  element.className = arr1.join(" ");
}

// Add active class to the current control button (highlight it)
var btnContainer = document.getElementById("myBtnContainer");
var btns = btnContainer.getElementsByClassName("Manualsbtn");
for (var i = 0; i < btns.length; i++) {
  btns[i].addEventListener("click", function() {
    var current = document.getElementsByClassName("active");
    current[0].className = current[0].className.replace(" active", "");
    this.className += " active";
  });
}