瀏覽代碼

feat: make Cases tab rows clickable in KPI dashboard

renderCasesTable rows now have onclick="openCaseDetail(cid)" and
cursor:pointer. Clicking any case row navigates to /case?cid=<id>
(the standard IRIS case detail page). Also exposes openCaseDetail
on window for the inline onclick handler.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Tum 2 天之前
父節點
當前提交
37a7aaa173
共有 1 個文件被更改,包括 9 次插入2 次删除
  1. 9 2
      iris-web/ui/src/pages/kpi_dashboard.js

+ 9 - 2
iris-web/ui/src/pages/kpi_dashboard.js

@@ -266,14 +266,15 @@ function renderCasesTable(cases) {
266 266
     return;
267 267
   }
268 268
   body.innerHTML = cases.map(c => {
269
+    const cid = c.case_id ?? '';
269 270
     const owner = (c.owner || {}).user_name || '—';
270 271
     const stateName = (c.state || {}).state_name || '—';
271 272
     const closed = c.close_date ? fmtDate(c.close_date) : '—';
272
-    return `<tr>
273
+    return `<tr style="cursor:pointer" onclick="openCaseDetail(${cid})">
273 274
       <td></td>
274 275
       <td>${statusDot({status_name: stateName})}</td>
275 276
       <td>${owner}</td>
276
-      <td>${c.case_id ?? ''}</td>
277
+      <td>${cid}</td>
277 278
       <td>${c.case_name || '—'}</td>
278 279
       <td>${c.case_soc_id || '—'}</td>
279 280
       <td>—</td>
@@ -292,6 +293,11 @@ function openAlertDetail(alertId, event) {
292 293
   window.location.href = `/alerts?alert_ids=${alertId}&cid=1`;
293 294
 }
294 295
 
296
+function openCaseDetail(caseId) {
297
+  if (!caseId) return;
298
+  window.location.href = `/case?cid=${caseId}`;
299
+}
300
+
295 301
 function refreshActive() {
296 302
   activeTab === 'alerts' ? loadAlerts() : loadCases();
297 303
 }
@@ -312,3 +318,4 @@ window.nextPage = nextPage;
312 318
 window.sortBy = sortBy;
313 319
 window.switchTab = switchTab;
314 320
 window.openAlertDetail = openAlertDetail;
321
+window.openCaseDetail = openCaseDetail;