Ir para o conteúdo

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

De Normas Regulamentadoras
Sem resumo de edição
Etiquetas: Reversão manual Revertido
Sem resumo de edição
Etiquetas: Reversão manual Revertido
Linha 4: Linha 4:
     if ($container.length === 0) return;
     if ($container.length === 0) return;


    // Seleciona apenas os elementos válidos gerados pelo Cargo
     var $itens = $container.find('.timeline-item');
     var $itens = $container.find('.timeline-item');
     var grupoAtual = [];
     if ($itens.length === 0) return;
 
     var numeroBloco = 1;
     var numeroBloco = 1;
    var grupoValido = [];
    // Limpa o container para reconstruirmos na ordem exata e sem sujeira do MediaWiki
    var itensArray = $itens.toArray();
    $container.empty();


     // Varre os itens de baixo para cima (do mais antigo para o mais recente)
     // Varre de cima para baixo (do mais recente ao mais antigo)
     // para agrupar corretamente o R com os A que estão ACIMA dele
     for (var i = 0; i < itensArray.length; i++) {
    $($itens.get().reverse()).each(function() {
         var $item = $(itensArray[i]);
         var $item = $(this);
         var verbo = $item.data('verbo');
         var verbo = $item.data('verbo');


         // Adiciona o item ao grupo atual
         grupoValido.push($item);
        grupoAtual.push($item);


         // Se o item atual for um "R", fecha o grupo e cria a caixa mãe
         // Se o item atual for um "R" OU se for o ÚLTIMO item da lista completa
         if (verbo === 'R' || $item.is(':last-child')) {
         if (verbo === 'R' || i === itensArray.length - 1) {
            // Cria a caixa mãe física com a classe de cor correspondente
             var $wrapper = $('<div class="bloco-grupo bloco-' + numeroBloco + '"></div>');
             var $wrapper = $('<div class="bloco-grupo bloco-' + numeroBloco + '"></div>');
              
              
             // Coloca os itens na ordem correta dentro da nova caixa
             // Joga todos os anos acumulados para dentro desta caixa mãe
             $.each(grupoAtual.reverse(), function(i, $el) {
             for (var j = 0; j < grupoValido.length; j++) {
                 $wrapper.append($el);
                 $wrapper.append(grupoValido[j]);
             });
             }


             // Insere a caixa mãe no topo do container
             // Adiciona a caixa mãe pronta ao final do container
             $container.prepend($wrapper);
             $container.append($wrapper);


             // Reinicia para o próximo bloco de cima
             // Reseta o acumulador e avança para o próximo tom de cor
             grupoAtual = [];
             grupoValido = [];
             numeroBloco++;
             numeroBloco++;
         }
         }
     });
     }
});
});

Edição das 22h39min de 6 de julho de 2026

/* Lógica de Agrupamento em Blocos Sólidos para o Infográfico */
$(document).ready(function() {
    var $container = $('#infografico-vigencia');
    if ($container.length === 0) return;

    // Seleciona apenas os elementos válidos gerados pelo Cargo
    var $itens = $container.find('.timeline-item');
    if ($itens.length === 0) return;

    var numeroBloco = 1;
    var grupoValido = [];

    // Limpa o container para reconstruirmos na ordem exata e sem sujeira do MediaWiki
    var itensArray = $itens.toArray();
    $container.empty();

    // Varre de cima para baixo (do mais recente ao mais antigo)
    for (var i = 0; i < itensArray.length; i++) {
        var $item = $(itensArray[i]);
        var verbo = $item.data('verbo');

        grupoValido.push($item);

        // Se o item atual for um "R" OU se for o ÚLTIMO item da lista completa
        if (verbo === 'R' || i === itensArray.length - 1) {
            // Cria a caixa mãe física com a classe de cor correspondente
            var $wrapper = $('<div class="bloco-grupo bloco-' + numeroBloco + '"></div>');
            
            // Joga todos os anos acumulados para dentro desta caixa mãe
            for (var j = 0; j < grupoValido.length; j++) {
                $wrapper.append(grupoValido[j]);
            }

            // Adiciona a caixa mãe pronta ao final do container
            $container.append($wrapper);

            // Reseta o acumulador e avança para o próximo tom de cor
            grupoValido = [];
            numeroBloco++;
        }
    }
});