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 1: Linha 1:
/* Ocultar links para páginas especiais de usuários não registrados */
/* Ocultar links para páginas especiais de usuários não registrados */
$( function () {
if ( mw.config.get( 'wgUserName' ) === null ) {
// Função para verificar e atualizar visibilidade
$( function () {
const updateVisibility = function() {
// Função para ocultar elementos de busca
const hideSearchElements = function() {
const isLoggedIn = mw.config.get( 'wgUserName' ) !== null;
// Esconder todas as variações possíveis de caixas de pesquisa
$('#p-search, #searchform, #searchInput, #simpleSearch, .mw-search').hide();
$('.vector-search-box, .vector-search-box-input, .vector-search-box-form').hide();
$('.vector-search-box-vue, .cdx-search-input, .cdx-text-input__input').hide();
// Para Vector 2022, também ocultar o container pai
$('.vector-header .vector-header-start, .vector-header .vector-header-end').each(function() {
$(this).find('*').filter(':contains("Search"), [id*="search"], [class*="search"]').parent().hide();
});
};
// Executar imediatamente
if (!isLoggedIn) {
// Esconder elementos de busca
hideSearchElements();
$('.vector-search-box, #p-search, #searchform').each(function() {
// Executar novamente após um pequeno delay para garantir
$(this).hide();
setTimeout(hideSearchElements, 100);
$(this).css('visibility', 'hidden');
setTimeout(hideSearchElements, 500);
// Observar mudanças no DOM continuamente
const observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.addedNodes.length > 0) {
hideSearchElements();
}
});
});
// Adicionar classe para facilitar seleção CSS
$('body').addClass('user-not-logged-in');
} else {
// Mostrar elementos se estiver logado
$('.vector-search-box, #p-search, #searchform').show();
$('body').removeClass('user-not-logged-in');
}
};
// Executar inicialmente
updateVisibility();
// Observar mudanças na configuração do MW (se houver)
if (mw.config.values) {
Object.defineProperty(mw.config.values, 'wgUserName', {
set: function(value) {
this._wgUserName = value;
setTimeout(updateVisibility, 50);
},
get: function() {
return this._wgUserName;
}
});
});
}
observer.observe(document.body, {
// Executar periodicamente por segurança
childList: true,
setInterval(updateVisibility, 1000);
subtree: true
});
// Executar em eventos específicos
$(document).on('click', '#pt-login, #pt-logout', function() {
// Manter o observer ativo por mais tempo (30 segundos)
setTimeout(() => observer.disconnect(), 30000);
setTimeout(updateVisibility, 500);
} );
});
}
} );

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

/* Ocultar links para páginas especiais de usuários não registrados */
$( function () {
    // Função para verificar e atualizar visibilidade
    const updateVisibility = function() {
        const isLoggedIn = mw.config.get( 'wgUserName' ) !== null;
        
        if (!isLoggedIn) {
            // Esconder elementos de busca
            $('.vector-search-box, #p-search, #searchform').each(function() {
                $(this).hide();
                $(this).css('visibility', 'hidden');
            });
            
            // Adicionar classe para facilitar seleção CSS
            $('body').addClass('user-not-logged-in');
        } else {
            // Mostrar elementos se estiver logado
            $('.vector-search-box, #p-search, #searchform').show();
            $('body').removeClass('user-not-logged-in');
        }
    };
    
    // Executar inicialmente
    updateVisibility();
    
    // Observar mudanças na configuração do MW (se houver)
    if (mw.config.values) {
        Object.defineProperty(mw.config.values, 'wgUserName', {
            set: function(value) {
                this._wgUserName = value;
                setTimeout(updateVisibility, 50);
            },
            get: function() {
                return this._wgUserName;
            }
        });
    }
    
    // Executar periodicamente por segurança
    setInterval(updateVisibility, 1000);
    
    // Executar em eventos específicos
    $(document).on('click', '#pt-login, #pt-logout', function() {
        setTimeout(updateVisibility, 500);
    });
} );