MediaWiki:Common.js: mudanças entre as edições

De Projeto ESG da DPS TECH SA
Ir para navegação Ir para pesquisar
Conteúdo deletado Conteúdo adicionado
Sem resumo de edição
Etiqueta: Revertido
Sem resumo de edição
Etiqueta: Revertido
Linha 2: Linha 2:


/* Ocultar links para páginas especiais de usuários não registrados */
/* Ocultar links para páginas especiais de usuários não registrados */
if (mw.config.get('wgUserName') === null) {
$(function () {
$(function () {
// Variável para controlar se já escondeu
// Função otimizada para Vector 1.43.1
let searchHidden = false;
const hideSearchAndSpecialPages = function() {
// Esconder páginas especiais
// Função principal para ocultar elementos
$('#n-specialpages').hide();
const hideElementsForAnonymous = function() {
// Se está logado, não fazer nada
// Para Vector 2022 (1.43.1)
if (mw.config.get('wgUserName') !== null) {
return;
$('.vector-search-box').hide();
$('.vector-header .vector-search-box').hide();
}
$('.vector-header-end, .vector-header-start').each(function() {
$(this).find('.vector-search-box').hide();
// Se já escondeu, verificar se elementos reapareceram
if (searchHidden) {
});
// Verificar se algum elemento de busca está visível
const searchVisible = $('#p-search').is(':visible') ||
$('.vector-search-box').is(':visible') ||
$('#searchInput').is(':visible');
if (!searchVisible) {
// Para skins mais antigas
$('#p-search, #searchform, #searchInput').hide();
return; // Já está oculto, não precisa fazer nada
}
// Adicionar marcação ao body
}
$('body').addClass('user-anonymous-mode');
};
// Executar imediatamente
// 1. Ocultar páginas especiais da navegação
$('#n-specialpages').hide();
hideSearchAndSpecialPages();
// 2. Ocultar TODAS as variações possíveis de busca
// Interceptar o clique em ENTRAR
$(document).on('mousedown click', function(e) {
const searchSelectors = [
'#p-search',
const $target = $(e.target);
'#searchform',
const $link = $target.closest('a');
'#searchInput',
'#simpleSearch',
if ($link.length > 0) {
'.mw-search',
const linkText = $link.text().toLowerCase();
'.vector-search-box',
const linkHref = $link.attr('href') || '';
'.vector-search-box-input',
'.vector-search-box-form',
if (linkText.includes('entrar') ||
'.vector-search-box-vue',
linkText.includes('login') ||
'.cdx-search-input',
linkHref.includes('Special:UserLogin') ||
'.cdx-text-input__input',
$link.attr('id') === 'pt-login') {
'[id*="search"]',
// Executar múltiplas vezes para garantir
'[class*="search"]',
'input[name="search"]',
for (let i = 0; i < 5; i++) {
setTimeout(hideSearchAndSpecialPages, i * 200);
'.vector-header-end .vector-search-box',
'.vector-header-start .vector-search-box'
];
// Aplicar a cada seletor
searchSelectors.forEach(selector => {
try {
$(selector).each(function() {
$(this).hide();
$(this).css({
'display': 'none !important',
'visibility': 'hidden !important'
});
});
} catch (e) {
console.log('Erro com seletor:', selector, e);
}
});
// 3. Marcar como escondido
searchHidden = true;
// 4. Adicionar classe ao body para controle via CSS
$('body').addClass('anonymous-user');
};
// Executar imediatamente
hideElementsForAnonymous();
// Executar novamente após carregamento completo
$(window).on('load', hideElementsForAnonymous);
// Executar em intervalos curtos inicialmente
let intervalCount = 0;
const initialInterval = setInterval(() => {
hideElementsForAnonymous();
intervalCount++;
if (intervalCount > 10) { // Parar após 10 execuções (5 segundos)
clearInterval(initialInterval);
}
}, 500);
// Observar mudanças no DOM de forma mais agressiva
const observer = new MutationObserver(function(mutations) {
let shouldHide = false;
mutations.forEach(function(mutation) {
if (mutation.addedNodes.length > 0) {
// Verificar se algum nó adicionado contém elementos de busca
$(mutation.addedNodes).each(function() {
if ($(this).find(searchSelectors.join(',')).length > 0 ||
$(this).is(searchSelectors.join(','))) {
shouldHide = true;
}
}
});
}
}
}
});
});
if (shouldHide) {
// Executar em intervalos curtos
setInterval(hideSearchAndSpecialPages, 1000);
hideElementsForAnonymous();
}
});
});
}
observer.observe(document.body, {
childList: true,
subtree: true,
attributes: true,
attributeFilter: ['style', 'class', 'id']
});
// Monitorar cliques em qualquer link, especialmente "ENTRAR"
$(document).on('click', 'a', function(e) {
const href = $(this).attr('href') || '';
if (href.includes('Special:UserLogin') ||
href.includes('title=Special:UserLogin') ||
$(this).text().toLowerCase().includes('entrar') ||
$(this).attr('id') === 'pt-login') {
// Antes do redirecionamento, garantir que elementos estejam ocultos
setTimeout(hideElementsForAnonymous, 100);
setTimeout(hideElementsForAnonymous, 500);
}
});
// Monitorar mudanças na URL (para quando clicar em ENTRAR)
let lastUrl = location.href;
new MutationObserver(() => {
const url = location.href;
if (url !== lastUrl) {
lastUrl = url;
if (url.includes('Special:UserLogin')) {
setTimeout(hideElementsForAnonymous, 100);
setTimeout(hideElementsForAnonymous, 500);
}
}
}).observe(document, { subtree: true, childList: true });
});

Edição das 08h42min de 16 de janeiro de 2026

/* Códigos JavaScript aqui colocados serão carregados por todos aqueles que acessarem alguma página deste wiki */

/* Ocultar links para páginas especiais de usuários não registrados */
if (mw.config.get('wgUserName') === null) {
    $(function () {
        // Função otimizada para Vector 1.43.1
        const hideSearchAndSpecialPages = function() {
            // Esconder páginas especiais
            $('#n-specialpages').hide();
            
            // Para Vector 2022 (1.43.1)
            $('.vector-search-box').hide();
            $('.vector-header .vector-search-box').hide();
            $('.vector-header-end, .vector-header-start').each(function() {
                $(this).find('.vector-search-box').hide();
            });
            
            // Para skins mais antigas
            $('#p-search, #searchform, #searchInput').hide();
            
            // Adicionar marcação ao body
            $('body').addClass('user-anonymous-mode');
        };
        
        // Executar imediatamente
        hideSearchAndSpecialPages();
        
        // Interceptar o clique em ENTRAR
        $(document).on('mousedown click', function(e) {
            const $target = $(e.target);
            const $link = $target.closest('a');
            
            if ($link.length > 0) {
                const linkText = $link.text().toLowerCase();
                const linkHref = $link.attr('href') || '';
                
                if (linkText.includes('entrar') || 
                    linkText.includes('login') ||
                    linkHref.includes('Special:UserLogin') ||
                    $link.attr('id') === 'pt-login') {
                    
                    // Executar múltiplas vezes para garantir
                    for (let i = 0; i < 5; i++) {
                        setTimeout(hideSearchAndSpecialPages, i * 200);
                    }
                }
            }
        });
        
        // Executar em intervalos curtos
        setInterval(hideSearchAndSpecialPages, 1000);
    });
}