Mudanças entre as edições de "Widget:Droflax"

De Wiki Gla
Ir para navegação Ir para pesquisar
Etiqueta: Reversão manual
Linha 13: Linha 13:
<script>
<script>
(function () {
(function () {
  let habilidades = [];
   const raw = document.getElementById('infoboxboss-data');
   const raw= document.getElementById('infoboxboss-data');
   if (!raw) return;
   console.log(raw);
 
        if (!raw) {
  const habilidades = [];
            console.error('Persona widget: no se encontró #persona-data');
            return;
        }


    for (let i = 1; i <= 10; i++) {
  for (let i = 1; i <= 10; i++) {
     const nome = raw.dataset[`hab${i}`];
     const nome = raw.dataset[`hab${i}`];
     const descricao = raw.dataset[`de${i}`];
     const descricao = raw.dataset[`de${i}`];
     const video = raw.dataset[`vid${i}`];
     const videoFile = raw.dataset[`vid${i}`];
 
     if (!nome || !videoFile) continue;
     if (!nome) continue;


     habilidades.push({
     habilidades.push({
        nome,
      nome,
        descricao: descricao || '',
      descricao,
        video: video || ''
      videoUrl: `https://wiki.gla.com.br/index.php/Special:FilePath/${videoFile}`,
      id: `video${i}`
     });
     });
}
  }


   const tabsContainer = document.getElementById('skill-tabs');
   const tabsContainer = document.getElementById('skill-tabs');
Linha 40: Linha 37:


   habilidades.forEach((hab, idx) => {
   habilidades.forEach((hab, idx) => {
    const id = `video${idx + 1}`;
    // Botón
     const btn = document.createElement('button');
     const btn = document.createElement('button');
     btn.className = 'infobox-skill-tab' + (idx === 0 ? ' active' : '');
     btn.className = 'infobox-skill-tab' + (idx === 0 ? ' active' : '');
     btn.dataset.video = id;
     btn.dataset.video = hab.id;
     btn.textContent = hab.nome;
     btn.textContent = hab.nome;
     tabsContainer.appendChild(btn);
     tabsContainer.appendChild(btn);


    // Video
     const videoWrapper = document.createElement('div');
     const container = document.createElement('div');
    videoWrapper.id = hab.id;
container.id = id;
    videoWrapper.className = 'skill-video';
container.className = 'skill-video';
    videoWrapper.style.display = idx === 0 ? 'block' : 'none';
container.style.display = idx === 0 ? '' : 'none';


// Usar o widget, renderizando como HTML MediaWiki:
    const video = document.createElement('video');
container.innerHTML = `{{#widget:infovideo|src=${hab.video}|class=infobox-skill-video}}`;
    video.className = 'infobox-skill-video';
videoContainer.appendChild(container);
    video.controls = true;
    video.preload = 'auto';


    const source = document.createElement('source');
    source.src = hab.videoUrl;
    source.type = 'video/mp4';
    video.appendChild(source);
    videoWrapper.appendChild(video);
    videoContainer.appendChild(videoWrapper);
   });
   });


   // Descripción inicial
   if (habilidades.length) {
  descText.innerHTML = `${habilidades[0].nome}: ${habilidades[0].descricao}`;
    descText.innerHTML = `${habilidades[0].nome}: ${habilidades[0].descricao}`;
  }


  // Lógica tabs
   const tabs = document.querySelectorAll('.infobox-skill-tab');
   const tabs = document.querySelectorAll('.infobox-skill-tab');
   const videos = document.querySelectorAll('.skill-video');
   const videos = document.querySelectorAll('.skill-video');
Linha 72: Linha 73:
       tabs.forEach(t => t.classList.remove('active'));
       tabs.forEach(t => t.classList.remove('active'));
       tab.classList.add('active');
       tab.classList.add('active');
      const vidId = tab.dataset.video;


       descText.innerHTML = `${habilidades[idx].nome}: ${habilidades[idx].descricao}`;
       descText.innerHTML = `${habilidades[idx].nome}: ${habilidades[idx].descricao}`;


       videos.forEach(v => {
       videos.forEach(v => {
         if (v.id === vidId) {
         v.style.display = (v.id === habilidades[idx].id) ? 'block' : 'none';
          v.style.display = '';
        const videoTag = v.querySelector('video');
           v.load();
        if (v.id === habilidades[idx].id) {
           v.play();
           videoTag.load();
           videoTag.play();
         } else {
         } else {
           v.pause();
           videoTag.pause();
          v.style.display = 'none';
         }
         }
       });
       });
Linha 89: Linha 89:
   });
   });


   document.getElementById('infoboxboss-data')?.remove();
   raw.remove();
})();
})();
</script>
</script>


<style>
<style>

Edição das 19h51min de 21 de maio de 2025

<script> (function () {

 const raw = document.getElementById('infoboxboss-data');
 if (!raw) return;
 const habilidades = [];
 for (let i = 1; i <= 10; i++) {
   const nome = raw.dataset[`hab${i}`];
   const descricao = raw.dataset[`de${i}`];
   const videoFile = raw.dataset[`vid${i}`];
   if (!nome || !videoFile) continue;
   habilidades.push({
     nome,
     descricao,
     videoUrl: `https://wiki.gla.com.br/index.php/Special:FilePath/${videoFile}`,
     id: `video${i}`
   });
 }
 const tabsContainer = document.getElementById('skill-tabs');
 const videoContainer = document.getElementById('skill-videos');
 const descText = document.getElementById('desc-text');
 habilidades.forEach((hab, idx) => {
   const btn = document.createElement('button');
   btn.className = 'infobox-skill-tab' + (idx === 0 ? ' active' : );
   btn.dataset.video = hab.id;
   btn.textContent = hab.nome;
   tabsContainer.appendChild(btn);
   const videoWrapper = document.createElement('div');
   videoWrapper.id = hab.id;
   videoWrapper.className = 'skill-video';
   videoWrapper.style.display = idx === 0 ? 'block' : 'none';
   const video = document.createElement('video');
   video.className = 'infobox-skill-video';
   video.controls = true;
   video.preload = 'auto';
   const source = document.createElement('source');
   source.src = hab.videoUrl;
   source.type = 'video/mp4';
   video.appendChild(source);
   videoWrapper.appendChild(video);
   videoContainer.appendChild(videoWrapper);
 });
 if (habilidades.length) {
   descText.innerHTML = `${habilidades[0].nome}: ${habilidades[0].descricao}`;
 }
 const tabs = document.querySelectorAll('.infobox-skill-tab');
 const videos = document.querySelectorAll('.skill-video');
 tabs.forEach((tab, idx) => {
   tab.addEventListener('click', () => {
     tabs.forEach(t => t.classList.remove('active'));
     tab.classList.add('active');
     descText.innerHTML = `${habilidades[idx].nome}: ${habilidades[idx].descricao}`;
     videos.forEach(v => {
       v.style.display = (v.id === habilidades[idx].id) ? 'block' : 'none';
       const videoTag = v.querySelector('video');
       if (v.id === habilidades[idx].id) {
         videoTag.load();
         videoTag.play();
       } else {
         videoTag.pause();
       }
     });
   });
 });
 raw.remove();

})(); </script>

<style> .skill-box {

 background: none;;
 color: #222;
 border-radius: 12px;
 box-shadow: none;
 width: 100%;
 max-width: 700px;
 box-sizing: border-box;
 padding: 24px 24px 20px 24px;
 display: flex;
 flex-direction: column;
 align-items: center;
 gap: 18px;
 backdrop-filter: blur(2px);
 margin: 0 auto 24px auto;

} </style>