MediaWiki:Common.js: mudanças entre as edições
Aparência
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));
});