// intelligence โ†’ knowledge table // depends on: app.js, intel-shared.js let knowledgeOffset = 0; async function loadKnowledge() { const companyId = document.getElementById("i-company").value; const type = document.getElementById("i-type").value; const sort = document.getElementById("i-sort").value; const params = new URLSearchParams({ limit: PAGE, offset: knowledgeOffset }); if (companyId) params.set("company_id", companyId); if (type) params.set("type", type); if (sort) params.set("sort", sort); const data = await api(`/admin/api/intelligence/knowledge?${params}`); intelRows = data.rows; document.getElementById("intel-thead").innerHTML = ` IDCompanyEventTypeDataEvent date`; document.getElementById("intel-tbody").innerHTML = data.rows.map(r => { let parsed = {}; try { parsed = JSON.parse(r.data); } catch (_) {} const summary = Object.values(parsed).filter(v => typeof v === "string").join(" ยท ").slice(0, 120); return ` ${r.id} ${escapeHtml(r.company_name)} ${r.event_id} ${escapeHtml(r.type)} ${escapeHtml(summary)} ${r.event_date ? r.event_date.slice(0,10) : "โ€”"} `; }).join(""); const total = data.total; document.getElementById("iPageInfo").textContent = `${knowledgeOffset + 1}โ€“${Math.min(knowledgeOffset + PAGE, total)} of ${total.toLocaleString()}`; document.getElementById("iPrevBtn").disabled = knowledgeOffset === 0; document.getElementById("iNextBtn").disabled = knowledgeOffset + PAGE >= total; } document.addEventListener("DOMContentLoaded", async () => { document.getElementById("iPrevBtn").onclick = () => { knowledgeOffset = Math.max(0, knowledgeOffset - PAGE); loadKnowledge(); }; document.getElementById("iNextBtn").onclick = () => { knowledgeOffset += PAGE; loadKnowledge(); }; document.getElementById("i-filter-btn").onclick = () => { knowledgeOffset = 0; loadKnowledge(); }; const ok = await loadIntelStatsRow(); if (!ok) return; await loadIntelCompanies(); loadKnowledge(); });