MediaWiki:Common.js

De Projeto ESG da DPS TECH SA
Revisão de 09h30min 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.
/* 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 () {
        // ========== SEU CÓDIGO ORIGINAL ==========
        // Oculta o link "Páginas especiais" na navegação lateral (Vector skin)
        $( '#n-specialpages' ).hide();

        // Se você quiser ocultar um link específico, como "Mudanças recentes" (RecentChanges)
        // $( '#n-recentchanges' ).hide();

        // Oculte itens adicionais do menu "Ferramentas" (toolbox) conforme necessário
        // $( '#t-whatlinkshere' ).hide(); // Oculta "Páginas afluentes"

        /* --- NOVO: esconder a busca apenas para anônimos --- */

        // Skins clássicas (Vector legado, MonoBook)
        $( '#p-search, #searchform, #searchInput' ).hide();

        // Vector 2022 (barra de busca no topo)
        $( '.vector-search-box, .vector-search-box-input, .vector-search-box-form' ).hide();

        // Fallback: se algum elemento for re-inserido dinamicamente, garante ocultação
        // (ex.: carregamentos tardios ou gadgets que recriam a busca)
        const hideSearch = function () {
            $( '#p-search, #searchform, #searchInput' ).hide();
            $( '.vector-search-box, .vector-search-box-input, .vector-search-box-form' ).hide();
        };

        // Observa mudanças no DOM por alguns segundos para pegar inserções tardias
        const observer = new MutationObserver( hideSearch );
        observer.observe( document.body, { childList: true, subtree: true } );
        setTimeout( () => observer.disconnect(), 5000 );

        // ========== ADIÇÃO: ESCONDER TEXTO "ENTRAR" ==========
        
        // Função para esconder o texto "ENTRAR" mas manter o link funcional
        const hideLoginText = function() {
            // Para Vector Legado - encontrar o link de login
            $('#pt-login a').each(function() {
                const $link = $(this);
                const originalText = $link.text();
                
                // Se contém "ENTRAR" ou variações
                if (originalText.match(/entrar|login|sign in/i)) {
                    // Esconde o texto mas mantém o link
                    $link.css({
                        'font-size': '0',
                        'color': 'transparent',
                        'text-indent': '-9999px'
                    });
                    
                    // Adiciona um placeholder invisível
                    $link.attr('data-original-text', originalText);
                    
                    // Mantém acessibilidade
                    $link.attr('title', 'Fazer login');
                    $link.attr('aria-label', 'Fazer login');
                    
                    // Adiciona um ícone ou marcador invisível
                    $link.html('<span style="display:none;">Login</span>');
                }
            });
            
            // Alternativa: esconder apenas o span/texto dentro do link
            $('#pt-login span, #pt-login .mw-list-item, #pt-login .mw-userlink').each(function() {
                $(this).css({
                    'font-size': '0',
                    'color': 'transparent',
                    'visibility': 'hidden'
                });
            });
        };
        
        // Executar imediatamente
        hideLoginText();
        
        // Executar após carga completa
        $(window).on('load', hideLoginText);
        
        // Executar periodicamente para garantir
        setInterval(hideLoginText, 1000);
        
        // Observador de mutação também para o texto "ENTRAR"
        const loginObserver = new MutationObserver( function(mutations) {
            mutations.forEach(function(mutation) {
                if (mutation.addedNodes.length > 0) {
                    hideLoginText();
                }
            });
        });
        
        loginObserver.observe(document.body, { childList: true, subtree: true });
        setTimeout( () => loginObserver.disconnect(), 5000 );
    } );
}