MediaWiki:Common.js: Difference between revisions
Appearance
No edit summary Tag: Manual revert |
No edit summary |
||
| (4 intermediate revisions by the same user not shown) | |||
| Line 2: | Line 2: | ||
// Força o menu lateral a expandir (Vector 2022) se estiver colapsado | |||
mw.hook('wikipage.content').add(function () { | |||
if (document.documentElement.classList.contains('vector-feature-main-menu-pinned-disabled')) { | |||
var pinButton = document.getElementById('vector-main-menu-dropdown-checkbox'); | |||
if (pinButton) { | |||
// Remove a classe de desativado e força o estado expandido | |||
document.documentElement.classList.remove('vector-feature-main-menu-pinned-disabled'); | |||
document.documentElement.classList.add('vector-feature-main-menu-pinned-enabled'); | |||
} | |||
} | |||
}); | |||
// Força o MediaWiki a carregar os módulos básicos em qualquer tipo de sessão (anónima ou registada) | |||
mw.loader.using(['mediawiki.util', 'jquery'], function () { | mw.loader.using(['mediawiki.util', 'jquery'], function () { | ||
function setupAtlasDropdown() { | function setupAtlasDropdown() { | ||
var $sidebar = $('.vector-main-menu, #mw-panel | // Alvo exclusivo: Apenas o menu de navegação da skin, ignorando o índice de conteúdos (Contents) da página | ||
var $sidebar = $('.vector-main-menu, #mw-panel'); | |||
if (!$sidebar.length) return; | if (!$sidebar.length) return; | ||
// 1. Identifica e esconde as subpáginas | // 1. Identifica e esconde as subpáginas apenas no menu lateral | ||
$sidebar.find('li').each(function() { | $sidebar.find('li').each(function() { | ||
var $li = $(this); | var $li = $(this); | ||
var text = $li.text().trim(); | |||
// Verifica se apanha as subpáginas pelo URL ou pelo texto exato | |||
var hasSubpage = $li.find('a[href*="SENSBLUE_ATLAS/"], .mw-selflink[href*="SENSBLUE_ATLAS/"]').length > 0 | var hasSubpage = $li.find('a[href*="SENSBLUE_ATLAS/"], .mw-selflink[href*="SENSBLUE_ATLAS/"]').length > 0 | ||
|| | || text === 'Datasheet' | ||
|| | || text === 'Release Notes'; | ||
if (hasSubpage && ! | if (hasSubpage && !text.includes('SENSBLUE ATLAS')) { | ||
$li.addClass('atlas-submenu'); | $li.addClass('atlas-submenu'); | ||
} | } | ||
}); | }); | ||
// 2. Procura o item pai (SENSBLUE ATLAS) | // 2. Procura o item pai (SENSBLUE ATLAS) na barra lateral | ||
var $mainAtlasLi = $sidebar.find('li').filter(function() { | var $mainAtlasLi = $sidebar.find('li').filter(function() { | ||
var text = $(this).clone().children().remove().end().text().trim() || $(this).text().trim(); | var text = $(this).clone().children().remove().end().text().trim() || $(this).text().trim(); | ||
| Line 25: | Line 44: | ||
}).first(); | }).first(); | ||
// | // 3. Injeta a seta nativa se encontrar o link | ||
if ($mainAtlasLi.length && !$mainAtlasLi.find('.atlas-toggle-btn').length) { | if ($mainAtlasLi.length && !$mainAtlasLi.find('.atlas-toggle-btn').length) { | ||
| Line 31: | Line 50: | ||
'display': 'flex', | 'display': 'flex', | ||
'align-items': 'center', | 'align-items': 'center', | ||
'justify-content': 'flex-start' | 'justify-content': 'flex-start' | ||
}); | |||
$mainAtlasLi.find('a, .mw-selflink, span').css({ | |||
'display': 'inline', | |||
'width': 'auto' | |||
}); | }); | ||
var $toggleBtn = $('<span class="atlas-toggle-btn"></span>'); | |||
var $toggleBtn = $('<span class="atlas-toggle-btn | |||
$mainAtlasLi.append($toggleBtn); | $mainAtlasLi.append($toggleBtn); | ||
$toggleBtn.on('click', function(e) { | $toggleBtn.on('click', function(e) { | ||
e.preventDefault(); | e.preventDefault(); | ||
| Line 44: | Line 66: | ||
$('.atlas-submenu').toggleClass('is-open'); | $('.atlas-submenu').toggleClass('is-open'); | ||
$(this).toggleClass('is-active'); | |||
}); | }); | ||
} | } | ||
} | } | ||
// GATILHO COMPATÍVEL COM ANÓNIMOS: Executa em múltiplos estágios do carregamento | |||
$(document).ready(setupAtlasDropdown); | $(document).ready(setupAtlasDropdown); | ||
$(window).on('load', setupAtlasDropdown); | $(window).on('load', setupAtlasDropdown); | ||
mw.hook('wikipage.content').add(setupAtlasDropdown); | |||
}); | }); | ||