Ir para o conteúdo

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

De Base de Conhecimento
Sem resumo de edição
Sem resumo de edição
Linha 42: Linha 42:


   $('body').append(html);
   $('body').append(html);
});
$(function() {
    // Evita rodar se o container não existir
    if (!$('#leitor-json').length) return;
    let dados = [];
    let dadosFiltrados = [];
    let paginaAtual = 1;
    // Cria elementos básicos no container
    const container = $('#leitor-json');
    container.append(`
        <div id="filtros" style="margin-bottom:10px;">
            <input type="text" id="filtroProcesso" placeholder="Buscar por processo">
            <input type="text" id="filtroDocumento" placeholder="Buscar por documento">
            <input type="text" id="filtroConteudo" placeholder="Buscar no conteúdo">
            <select id="resultadosPorPagina">
                <option value="5">5</option>
                <option value="10" selected>10</option>
                <option value="20">20</option>
            </select>
            <button id="btnPesquisar">Pesquisar</button>
            <button id="btnLimpar">Limpar filtros</button>
        </div>
        <div id="dados" style="margin-top:10px;"></div>
        <div id="paginacao" style="margin-top:10px;">
            <button id="btnAnterior">Anterior</button>
            <span id="paginaAtual"></span>
            <button id="btnProximo">Próximo</button>
        </div>
    `);
    // Carrega o JSON
    fetch("/images/dados.json")
        .then(res => res.json())
        .then(json => {
            dados = json;
            aplicarFiltros();
        })
        .catch(err => console.error("Erro ao carregar dados.json:", err));
    // Funções
    function exibirDados() {
        const containerDados = $('#dados');
        containerDados.empty();
        const resultadosPorPagina = parseInt($('#resultadosPorPagina').val());
        const inicio = (paginaAtual - 1) * resultadosPorPagina;
        const fim = inicio + resultadosPorPagina;
        const paginaDados = dadosFiltrados.slice(inicio, fim);
        if (!paginaDados.length) {
            containerDados.html("<p>Nenhum resultado encontrado.</p>");
            $('#paginaAtual').text("");
            return;
        }
        paginaDados.forEach(item => {
            const div = $(`
                <div style="border:1px solid #ccc; margin:5px; padding:5px;">
                    <b>Veículo:</b> ${item.veiculo}<br>
                    <b>Processo:</b> ${item.processo}<br>
                    <b>Documento:</b> ${item.documento}<br>
                    <b>Conteúdo:</b> ${item.conteudo}<br>
                    <b>Unidade:</b> ${item.unidade}<br>
                    <b>Série:</b> ${item.serie}<br>
                    <b>Órgão:</b> ${item.orgao}
                </div>
            `);
            containerDados.append(div);
        });
        const totalPaginas = Math.ceil(dadosFiltrados.length / resultadosPorPagina);
        $('#paginaAtual').text(`Página ${paginaAtual} de ${totalPaginas}`);
        $('#btnAnterior').prop('disabled', paginaAtual === 1);
        $('#btnProximo').prop('disabled', paginaAtual === totalPaginas);
    }
    function aplicarFiltros() {
        const processo = $('#filtroProcesso').val().toLowerCase();
        const documento = $('#filtroDocumento').val().toLowerCase();
        const conteudo = $('#filtroConteudo').val().toLowerCase();
        dadosFiltrados = dados.filter(item =>
            (!processo || item.processo.toLowerCase().includes(processo)) &&
            (!documento || item.documento.toLowerCase().includes(documento)) &&
            (!conteudo || item.conteudo.toLowerCase().includes(conteudo))
        );
        paginaAtual = 1;
        exibirDados();
    }
    function limparFiltros() {
        $('#filtroProcesso').val('');
        $('#filtroDocumento').val('');
        $('#filtroConteudo').val('');
        aplicarFiltros();
    }
    function mudarPagina(direcao) {
        paginaAtual += direcao;
        exibirDados();
    }
    // Eventos
    $('#btnPesquisar').on('click', aplicarFiltros);
    $('#btnLimpar').on('click', limparFiltros);
    $('#btnAnterior').on('click', () => mudarPagina(-1));
    $('#btnProximo').on('click', () => mudarPagina(1));
});
});

Edição das 13h09min de 23 de setembro de 2025

/* Código Javascript colocado aqui será carregado para todos os utilizadores em cada carregamento de página */
mw.loader.using('mediawiki.util', function() {
    $('head').append('<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css">');
    $('head').append('<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>');
});
$(function() {
    var html = `
    <div id="top-banner" class="container-fluid d-flex justify-content-center justify-content-md-between">
        <div class="contact-info d-flex align-items-center">
            <i class="d-flex align-items-center">
                <a href="https://prefeitura.sp.gov.br">Prefeitura de São Paulo</a>
            </i>
            <i class="d-flex align-items-center ms-4">
                <a href="https://esic.prefeitura.sp.gov.br">E-Sic</a>
            </i>
            <i class="d-flex align-items-center ms-4">
                <a href="https://arquip.prefeitura.sp.gov.br">Arquip</a>
            </i>
        </div>
    </div>
    `;
    $(html).insertBefore($('.vector-header-container').first());
 // coloca acima do header
});


$(function () {
  // Remove o footer padrão do Vector
  $('.vector-footer').remove();

  // Adiciona o seu footer no final da página
  var html = `
  <footer id="footer" class="footer position-relative dark-background" style='background-color:#3c3c3c; color:#FFF;padding: 1px 4px;height:136;font-family:sans-serif;'>
    <div class="container copyright text-center mt-4">
      <p style='margin:0'>Plataforma mantida pelo </p>
      <p style='margin:0'><strong class="px-1 sitename">Arquivo Público Municipal "Jornalista Paulo Roberto Dutra"</strong></p>
      <p style='margin:0'>Rua Balsa, 331 - Freguesia do Ó</p>
      <p>São Paulo/SP- Brasil</p>
    </div>
  </footer>
  `;

  $('body').append(html);
});

$(function() {
    // Evita rodar se o container não existir
    if (!$('#leitor-json').length) return;

    let dados = [];
    let dadosFiltrados = [];
    let paginaAtual = 1;

    // Cria elementos básicos no container
    const container = $('#leitor-json');

    container.append(`
        <div id="filtros" style="margin-bottom:10px;">
            <input type="text" id="filtroProcesso" placeholder="Buscar por processo">
            <input type="text" id="filtroDocumento" placeholder="Buscar por documento">
            <input type="text" id="filtroConteudo" placeholder="Buscar no conteúdo">
            <select id="resultadosPorPagina">
                <option value="5">5</option>
                <option value="10" selected>10</option>
                <option value="20">20</option>
            </select>
            <button id="btnPesquisar">Pesquisar</button>
            <button id="btnLimpar">Limpar filtros</button>
        </div>
        <div id="dados" style="margin-top:10px;"></div>
        <div id="paginacao" style="margin-top:10px;">
            <button id="btnAnterior">Anterior</button>
            <span id="paginaAtual"></span>
            <button id="btnProximo">Próximo</button>
        </div>
    `);

    // Carrega o JSON
    fetch("/images/dados.json")
        .then(res => res.json())
        .then(json => {
            dados = json;
            aplicarFiltros();
        })
        .catch(err => console.error("Erro ao carregar dados.json:", err));

    // Funções
    function exibirDados() {
        const containerDados = $('#dados');
        containerDados.empty();
        const resultadosPorPagina = parseInt($('#resultadosPorPagina').val());
        const inicio = (paginaAtual - 1) * resultadosPorPagina;
        const fim = inicio + resultadosPorPagina;
        const paginaDados = dadosFiltrados.slice(inicio, fim);

        if (!paginaDados.length) {
            containerDados.html("<p>Nenhum resultado encontrado.</p>");
            $('#paginaAtual').text("");
            return;
        }

        paginaDados.forEach(item => {
            const div = $(`
                <div style="border:1px solid #ccc; margin:5px; padding:5px;">
                    <b>Veículo:</b> ${item.veiculo}<br>
                    <b>Processo:</b> ${item.processo}<br>
                    <b>Documento:</b> ${item.documento}<br>
                    <b>Conteúdo:</b> ${item.conteudo}<br>
                    <b>Unidade:</b> ${item.unidade}<br>
                    <b>Série:</b> ${item.serie}<br>
                    <b>Órgão:</b> ${item.orgao}
                </div>
            `);
            containerDados.append(div);
        });

        const totalPaginas = Math.ceil(dadosFiltrados.length / resultadosPorPagina);
        $('#paginaAtual').text(`Página ${paginaAtual} de ${totalPaginas}`);
        $('#btnAnterior').prop('disabled', paginaAtual === 1);
        $('#btnProximo').prop('disabled', paginaAtual === totalPaginas);
    }

    function aplicarFiltros() {
        const processo = $('#filtroProcesso').val().toLowerCase();
        const documento = $('#filtroDocumento').val().toLowerCase();
        const conteudo = $('#filtroConteudo').val().toLowerCase();

        dadosFiltrados = dados.filter(item =>
            (!processo || item.processo.toLowerCase().includes(processo)) &&
            (!documento || item.documento.toLowerCase().includes(documento)) &&
            (!conteudo || item.conteudo.toLowerCase().includes(conteudo))
        );

        paginaAtual = 1;
        exibirDados();
    }

    function limparFiltros() {
        $('#filtroProcesso').val('');
        $('#filtroDocumento').val('');
        $('#filtroConteudo').val('');
        aplicarFiltros();
    }

    function mudarPagina(direcao) {
        paginaAtual += direcao;
        exibirDados();
    }

    // Eventos
    $('#btnPesquisar').on('click', aplicarFiltros);
    $('#btnLimpar').on('click', limparFiltros);
    $('#btnAnterior').on('click', () => mudarPagina(-1));
    $('#btnProximo').on('click', () => mudarPagina(1));
});