add more
Deploy / deploy (push) Successful in 9s

This commit is contained in:
2026-05-06 13:07:38 +02:00
parent 2970216158
commit 3d3895e47b
3 changed files with 75 additions and 13 deletions
+35 -3
View File
@@ -127,9 +127,17 @@ pre.raw-line { background: var(--bs-tertiary-bg); padding: .75rem; border-radius
<div class="d-flex gap-2">
<select class="form-select form-select-sm" id="filterSeverity" style="width:auto">
<option value="">All Severities</option>
<option value="emergency">Emergency</option>
<option value="critical_high">Critical High</option>
<option value="critical">Critical</option>
<option value="critical_low">Critical Low</option>
<option value="error">Error</option>
<option value="warning_high">Warning High</option>
<option value="warning">Warning</option>
<option value="warning_low">Warning Low</option>
<option value="notice">Notice</option>
<option value="info">Info</option>
<option value="debug">Debug</option>
</select>
<select class="form-select form-select-sm" id="filterStatus" style="width:auto">
<option value="">All Statuses</option>
@@ -391,9 +399,17 @@ pre.raw-line { background: var(--bs-tertiary-bg); padding: .75rem; border-radius
<div class="mb-3">
<label class="form-label">Severity</label>
<select class="form-select" name="severity" required>
<option value="emergency">Emergency</option>
<option value="critical_high">Critical High</option>
<option value="critical">Critical</option>
<option value="critical_low">Critical Low</option>
<option value="error">Error</option>
<option value="warning_high">Warning High</option>
<option value="warning" selected>Warning</option>
<option value="warning_low">Warning Low</option>
<option value="notice">Notice</option>
<option value="info">Info</option>
<option value="debug">Debug</option>
</select>
</div>
<div class="mb-3">
@@ -533,8 +549,15 @@ function toast(msg, type = 'success') {
}
function severityBadge(s) {
const map = { critical: 'danger', warning: 'warning', info: 'info' };
return `<span class="badge badge-severity bg-${map[s] || 'secondary'}">${s}</span>`;
const map = {
debug: 'secondary', info: 'info', notice: 'info',
warning_low: 'warning', warning: 'warning', warning_high: 'warning',
error: 'danger',
critical_low: 'danger', critical: 'danger', critical_high: 'danger',
emergency: 'dark',
};
const label = s.replace(/_/g, ' ');
return `<span class="badge badge-severity bg-${map[s] || 'secondary'}">${label}</span>`;
}
function statusBadge(s) {
@@ -593,8 +616,17 @@ async function loadDashboard() {
}
const chartEl = document.getElementById('chartContainer');
const severityGroups = { critical: ['critical_high','critical','critical_low','emergency'], warning: ['warning_high','warning','warning_low','error'], info: ['notice','info','debug'] };
const severityCounts = { critical: 0, warning: 0, info: 0 };
counts.forEach(c => { if (c.status !== 'resolved' && severityCounts[c.severity] !== undefined) severityCounts[c.severity] += parseInt(c.count); });
counts.forEach(c => {
if (c.status === 'resolved') return;
for (const [group, levels] of Object.entries(severityGroups)) {
if (levels.includes(c.severity)) {
severityCounts[group] += parseInt(c.count);
break;
}
}
});
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';