refactor(system-info): reduce to Stripe-style status page
Reduce admin/system-info to a single focused status view: overall status banner, components list from existing health checks, and an environment meta table. Drops the Modules and Permissions tabs — those were dev-diagnostics already available via CLI. - Remove SystemInfoService + its test; wire the action directly to SystemHealthService and build meta inline - Extend SystemHealthService with per-check label + description so the UI speaks in customer terms while the CLI doctor path stays compatible - Rebuild the view on existing app-stats-table + app-empty-state primitives; add a small app-status-banner component for the headline signal - Align help-center nav label and i18n keys (de/en) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
74
web/css/components/app-status-banner.css
Normal file
74
web/css/components/app-status-banner.css
Normal file
@@ -0,0 +1,74 @@
|
||||
@layer components {
|
||||
.app-status-banner {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 18px;
|
||||
padding: calc(var(--app-spacing) * 1) calc(var(--app-spacing) * 1.25);
|
||||
border: 1px solid var(--badge-neutral-border);
|
||||
border-radius: var(--app-border-radius);
|
||||
background: var(--badge-neutral-bg);
|
||||
color: var(--badge-neutral-color);
|
||||
margin-block-end: var(--app-spacing);
|
||||
}
|
||||
|
||||
.app-status-banner[data-variant="success"] {
|
||||
background: var(--badge-success-bg);
|
||||
color: var(--badge-success-color);
|
||||
border-color: var(--badge-success-border);
|
||||
}
|
||||
|
||||
.app-status-banner[data-variant="warn"] {
|
||||
background: var(--badge-warn-bg);
|
||||
color: var(--badge-warn-color);
|
||||
border-color: var(--badge-warn-border);
|
||||
}
|
||||
|
||||
.app-status-banner[data-variant="danger"] {
|
||||
background: var(--badge-danger-bg);
|
||||
color: var(--badge-danger-color);
|
||||
border-color: var(--badge-danger-border);
|
||||
}
|
||||
|
||||
.app-status-banner > i {
|
||||
font-size: var(--text-3xl);
|
||||
line-height: var(--leading-none);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.app-status-banner-text {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 2px;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.app-status-banner-text h2 {
|
||||
margin: 0;
|
||||
font-size: var(--text-lg);
|
||||
line-height: var(--leading-snug);
|
||||
}
|
||||
|
||||
.app-status-banner-text small {
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.app-stats-table .app-status-description {
|
||||
display: block;
|
||||
color: var(--app-muted-color);
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.app-stats-table td.app-status-badge-cell {
|
||||
text-align: end;
|
||||
white-space: nowrap;
|
||||
width: 1%;
|
||||
}
|
||||
|
||||
@media (max-width: 600px) {
|
||||
.app-status-banner {
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
text-align: start;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -28,6 +28,7 @@
|
||||
@import url("components/app-list-titlebar.css");
|
||||
@import url("components/app-details-titlebar.css");
|
||||
@import url("components/app-dashboard-titlebar.css");
|
||||
@import url("components/app-status-banner.css");
|
||||
@import url("components/app-empty-state.css");
|
||||
@import url("components/app-details.css");
|
||||
@import url("components/app-details-card.css");
|
||||
|
||||
Reference in New Issue
Block a user