MediaWiki:Common.js: Difference between revisions
Appearance
No edit summary |
No edit summary |
||
| Line 2: | Line 2: | ||
mw. | mw.loader.using(['mediawiki.util', 'jquery'], function () { | ||
// | // Função principal que injeta a lógica do dropdown | ||
function setupAtlasDropdown() { | |||
// Encontra o menu lateral do Vector 2022 | |||
var $sidebar = $('.vector-main-menu, #mw-panel, .mw-table-of-contents-container'); | |||
if (!$sidebar.length) return; | |||
// | // 1. Esconde as subpáginas aplicando a classe CSS | ||
$sidebar.find('a[href*="SENSBLUE_ATLAS/"]').closest('li').addClass('atlas-submenu'); | |||
// 2. Procura a página principal do Atlas | |||
var $mainAtlasLi = $sidebar.find('a[href$="SENSBLUE_ATLAS"]').closest('li'); | |||
// Se encontrou e ainda não tem a seta injetada | |||
if ($mainAtlasLi.length && !$mainAtlasLi.find('.atlas-toggle-btn').length) { | if ($mainAtlasLi.length && !$mainAtlasLi.find('.atlas-toggle-btn').length) { | ||
// | |||
// Garante que o texto e a seta ficam alinhados na mesma linha | |||
$mainAtlasLi.css({ | $mainAtlasLi.css({ | ||
'display': 'flex', | 'display': 'flex', | ||
'align-items': 'center | 'align-items': 'center' | ||
}); | }); | ||
// 3. Cria | // 3. Cria a seta | ||
var $toggleBtn = $('<span class="atlas-toggle-btn" style="cursor:pointer; margin-left:8px; user-select:none;">▶</span>'); | var $toggleBtn = $('<span class="atlas-toggle-btn" style="cursor:pointer; margin-left:8px; user-select:none;">▶</span>'); | ||
$mainAtlasLi.append($toggleBtn); | $mainAtlasLi.append($toggleBtn); | ||
// 4. | // 4. Evento do clique | ||
$toggleBtn.on('click', function(e) { | $toggleBtn.on('click', function(e) { | ||
e.preventDefault(); | e.preventDefault(); | ||
e.stopPropagation(); | e.stopPropagation(); | ||
// Abre/fecha as subpáginas | |||
$('.atlas-submenu').toggleClass('is-open'); | $('.atlas-submenu').toggleClass('is-open'); | ||
// Roda a seta | |||
if ($(this).text() === '▶') { | if ($(this).text() === '▶') { | ||
$(this).text('▼'); | $(this).text('▼'); | ||
| Line 40: | Line 45: | ||
} | } | ||
} | } | ||
// Executa imediatamente e também se houver mudanças na página | |||
$(document).ready(setupAtlasDropdown); | |||
$(window).on('load', setupAtlasDropdown); | |||
}); | }); | ||