// app_priority.js const socket = io(); // ── Socket events ───────────────────────────────────────────────────────────── socket.on("connect", () => { console.log("Connected to server"); refreshPriorities(); }); socket.on("connect_error", (err) => { console.error("Connection error:", err); setStatus("Connection error. Please reload.", false); }); socket.on("priority_data", function(data) { renderPriorityList(data.priorities || []); setStatus("", null); setRefreshEnabled(true); }); socket.on("priority_response", function(data) { setStatus(data.message, data.success); setRefreshEnabled(true); }); // ── Actions ─────────────────────────────────────────────────────────────────── function refreshPriorities() { setStatus("Loading ticket priorities...", null); setRefreshEnabled(false); socket.emit("get_ticket_priorities", {}); } function saveSelection() { const checkboxes = document.querySelectorAll(".priority-checkbox"); const selected = Array.from(checkboxes).map(cb => ({ id: parseInt(cb.dataset.id), subType: cb.dataset.subtype, selected: cb.checked ? 1 : 0 })); if (selected.length === 0) { setStatus("No priorities to save.", false); return; } setStatus("Saving...", null); socket.emit("save_ticket_priorities", { priorities: selected }); } function selectAll() { document.querySelectorAll(".priority-checkbox").forEach(cb => cb.checked = true); } function selectNone() { document.querySelectorAll(".priority-checkbox").forEach(cb => cb.checked = false); } function invertSelection() { document.querySelectorAll(".priority-checkbox").forEach(cb => cb.checked = !cb.checked); } // ── Rendering ───────────────────────────────────────────────────────────────── function renderPriorityList(priorities) { const container = document.getElementById("priorityList"); if (priorities.length === 0) { container.innerHTML = '