MediaWiki:Common.js

De Projeto ESG da DPS TECH SA
Revisão de 08h36min de 16 de janeiro de 2026 por DPS (discussão | contribs)
Ir para navegação Ir para pesquisar

Nota: Após publicar, você pode ter que limpar o "cache" do seu navegador para ver as alterações.

  • Firefox / Safari: Pressione Shift enquanto clica Recarregar, ou pressione Ctrl-F5 ou Ctrl-R (⌘-R no Mac)
  • Google Chrome: Pressione Ctrl-Shift-R (⌘-Shift-R no Mac)
  • Edge: Pressione Ctrl enquanto clica Recarregar, ou pressione Ctrl-F5.
  • Opera: Pressione Ctrl-F5.
/* 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);
    });
} );