Admins can now surface dismissed alert types without waiting for the underlying data to change. Adds a collapsible "Restore dismissed" section below the active alerts with per-type checkboxes. - ALERT_METADATA map in adminAlerts.js as the single source of truth for slug → title/severity; detectors refactored to reference it - GET /api/admin/alerts/dismissed returns this admin's dismissals joined with metadata (title, severity, dismissedAt) - POST /api/admin/alerts/restore deletes dismissals by alertType[], returns the deleted count - AdminAlertsPanel fetches both active + dismissed; stays visible when either is non-empty; checkboxes + "Restore selected" button - adminAlertRestoreSchema validates the POST body against the enum - Auth guards test covers both new routes |
||
|---|---|---|
| .. | ||
| alerts | ||
| events | ||
| members | ||
| pre-registrants | ||
| series | ||
| dashboard.get.js | ||
| events.get.js | ||
| events.post.js | ||
| members.get.js | ||
| members.post.js | ||
| series.get.js | ||
| series.post.js | ||
| series.put.js | ||