From b4290452b3a9697b48040d4d1af9316eaa081d5d Mon Sep 17 00:00:00 2001 From: Gustavo Date: Mon, 3 Aug 2026 08:35:56 -0300 Subject: [PATCH] Fix fila column label and add error handling to campaign action buttons Relabel misleading "Empresa" header to "Lead ID" in fila table (queue has no join to leads, cell showed lead_id). Wrap iniciar/pausar/retomar and aprovar/cancelar selecionados handlers in try/catch with toast on failure, matching btn-gerar-fila's existing pattern. --- public/index.html | 2 +- public/js/campanhas.js | 40 +++++++++++++++++++++++++--------------- 2 files changed, 26 insertions(+), 16 deletions(-) diff --git a/public/index.html b/public/index.html index d867797..a14562a 100644 --- a/public/index.html +++ b/public/index.html @@ -268,7 +268,7 @@ - +
EmpresaNumeroMensagemStatus
Lead IDNumeroMensagemStatus
diff --git a/public/js/campanhas.js b/public/js/campanhas.js index 034e8fa..aa4e72b 100644 --- a/public/js/campanhas.js +++ b/public/js/campanhas.js @@ -165,34 +165,44 @@ const Campanhas = (() => { }); el('btn-iniciar-campanha').addEventListener('click', async () => { - await API.post(`/api/campaigns/${campanhaAtualId}/iniciar`, {}); - await carregarDetalhe(campanhaAtualId); - await carregarLista(); + try { + await API.post(`/api/campaigns/${campanhaAtualId}/iniciar`, {}); + await carregarDetalhe(campanhaAtualId); + await carregarLista(); + } catch (error) { toast(`Erro: ${error.message}`); } }); el('btn-pausar-campanha').addEventListener('click', async () => { - await API.post(`/api/campaigns/${campanhaAtualId}/pausar`, { motivo: 'manual' }); - await carregarDetalhe(campanhaAtualId); - await carregarLista(); + try { + await API.post(`/api/campaigns/${campanhaAtualId}/pausar`, { motivo: 'manual' }); + await carregarDetalhe(campanhaAtualId); + await carregarLista(); + } catch (error) { toast(`Erro: ${error.message}`); } }); el('btn-retomar-campanha').addEventListener('click', async () => { - await API.post(`/api/campaigns/${campanhaAtualId}/retomar`, {}); - await carregarDetalhe(campanhaAtualId); - await carregarLista(); + try { + await API.post(`/api/campaigns/${campanhaAtualId}/retomar`, {}); + await carregarDetalhe(campanhaAtualId); + await carregarLista(); + } catch (error) { toast(`Erro: ${error.message}`); } }); el('btn-aprovar-selecionados').addEventListener('click', async () => { const queueIds = filaSelecionada(); if (!queueIds.length) return; - const resultado = await API.post(`/api/campaigns/${campanhaAtualId}/fila/aprovar`, { queueIds }); - toast(`${resultado.aprovados} aprovados`); - await carregarFila(campanhaAtualId); + try { + const resultado = await API.post(`/api/campaigns/${campanhaAtualId}/fila/aprovar`, { queueIds }); + toast(`${resultado.aprovados} aprovados`); + await carregarFila(campanhaAtualId); + } catch (error) { toast(`Erro: ${error.message}`); } }); el('btn-cancelar-selecionados').addEventListener('click', async () => { const queueIds = filaSelecionada(); if (!queueIds.length) return; - const resultado = await API.post(`/api/campaigns/${campanhaAtualId}/fila/cancelar`, { queueIds, motivo: 'operador' }); - toast(`${resultado.cancelados} cancelados`); - await carregarFila(campanhaAtualId); + try { + const resultado = await API.post(`/api/campaigns/${campanhaAtualId}/fila/cancelar`, { queueIds, motivo: 'operador' }); + toast(`${resultado.cancelados} cancelados`); + await carregarFila(campanhaAtualId); + } catch (error) { toast(`Erro: ${error.message}`); } }); }