diff --git a/static/js/militantes.js b/static/js/militantes.js index f1a0205..c583691 100644 --- a/static/js/militantes.js +++ b/static/js/militantes.js @@ -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(); diff --git a/templates/modals/militante_editar.html b/templates/modals/militante_editar.html index db1c057..efbca5a 100644 --- a/templates/modals/militante_editar.html +++ b/templates/modals/militante_editar.html @@ -60,7 +60,6 @@ - Formato: dd/mm/aaaa