Diferenças entre edições de "MediaWiki:Common.js"

Linha 1: Linha 1:
/* Código Javascript colocado aqui será carregado para todos os utilizadores em cada carregamento de página /
+
/* Código Javascript colocado aqui será carregado para todos os utilizadores em cada carregamento de página */
  
$('link[rel="shortcut icon"]').attr('href', 'https://gf1.geo.gfsrv.net/cdn98/191b803adbf82f4b8febe3a2c38c2c.ico');
+
/* Favicon */
 
 
/* Favicon (fallback para o caso de o jQuery não apanhar) */
 
 
function fixInsecureFavicon() {
 
function fixInsecureFavicon() {
   var link = document.querySelector('link[rel="shortcut icon"]');
+
   document.querySelector('link[rel="shortcut icon"]').href =
  if (link) {
+
    "https://gf1.geo.gfsrv.net/cdn98/191b803adbf82f4b8febe3a2c38c2c.ico";
    link.href = "https://gf1.geo.gfsrv.net/cdn98/191b803adbf82f4b8febe3a2c38c2c.ico";
 
  }
 
 
}
 
}
  
/ Helpers para mostrar/esconder elementos */
+
/* Tabber helpers */
 
function showElement(element) {
 
function showElement(element) {
 
   element.classList.remove("tabber-noactive");
 
   element.classList.remove("tabber-noactive");
Linha 22: Linha 18:
 
function toggleElement(element) {
 
function toggleElement(element) {
 
   element.classList.toggle("tabber-noactive");
 
   element.classList.toggle("tabber-noactive");
 +
}
 +
 +
/* Liste des équipements */
 +
function changeEquipementDisplay(container) {
 +
  var switchButton = container.querySelector(".button");
 +
  var content = container.nextElementSibling;
 +
 +
  switchButton.addEventListener("click", function () {
 +
    switchButton.classList.toggle("tabber-active");
 +
    toggleElement(content);
 +
  });
 
}
 
}
  
Linha 234: Linha 241:
 
   cookies();
 
   cookies();
 
})();
 
})();
 +
JS.txt
 +
8 KB

Revisão das 12h50min de 15 de novembro de 2025

/* Código Javascript colocado aqui será carregado para todos os utilizadores em cada carregamento de página */

/* Favicon */
function fixInsecureFavicon() {
  document.querySelector('link[rel="shortcut icon"]').href =
    "https://gf1.geo.gfsrv.net/cdn98/191b803adbf82f4b8febe3a2c38c2c.ico";
}

/* Tabber helpers */
function showElement(element) {
  element.classList.remove("tabber-noactive");
}

function hideElement(element) {
  element.classList.add("tabber-noactive");
}

function toggleElement(element) {
  element.classList.toggle("tabber-noactive");
}

/* Liste des équipements */
function changeEquipementDisplay(container) {
  var switchButton = container.querySelector(".button");
  var content = container.nextElementSibling;

  switchButton.addEventListener("click", function () {
    switchButton.classList.toggle("tabber-active");
    toggleElement(content);
  });
}

/* Slideshow con pulsanti avanti e indietro in javascript */
(function() {

    function Slideshow( element ) {
        this.el = document.querySelector( element );
        this.init();
    }

    Slideshow.prototype = {
        init: function() {
            this.wrapper = this.el.querySelector( ".slider-wrapper_wiki" );
            this.slides = this.el.querySelectorAll( ".slide_wiki" );
            this.previous = this.el.querySelector( ".slider-previous" );
            this.next = this.el.querySelector( ".slider-next" );
            this.index = 0;
            this.total = this.slides.length;

            this.actions();
        },
        _slideTo: function( slide ) {
            var currentSlide = this.slides[slide];
            currentSlide.style.display="block";

            for( var i = 0; i < this.slides.length; i++ ) {
                var slide = this.slides[i];
                if( slide !== currentSlide ) {
                    slide.style.display="none";
                }
            }
        },
        actions: function() {
            var self = this;
            self.next.addEventListener( "click", function() {
                self.index++;
                self.previous.style.display = "block";

                if( self.index == self.total - 1 ) {
                    self.index = self.total - 1;
                    self.next.style.display = "none";
                }
                if (self.index > self.total) {self.index = self.total}
                if (self.index < 1) {self.index = 1}
                self._slideTo( self.index );

            }, false);

            self.previous.addEventListener( "click", function() {
                self.index--;
                self.next.style.display = "block";

                if( self.index == 0 ) {
                    self.index = 0;
                    self.previous.style.display = "none";
                }

                self._slideTo( self.index );

            }, false);
        }

    };
    document.addEventListener( "DOMContentLoaded", function() {

        var slider = new Slideshow( "#main-slider" );
    });
})();

/* Avvio Finestre modal */

$(".trigger").on("click", function() {
    var modal = $(this).data("modal");
    $(modal).toggle();
});

$(".modal").on("click", function(e) {
    var className = e.target.className;
    if(className === "modal" || className === "close-button"){
        $(this).closest(".modal").toggle();
    }
});

/* Cookie GF */
(function () {
    var req = new XMLHttpRequest();
    req.addEventListener('load', function (ev) {
        if (this.status >= 200 && this.status < 300) {
            var data = JSON.parse(this.responseText);
            if (data.hasOwnProperty('version')) {
                var gdpr = document.createElement("script");
                gdpr.src = "https://s3-static.geo.gfsrv.net/cookiebanner/" + data.version + "/cookie.min.js";
                document.head.appendChild(gdpr);
            }
        }
    });
    req.open('GET', "https://s3-static.geo.gfsrv.net/cookiebanner/version.json");
    req.send();
})();

function changeEquipementDisplay(container) {
  var switchButton = container.querySelector(".button");
  var content = container.nextElementSibling;

  switchButton.addEventListener("click", function () {
    switchButton.classList.toggle("tabber-active");
    toggleElement(content);
  });
}
function buttonTop() {
  var balise = document.querySelector("div#mw-page-header-links");
  var topButton = document.querySelector(".top-button");

  if (balise !== null) {
    var options = {
      root: null,
      rootMargin: "0px",
      threshold: 0,
    };

    var observer = new IntersectionObserver(callback, options);
    observer.observe(balise);

    function callback(entries) {
      entries.forEach(function (entry) {
        if (entry.isIntersecting) {
          topButton.classList.remove("show-button");
        } else {
          topButton.classList.add("show-button");
        }
      });
    }

    topButton.addEventListener("click", function () {
      document.documentElement.scrollTo({
        top: 0,
      });
    });
  }
}
(function () {
  fixInsecureFavicon();

  var urlStart = "/index.php?title=MediaWiki:Script/";
  var urlEnd = ".js&action=raw&ctype=text/javascript";
  var loadScripts = document.querySelectorAll("div[data-load-javascript]");

  var equipmentContainer = document.querySelectorAll(
    "div#mw-content-text .list-equip"
  );

  equipmentContainer.forEach(function (container) {
    changeEquipementDisplay(container);
  });

  /* Charge des scripts spécifiques au chargement de certaines pages */
  if (loadScripts.length) {
    var allowedScripts = {
      Tabber: true,
      Skills: true,
      Modal: true,
      Switch: true,
      Loot: true,
      Map: true,
      Filter: true,
      Calculator: true,
      Element: true,
      Pets: true,
      Colorblind: true,
    };
    var scriptsToLoad = [];

    loadScripts.forEach(function (scriptElement) {
      var scriptName = scriptElement.dataset.loadJavascript;

      if (allowedScripts[scriptName]) {
        allowedScripts[scriptName] = false;
        scriptsToLoad.push(scriptName);
      }
    });

    if (scriptsToLoad.length) {
      var firstScriptName = scriptsToLoad[0];

      if (firstScriptName === "Element") {
        scriptsToLoad.shift()
        $.getScript(urlStart + firstScriptName + urlEnd, function () {
          injectCustomElements();
          loadNextScripts();
        });
      } else {
        loadNextScripts();
      }
    }

    function loadNextScripts() {
      scriptsToLoad.forEach(function (scriptName) {
        mw.loader.load(urlStart + scriptName + urlEnd);
      });

      removeLoadingAnimation();
    }
  }

  if (mw.config.get("wgUserName")) {
    mw.loader.load(urlStart + "Redactor" + urlEnd);
  }

  addButtonTop();
  buttonTop();
  cookies();
})();
JS.txt
8 KB