MediaWiki:Common.js: Difference between revisions

From The Talos Principle Wiki
Custom hex strings
Custom hex strings based on spoiler setup
Line 21: Line 21:


/* Custom hex strings */
/* Custom hex strings */
document.addEventListener('DOMContentLoaded', function () {
var hss = document.getElementsByClassName("hex-string");
  var hexStringElements = document.getElementsByClassName('hex-string');
var i;
  for (var i = 0; i < hexStringElements.length; i++) {
    hexStringElements[i].addEventListener('click', toggleHexString);
  }
});
 
function toggleHexString(event) {
  var element = event.currentTarget;
  var hexString = element.dataset.hex;


   if (element.dataset.state === 'hex') {
for (i = 0; i < hss.length; i++) {
  hss[i].addEventListener("click", function() {
   if (this.dataset.state === 'hex') {
     // Switch to English
     // Switch to English
     element.querySelector('.hex-string-content').innerText = hexToString(hexString);
     this.querySelector('.hex-string-content').innerText = this.dataset.text;
     element.dataset.state = 'text';
     this.dataset.state = 'text';
   } else {
   } else {
     // Switch to Hex
     // Switch to Hex
     element.querySelector('.hex-string-content').innerText = hexString;
     this.querySelector('.hex-string-content').innerText = this.dataset.hex;
     element.dataset.state = 'hex';
     this.dataset.state = 'hex';
  }
}
 
function hexToString(hex) {
  var str = '';
  for (var i = 0; i < hex.length; i += 2) {
    str += String.fromCharCode(parseInt(hex.substr(i, 2), 16));
   }
   }
  return str;
}
}

Revision as of 10:57, 20 November 2023

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

/* Custom animated hints: */
  var coll = document.getElementsByClassName("custom-collapsible");
  var i;
  
  for (i = 0; i < coll.length; i++) {
    coll[i].addEventListener("click", function() {
      this.classList.toggle("active");
      var content = this.nextElementSibling;
      if (content.style.maxHeight){
        content.style.maxHeight = null;
        content.classList.remove("custom-collapsible-content-visible");
      } else {
        content.style.maxHeight = content.scrollHeight + "px";
        content.classList.add("custom-collapsible-content-visible");
      } 
    });
  }


/* Custom hex strings */
var hss = document.getElementsByClassName("hex-string");
var i;

for (i = 0; i < hss.length; i++) {
  hss[i].addEventListener("click", function() {
  if (this.dataset.state === 'hex') {
    // Switch to English
    this.querySelector('.hex-string-content').innerText = this.dataset.text;
    this.dataset.state = 'text';
  } else {
    // Switch to Hex
    this.querySelector('.hex-string-content').innerText = this.dataset.hex;
    this.dataset.state = 'hex';
  }
}