Mudanças entre as edições de "Widget:Conquistas"
Ir para navegação
Ir para pesquisar
m (fix) |
m |
||
| Linha 24: | Linha 24: | ||
<!-- | <!-- | ||
O | Painéis vazios. O Módulo:Conquistas (#invoke renderAll) emite os | ||
cards FORA do widget (Smarty não reparsa wikitext, então não dá pra | |||
passar como parâmetro). O JS abaixo move cada card pro painel certo | |||
a partir do data-tab. | |||
Uso na página da wiki: | |||
{{#widget:Conquistas}} | |||
{{#invoke:Conquistas|renderAll}} | |||
{{#widget:Conquistas | |||
--> | --> | ||
< | <div class="gla-conquistas-panel is-active" data-tab-content="geral"> | ||
<div class="gla-list"></div> | |||
</div> | |||
<div class="gla-conquistas-panel" data-tab-content="personagens"> | |||
<div class="gla-list"></div> | |||
</div> | |||
<div class="gla-conquistas-panel" data-tab-content="missao"> | |||
<div class="gla-list"></div> | |||
</div> | |||
<div class="gla-conquistas-panel" data-tab-content="bau"> | |||
<div class="gla-list"></div> | |||
</div> | |||
<div class="gla-conquistas-panel" data-tab-content="navegacao"> | |||
<div class="gla-list"></div> | |||
</div> | |||
<div class="gla-conquistas-panel" data-tab-content="pvp"> | |||
<div class="gla-list"></div> | |||
</div> | |||
<div class="gla-conquistas-panel" data-tab-content="pve"> | |||
<div class="gla-list"></div> | |||
</div> | |||
<div class="gla-conquistas-panel" data-tab-content="coliseu"> | |||
<div class="gla-list"></div> | |||
</div> | |||
<div class="gla-conquistas-panel" data-tab-content="poneglyph"> | |||
<div class="gla-list"></div> | |||
</div> | |||
<div class="gla-conquistas-panel" data-tab-content="indicacao"> | |||
<div class="gla-list"></div> | |||
</div> | |||
<div class="gla-conquistas-panel" data-tab-content="celular"> | |||
<div class="gla-list"></div> | |||
</div> | |||
<div class="gla-conquistas-panel" data-tab-content="bossrush"> | |||
<div class="gla-list"></div> | |||
</div> | |||
</div> | </div> | ||
| Linha 99: | Linha 131: | ||
.gla-conquistas-panel.is-active { | .gla-conquistas-panel.is-active { | ||
display: block; | display: block; | ||
} | |||
/* CONTAINER ORIGEM (cards do #invoke antes do JS realocar) | |||
Fica escondido pra evitar flash; depois o JS remove esse div. */ | |||
.gla-conquistas-source { | |||
display: none; | |||
} | } | ||
| Linha 201: | Linha 239: | ||
var tabs = root.querySelectorAll(".gla-conquistas-tab"); | var tabs = root.querySelectorAll(".gla-conquistas-tab"); | ||
var panels = root.querySelectorAll(".gla-conquistas-panel"); | var panels = root.querySelectorAll(".gla-conquistas-panel"); | ||
// Mapa data-tab-content -> .gla-list pra evitar querySelectorAll N vezes | |||
var validTabs = {}; | |||
panels.forEach(function (p) { | |||
var name = p.getAttribute("data-tab-content"); | |||
if (name) { | |||
validTabs[name] = p.querySelector(".gla-list"); | |||
} | |||
}); | |||
// Pega TODOS os cards .gla-item[data-tab] do documento (vêm do | |||
// {{#invoke:Conquistas|renderAll}} que fica fora do widget) e | |||
// move pra dentro do painel correspondente. | |||
document.querySelectorAll(".gla-item[data-tab]").forEach(function (card) { | |||
if (root.contains(card)) return; // já está dentro | |||
var tag = (card.getAttribute("data-tab") || "").toLowerCase(); | |||
var list = validTabs[tag] || validTabs["geral"]; | |||
if (list) list.appendChild(card); | |||
}); | |||
// Limpa o container origem agora vazio (deixado pelo invoke). | |||
document.querySelectorAll(".gla-conquistas-source").forEach(function (src) { | |||
if (src.parentNode) src.parentNode.removeChild(src); | |||
}); | |||
function abrirAba(nome) { | function abrirAba(nome) { | ||