MediaWiki:Common.js: mudanças entre as edições

De otPokemon Wiki
Ir para navegação Ir para pesquisar
Sem resumo de edição
Sem resumo de edição
Linha 58: Linha 58:




document.getElementById("sortButton").addEventListener("click", function() {
mw.loader.using('jquery', function () {
         const container = document.getElementById("gymContainer");
    $(document).ready(function () {
         const boxes = Array.from(container.getElementsByClassName("square-box-gym"));
         // Adiciona um botão para ordenar
        var $sortButton = $('<div class="sort-button">Ordenar por Shiny Stone</div>');
         $('.square-div-gym').before($sortButton);


         boxes.sort((a, b) => {
         // Evento de clique no botão
             const textA = a.querySelector(".square-name-gym").textContent;
        $sortButton.on('click', function () {
             const textB = b.querySelector(".square-name-gym").textContent;
             var $container = $('.square-div-gym');
           
             var $boxes = $container.children('.square-box-gym');
            const numA = parseInt(textA.match(/\d+/)[0]);
            const numB = parseInt(textB.match(/\d+/)[0]);


             return numA - numB;
             // Ordenar os elementos com base no número de Shiny Stones
            $boxes.sort(function (a, b) {
                var numA = parseInt($(a).find('.square-name-gym').text().match(/\d+/)[0], 10);
                var numB = parseInt($(b).find('.square-name-gym').text().match(/\d+/)[0], 10);
                return numA - numB; // Ordem crescente
            });
 
            // Reorganizar no DOM
            $container.append($boxes);
         });
         });
        boxes.forEach(box => container.appendChild(box));
     });
     });
});

Edição das 15h36min de 14 de março de 2025

var coll1 = document.getElementsByClassName("collapsible-battle-pass");
var coll2 = document.getElementsByClassName("collapsible-pokemon");

function toggleContent(clickedButton, contentToToggle) {
  // Fechar todos os conteúdos
  var allContents = document.getElementsByClassName("content");
  for (var j = 0; j < allContents.length; j++) {
    allContents[j].style.maxHeight = null; // Fecha todas as divs
  }

  // Fechar todos os botões (remover a classe "active")
  var allButtons = document.getElementsByClassName("collapsible-battle-pass");
  for (var k = 0; k < allButtons.length; k++) {
    allButtons[k].classList.remove("active");
  }
  allButtons = document.getElementsByClassName("collapsible-pokemon");
  for (var k = 0; k < allButtons.length; k++) {
    allButtons[k].classList.remove("active");
  }

  // Agora, abrir o conteúdo da div clicada
  if (contentToToggle.style.maxHeight) {
    contentToToggle.style.maxHeight = null; // Fecha se estiver aberto
  } else {
    contentToToggle.style.maxHeight = contentToToggle.scrollHeight + "px"; // Abre
  }

  // Adicionar a classe active ao botão clicado
  clickedButton.classList.add("active");
}

// Adiciona eventos de clique aos botões
for (var i = 0; i < coll1.length; i++) {
  coll1[i].addEventListener("click", function() {
    var content = this.nextElementSibling; // Conteúdo relacionado à div de botão
    toggleContent(this, content);  // Chama a função para alternar
  });
}

for (var i = 0; i < coll2.length; i++) {
  coll2[i].addEventListener("click", function() {
    var content = this.nextElementSibling; // Conteúdo relacionado à div de botão
    toggleContent(this, content);  // Chama a função para alternar
  });
}

function toggleShinyList() {
    var shinyList = document.getElementById("shiny-list");
    if (shinyList.style.display === "none" || shinyList.style.display === "") {
        shinyList.style.display = "block";
    } else {
        shinyList.style.display = "flex";
    }
}





mw.loader.using('jquery', function () {
    $(document).ready(function () {
        // Adiciona um botão para ordenar
        var $sortButton = $('<div class="sort-button">Ordenar por Shiny Stone</div>');
        $('.square-div-gym').before($sortButton);

        // Evento de clique no botão
        $sortButton.on('click', function () {
            var $container = $('.square-div-gym');
            var $boxes = $container.children('.square-box-gym');

            // Ordenar os elementos com base no número de Shiny Stones
            $boxes.sort(function (a, b) {
                var numA = parseInt($(a).find('.square-name-gym').text().match(/\d+/)[0], 10);
                var numB = parseInt($(b).find('.square-name-gym').text().match(/\d+/)[0], 10);
                return numA - numB; // Ordem crescente
            });

            // Reorganizar no DOM
            $container.append($boxes);
        });
    });
});