Jump to content

MediaWiki:Common.js: Difference between revisions

No edit summary
Tag: Reverted
No edit summary
 
(18 intermediate revisions by the same user not shown)
Line 1: Line 1:
/* Any JavaScript here will be loaded for all users on every page load. */
/* Any JavaScript here will be loaded for all users on every page load. */


/**
 
* GOOGLE ANALYTICS
/* Forçar links de "Buy Now" a abrir em novo separador */
* Injeção correta de script externo para evitar o erro de "Parse error"
$(document).ready(function() {
*/
    $('.button-buy-now a').attr('target', '_blank').attr('rel', 'noopener');
});
 
 
$(document).ready(function() {
    var footerLinks = document.getElementById('footer-places');
    if (footerLinks && !document.getElementById('footer-custom-buttons-container')) {
        var container = document.createElement('li');
        container.id = 'footer-custom-buttons-container';
        container.style.display = 'flex';
        container.style.gap = '10px';
        container.style.alignItems = 'center';
 
        // Botão de Topo (Seta)
        var topBtn = '<a href="#" class="footer-top-button" title="Voltar ao topo">' +
            '<span class="material-symbols-outlined">arrow_upward</span></a>';
       
        // Teu botão atual da Atronia
        var siteBtn = '<a href="https://atronia.eu" class="footer-button-atronia-real" target="_blank" rel="noopener">atronia.eu</a>';
       
        container.innerHTML = topBtn + siteBtn;
        footerLinks.appendChild(container);
       
        // Função para scroll suave ao clicar na seta
        $('.footer-top-button').click(function(e) {
            e.preventDefault();
            $('html, body').animate({scrollTop: 0}, 'slow');
        });
    }
});
 
 
 
 
 
/*** GOOGLE ANALYTICS Injeção correta de script externo para evitar o erro de "Parse error" ***/
 
var gaScript = document.createElement('script');
var gaScript = document.createElement('script');
gaScript.src = "https://www.googletagmanager.com/gtag/js?id=G-MX174P23PW";
gaScript.src = "https://www.googletagmanager.com/gtag/js?id=G-MX174P23PW";
Line 76: Line 112:
});
});


/* Variations toggle arrow rotation */
$(function () {
    $('.variations-toggle').on('click', function () {
        var $arrow = $(this).find('.arrow-icon');


        // small delay to let MediaWiki toggle first
        setTimeout(() => {
            var targetId = this.className.match(/mw-customtoggle-(\d+)/);


            if (!targetId) return;


/* --- LÓGICA DE CHEVRONS UNIVERSAL (Vector 2022 + Legacy) --- */
            var collapsibleId = '#mw-customcollapsible-' + targetId[1];
$(function() {
             var $collapsible = $(collapsibleId);
    // Tenta encontrar o índice em qualquer um dos formatos possíveis
    var $toc = $('.vector-toc, #toc, .toc');
    if (!$toc.length) return;
 
    // Procura as listas de sub-itens
    $toc.find('li ul').each(function() {
        var $subList = $(this);
        var $parentLi = $subList.parent();
       
        // Evita duplicar setas se o script correr duas vezes
        if ($parentLi.find('.toc-custom-toggle').length) return;
 
        var $chevron = $('<span class="toc-custom-toggle"></span>')
            .html('&#9656;') // Seta para a direita (fechado)
            .css({
                'cursor': 'pointer',
                'margin-right': '8px',
                'display': 'inline-block',
                'transition': 'transform 0.2s',
                'color': '#4477aa',
                'font-size': '14px'
             });
 
        // No Vector 2022, o link está dentro de uma div .vector-toc-link
        var $anchor = $parentLi.find('> a, > .vector-toc-link');
        $anchor.before($chevron);


        // Começar colapsado
             if ($collapsible.hasClass('mw-collapsed')) {
        $subList.hide();
                 $arrow.removeClass('rotated');
       
        $chevron.on('click', function(e) {
            e.preventDefault();
            e.stopPropagation();
            $subList.slideToggle('fast');
           
             if ($(this).data('collapsed')) {
                 $(this).css('transform', 'rotate(0deg)').data('collapsed', false);
             } else {
             } else {
                 $(this).css('transform', 'rotate(90deg)').data('collapsed', true);
                 $arrow.addClass('rotated');
             }
             }
         });
         }, 50);
     });
     });
});
});