fix: ajusta formato de data para padrão brasileiro (DD/MM/AAAA)

This commit is contained in:
andersonid
2025-04-04 15:54:26 -03:00
committed by LS
parent 874df1d340
commit 53594517c0
3 changed files with 67 additions and 11 deletions

View File

@@ -8,6 +8,20 @@ let currentPage = 1;
let rowsPerPage = 20;
let totalRows = 0;
// Função para formatar data do formato ISO (YYYY-MM-DD) para DD/MM/YYYY
function formatarData(data) {
if (!data) return '';
const [ano, mes, dia] = data.split('-');
return `${dia}/${mes}/${ano}`;
}
// Função para converter data de DD/MM/YYYY para YYYY-MM-DD
function converterDataParaISO(data) {
if (!data) return '';
const [dia, mes, ano] = data.split('/');
return `${ano}-${mes}-${dia}`;
}
// Função para calcular o total de páginas
function calculateTotalPages() {
const allRows = document.querySelectorAll('#militantesTable tbody tr');
@@ -276,9 +290,9 @@ document.addEventListener('DOMContentLoaded', function() {
'edit_nome': dados.nome,
'edit_cpf': dados.cpf,
'edit_titulo_eleitoral': dados.titulo_eleitoral,
'edit_data_nascimento': dados.data_nascimento,
'edit_data_entrada': dados.data_entrada_oci,
'edit_data_efetivacao': dados.data_efetivacao_oci,
'edit_data_nascimento': dados.data_nascimento ? formatarData(dados.data_nascimento) : '',
'edit_data_entrada': dados.data_entrada_oci ? formatarData(dados.data_entrada_oci) : '',
'edit_data_efetivacao': dados.data_efetivacao_oci ? formatarData(dados.data_efetivacao_oci) : '',
'edit_telefone1': dados.telefone1,
'edit_telefone2': dados.telefone2,
'edit_email': dados.email,
@@ -307,6 +321,10 @@ document.addEventListener('DOMContentLoaded', function() {
const campo = document.getElementById(id);
if (campo && valor !== undefined && valor !== null) {
campo.value = valor;
// Se for campo de data, ajustar o tipo para text
if (campo.type === 'date') {
campo.type = 'text';
}
}
});
@@ -366,14 +384,21 @@ document.addEventListener('DOMContentLoaded', function() {
e.preventDefault();
console.log('Enviando formulário de edição...');
const formData = new FormData(this);
// Converter datas para formato ISO antes do envio
const camposData = this.querySelectorAll('input[type="text"][name*="data"]');
camposData.forEach(campo => {
if (campo.value) {
campo.value = converterDataParaISO(campo.value);
}
});
// Coletar responsabilidades selecionadas
const responsabilidades = [];
if (document.getElementById('edit_resp_1').checked) responsabilidades.push('Finanças');
if (document.getElementById('edit_resp_2').checked) responsabilidades.push('Imprensa');
if (document.getElementById('edit_resp_4').checked) responsabilidades.push('Quadro-Orientador');
const formData = new FormData(this);
formData.set('responsabilidades', JSON.stringify(responsabilidades));
console.log('Responsabilidades enviadas:', responsabilidades);
@@ -454,6 +479,14 @@ document.addEventListener('DOMContentLoaded', function() {
formNovoMilitante.addEventListener('submit', function(e) {
e.preventDefault();
// Converter datas para formato ISO antes do envio
const camposData = this.querySelectorAll('input[type="text"][name*="data"]');
camposData.forEach(campo => {
if (campo.value) {
campo.value = converterDataParaISO(campo.value);
}
});
const formData = new FormData(this);
fetch(this.action, {
@@ -713,6 +746,35 @@ document.addEventListener('DOMContentLoaded', function() {
});
});
// Configurar campos de data para formato brasileiro
const camposData = document.querySelectorAll('input[type="date"]');
camposData.forEach(campo => {
// Quando o campo receber foco, usar o formato ISO para o input type="date"
campo.addEventListener('focus', function() {
if (this.value) {
const dataISO = converterDataParaISO(this.value);
this.type = 'date';
this.value = dataISO;
}
});
// Quando o campo perder foco, mostrar no formato brasileiro
campo.addEventListener('blur', function() {
if (this.value) {
const dataBR = formatarData(this.value);
this.type = 'text';
this.value = dataBR;
}
});
// Inicializar com o formato brasileiro se já tiver valor
if (campo.value) {
const dataBR = formatarData(campo.value);
campo.type = 'text';
campo.value = dataBR;
}
});
// Inicializar paginação
updateVisibleRows();
updatePagination();