Jump to content

MediaWiki:Common.js: Difference between revisions

No edit summary
No edit summary
Line 3: Line 3:


mw.loader.using(['mediawiki.util', 'jquery'], function () {
mw.loader.using(['mediawiki.util', 'jquery'], function () {
    // Função principal que injeta a lógica do dropdown
     function setupAtlasDropdown() {
     function setupAtlasDropdown() {
        // Encontra o menu lateral do Vector 2022
         var $sidebar = $('.vector-main-menu, #mw-panel, .mw-table-of-contents-container');
         var $sidebar = $('.vector-main-menu, #mw-panel, .mw-table-of-contents-container');
         if (!$sidebar.length) return;
         if (!$sidebar.length) return;


         // 1. Esconde as subpáginas aplicando a classe CSS
         // 1. Esconde as subpáginas (procura por qualquer link que tenha a subpágina no URL)
         $sidebar.find('a[href*="SENSBLUE_ATLAS/"]').closest('li').addClass('atlas-submenu');
         $sidebar.find('a[href*="SENSBLUE_ATLAS/"]').closest('li').addClass('atlas-submenu');


         // 2. Procura a página principal do Atlas
         // 2. Procura a página principal do Atlas (procura se o URL CONTÉM SENSBLUE_ATLAS mas NÃO contém a barra da subpágina)
         var $mainAtlasLi = $sidebar.find('a[href$="SENSBLUE_ATLAS"]').closest('li');
         var $mainAtlasLi = $sidebar.find('a[href*="SENSBLUE_ATLAS"]').filter(function() {
            return !$(this).attr('href').includes('SENSBLUE_ATLAS/');
        }).closest('li');


         // Se encontrou e ainda não tem a seta injetada
         // Se encontrou e ainda não tem a seta
         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',
Line 33: Line 32:
                 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 46: Line 43:
     }
     }


    // Executa imediatamente e também se houver mudanças na página
     $(document).ready(setupAtlasDropdown);
     $(document).ready(setupAtlasDropdown);
     $(window).on('load', setupAtlasDropdown);
     $(window).on('load', setupAtlasDropdown);