mirror of
https://github.com/shankar0123/certctl.git
synced 2026-06-09 18:58:59 +00:00
8eea4fce03
Three new GUI surfaces closing the backend-to-frontend gap for V2: - Discovery triage page: summary stats bar, DataTable with claim/dismiss actions, status/agent filters, collapsible scan history panel - Network scan target management: CRUD with create modal, enable/disable toggle, Scan Now button, last scan results display - Jobs page approval workflow: Approve/Reject buttons for AwaitingApproval jobs, rejection reason modal, pending approval banner with count, AwaitingApproval/AwaitingCSR added to status filter dropdown Also adds 13 new frontend tests, 4 API types, 12 API client functions, 2 sidebar nav items, 2 routes, and discovery status badge styles. Docs updated: README, architecture, quickstart, demo-advanced, CLAUDE.md, roadmap. Version bumped to v2.0.4. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
37 lines
1.3 KiB
TypeScript
37 lines
1.3 KiB
TypeScript
const statusStyles: Record<string, string> = {
|
|
// Certificate statuses
|
|
Active: 'badge-success',
|
|
Expiring: 'badge-warning',
|
|
Expired: 'badge-danger',
|
|
RenewalInProgress: 'badge-info',
|
|
PendingIssuance: 'badge-info',
|
|
Archived: 'badge-neutral',
|
|
Revoked: 'badge-danger',
|
|
// Job statuses
|
|
Pending: 'badge-info',
|
|
AwaitingCSR: 'badge-info',
|
|
AwaitingApproval: 'badge-info',
|
|
Running: 'badge-warning',
|
|
Completed: 'badge-success',
|
|
Failed: 'badge-danger',
|
|
Cancelled: 'badge-neutral',
|
|
// Agent statuses
|
|
Online: 'badge-success',
|
|
Offline: 'badge-danger',
|
|
Stale: 'badge-warning',
|
|
// Discovery statuses
|
|
Unmanaged: 'badge-warning',
|
|
Managed: 'badge-success',
|
|
Dismissed: 'badge-neutral',
|
|
// Notification statuses
|
|
sent: 'badge-success',
|
|
pending: 'badge-warning',
|
|
failed: 'badge-danger',
|
|
read: 'badge-neutral',
|
|
};
|
|
|
|
export default function StatusBadge({ status }: { status: string }) {
|
|
const cls = statusStyles[status] || 'badge-neutral';
|
|
return <span className={`badge ${cls}`}>{status}</span>;
|
|
}
|