Skip to content

Commit 052059e

Browse files
committed
서버자산 테이블 단순화(중요도·통제·메트릭→호스트 팝업) + 증적공백 작업큐를 대시보드로 이동
1 parent 4f61b08 commit 052059e

1 file changed

Lines changed: 12 additions & 17 deletions

File tree

src/mori_soc/api/templates.py

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2885,6 +2885,15 @@ def render_user_dashboard_html(
28852885
<div id=\"infra_status_body\" style=\"margin-top:10px\"><span class=\"empty\" data-i18n=\"dash.status.loading\">로딩 중…</span></div>
28862886
</section>
28872887
<!-- PC 자산 현황 (Fleet: 전체/온라인/오프라인) — 자산 탭에서 이동 -->
2888+
<!-- 증적 공백 / 오늘의 작업 큐 (admin·security 전용) -->
2889+
<section class=\"card\" id=\"evidence_gap_card\">
2890+
<div style=\"display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px\">
2891+
<h2 style=\"margin:0\" data-i18n=\"dash.gap.title\">오늘의 작업 큐 (증적 공백)</h2>
2892+
<span id=\"evidence_gap_ts\" style=\"font-size:12px;color:#4b5563\"></span>
2893+
</div>
2894+
<div class=\"subtext\" data-i18n=\"dash.gap.sub\">아직 증적이 안 남은 미조치 항목이에요. 카드를 누르면 해당 탭으로 가요.</div>
2895+
<div id=\"evidence_gap_box\" style=\"margin-top:10px\"><span class=\"empty\" data-i18n=\"dash.dyn.loading\">로딩 중…</span></div>
2896+
</section>
28882897
<section class=\"card\" id=\"fleet_status_section\">
28892898
<div style=\"display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px\">
28902899
<h2 style=\"margin:0\" data-i18n=\"dash.fleet.title\">PC 자산 현황</h2>
@@ -3079,15 +3088,6 @@ def render_user_dashboard_html(
30793088

30803089
<!-- Trivy Vulnerability Section -->
30813090
<div id=\"assets_trivy_section\" class=\"hidden\">
3082-
<!-- 증적 공백 / 오늘의 작업 큐 (admin·security 전용) -->
3083-
<section class=\"card\" id=\"evidence_gap_card\">
3084-
<div style=\"display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px\">
3085-
<h2 style=\"margin:0\" data-i18n=\"dash.gap.title\">오늘의 작업 큐 (증적 공백)</h2>
3086-
<span id=\"evidence_gap_ts\" style=\"font-size:12px;color:#4b5563\"></span>
3087-
</div>
3088-
<div class=\"subtext\" data-i18n=\"dash.gap.sub\">아직 증적이 안 남은 미조치 항목이에요. 카드를 누르면 해당 탭으로 가요.</div>
3089-
<div id=\"evidence_gap_box\" style=\"margin-top:10px\"><span class=\"empty\" data-i18n=\"dash.dyn.loading\">로딩 중…</span></div>
3090-
</section>
30913091
<!-- 위험성 평가 매트릭스 (R-4) — 더블클릭 시 팝업 (카드 요약은 여기, 매트릭스는 모달) -->
30923092
<section class=\"card\" id=\"risk_matrix_card\" ondblclick=\"openRiskMatrixModal()\" style=\"cursor:pointer\">
30933093
<div style=\"display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px\">
@@ -5045,6 +5045,9 @@ def render_user_dashboard_html(
50455045
${_kv(tt('dash.dyn.lbl.platform','플랫폼'), escapeHtml((h.platform||'').trim()||'-'))}
50465046
${_kv(tt('dash.mine.importance','중요도'), impStr)}
50475047
${_kv(tt('dash.mine.category','분류'), escapeHtml((h.category||'').trim()||'-'))}
5048+
${h.isms_control?_kv(tt('dash.dyn.lbl.isms_control','ISMS-P 통제'), `<span style=\\"color:#2563eb\\">${escapeHtml(h.isms_control)}</span>`):''}
5049+
${h.iso27001_control?_kv('ISO 27001', `<span style=\\"color:#2563eb\\">${escapeHtml(h.iso27001_control)}</span>`):''}
5050+
${h.latest_metric?_kv(tt('dash.dyn.lbl.latest_metric','최근 메트릭'), escapeHtml(h.latest_metric)+': '+escapeHtml(h.latest_value||'-')):''}
50485051
${_kv(tt('dash.dyn.lbl.status','상태'), `<span class=\\\"badge ${h.status==='online'?'online':h.status==='offline'?'offline':'unknown'}\\\">${escapeHtml(h.status||'-')}</span>`)}
50495052
${_kv('IP', `<span style=\\\"font-family:monospace\\\">${escapeHtml(h.primary_ip||'-')}</span>`)}
50505053
${_kv(tt('dash.dyn.lbl.owner_team','담당자 / 팀'), ownerCell)}
@@ -5186,25 +5189,17 @@ def render_user_dashboard_html(
51865189
return `<tr ondblclick=\"openHostDetail('${escapeHtml(h.hostname)}')\" style=\"cursor:pointer\" title=\"${tt('dash.mine.dblclick','더블클릭하면 상세·조치현황')}\">
51875190
<td><strong>${escapeHtml(h.hostname)}</strong>${zabbixLink ? '<br>' + zabbixLink : ''}</td>
51885191
<td style=\"font-size:12px\">${escapeHtml(h.category || '-')}</td>
5189-
${showImp ? `<td>${impBadge}</td>` : ''}
5190-
${showIsms ? `<td style=\"font-size:11px;color:#2563eb\">${escapeHtml(h.isms_control || '-')}</td>` : ''}
5191-
${showIso ? `<td style=\"font-size:11px;color:#2563eb\">${escapeHtml(h.iso27001_control || '-')}</td>` : ''}
51925192
<td>${escapeHtml(h.primary_ip)}</td>
51935193
<td><span class=\"badge ${statusCls}\">${escapeHtml(h.status)}</span></td>
5194-
<td style=\"font-size:12px;color:#4b5563\">${metricStr}</td>
51955194
<td>${ownerStr}</td>
51965195
</tr>`;
51975196
}).join('');
51985197
containerEl.innerHTML = `<table style=\"width:100%;border-collapse:collapse;font-size:13px;\">
51995198
<thead><tr style=\"background:#f9fafb;\">
52005199
<th style=\"padding:8px;color:#2563eb\">${tt('dash.dyn.lbl.hostname','호스트명')}</th>
52015200
<th style=\"padding:8px;color:#2563eb\">${tt('dash.dyn.lbl.category','분류')}</th>
5202-
${showImp ? '<th style=\"padding:8px;color:#a16207\">' + tt('dash.dyn.lbl.importance','중요도') + '</th>' : ''}
5203-
${showIsms ? '<th style=\"padding:8px;color:#2563eb\">' + tt('dash.dyn.lbl.isms_control','ISMS-P 통제') + '</th>' : ''}
5204-
${showIso ? '<th style=\"padding:8px;color:#2563eb\">ISO 27001</th>' : ''}
52055201
<th style=\"padding:8px;color:#2563eb\">IP</th>
52065202
<th style=\"padding:8px;color:#2563eb\">${tt('dash.dyn.lbl.status','상태')}</th>
5207-
<th style=\"padding:8px;color:#4b5563\">${tt('dash.dyn.lbl.latest_metric','최근 메트릭')}</th>
52085203
<th style=\"padding:8px;color:#16a34a\">${tt('dash.dyn.lbl.owner_team','담당자 / 팀')}</th>
52095204
</tr></thead>
52105205
<tbody>${rows}</tbody>

0 commit comments

Comments
 (0)