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.
This commit is contained in:
+1
-1
@@ -268,7 +268,7 @@
|
||||
<button class="btn-ghost btn-sm" id="btn-cancelar-selecionados" type="button">Cancelar selecionados</button>
|
||||
</div>
|
||||
<table>
|
||||
<thead><tr><th></th><th>Empresa</th><th>Numero</th><th>Mensagem</th><th>Status</th></tr></thead>
|
||||
<thead><tr><th></th><th>Lead ID</th><th>Numero</th><th>Mensagem</th><th>Status</th></tr></thead>
|
||||
<tbody id="fila-tabela"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
+25
-15
@@ -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}`); }
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user