confirmedAction(`Delete campaign #${b.dataset.del}? This removes the campaign and its recipient assignments. Logs are kept.`, async () => { await POST(`/campaigns/${b.dataset.del}/delete`); loadList(); }, { title: "Delete campaign", confirmLabel: "Delete" })); } catch (e) { box.innerHTML = `
✕
${esc(e.message)}
`; } } /* ==================== MONITOR PANE ==================== */ let MON = { id: null, es: null, timer: null, page: 1, statusF: "", q: "" }; function openMonitor(cid) { MON.id = cid; setMode("monitor"); } function setMode(m) {