+5
-5
@@ -563,16 +563,16 @@ async function loadDashboard() {
|
||||
const counts = Array.isArray(countsRes) ? countsRes : (countsRes.data || []);
|
||||
const alerts = alertsRes.data || [];
|
||||
|
||||
const total = counts.reduce((s, c) => s + parseInt(c.count), 0);
|
||||
const critical = counts.filter(c => c.severity === 'critical').reduce((s, c) => s + parseInt(c.count), 0);
|
||||
const warning = counts.filter(c => c.severity === 'warning').reduce((s, c) => s + parseInt(c.count), 0);
|
||||
const total = counts.filter(c => c.status !== 'resolved').reduce((s, c) => s + parseInt(c.count), 0);
|
||||
const critical = counts.filter(c => c.severity === 'critical' && c.status !== 'resolved').reduce((s, c) => s + parseInt(c.count), 0);
|
||||
const warning = counts.filter(c => c.severity === 'warning' && c.status !== 'resolved').reduce((s, c) => s + parseInt(c.count), 0);
|
||||
const open = counts.filter(c => c.status === 'open').reduce((s, c) => s + parseInt(c.count), 0);
|
||||
|
||||
document.getElementById('statCards').innerHTML = `
|
||||
<div class="col-md-3"><div class="card stat-card critical"><div class="card-body"><h6 class="card-subtitle text-secondary mb-1">Critical</h6><h3 class="mb-0 text-danger">${critical}</h3></div></div></div>
|
||||
<div class="col-md-3"><div class="card stat-card warning"><div class="card-body"><h6 class="card-subtitle text-secondary mb-1">Warnings</h6><h3 class="mb-0 text-warning">${warning}</h3></div></div></div>
|
||||
<div class="col-md-3"><div class="card stat-card"><div class="card-body"><h6 class="card-subtitle text-secondary mb-1">Open</h6><h3 class="mb-0">${open}</h3></div></div></div>
|
||||
<div class="col-md-3"><div class="card stat-card"><div class="card-body"><h6 class="card-subtitle text-secondary mb-1">Total</h6><h3 class="mb-0">${total}</h3></div></div></div>
|
||||
<div class="col-md-3"><div class="card stat-card"><div class="card-body"><h6 class="card-subtitle text-secondary mb-1">Total Active</h6><h3 class="mb-0">${total}</h3></div></div></div>
|
||||
`;
|
||||
|
||||
document.getElementById('criticalBadge').textContent = critical;
|
||||
@@ -594,7 +594,7 @@ async function loadDashboard() {
|
||||
|
||||
const chartEl = document.getElementById('chartContainer');
|
||||
const severityCounts = { critical: 0, warning: 0, info: 0 };
|
||||
counts.forEach(c => { if (severityCounts[c.severity] !== undefined) severityCounts[c.severity] += parseInt(c.count); });
|
||||
counts.forEach(c => { if (c.status !== 'resolved' && severityCounts[c.severity] !== undefined) severityCounts[c.severity] += parseInt(c.count); });
|
||||
const maxVal = Math.max(...Object.values(severityCounts), 1);
|
||||
chartEl.innerHTML = `<div class="d-flex align-items-end gap-2" style="height:120px">${Object.entries(severityCounts).map(([sev, cnt]) => {
|
||||
const color = { critical: 'danger', warning: 'warning', info: 'info' }[sev] || 'secondary';
|
||||
|
||||
Reference in New Issue
Block a user