Improve container details UX, dashboard shortcuts, and RPC rate limits.
Release rolling / release (push) Successful in 8m38s

Tighten container detail tabs into a fit-to-viewport layout with a richer
overview, debounced process filters, and a readable process table. Make
dashboard KPI cards navigate to resource views (with status filters that
reset on leave), and raise per-peer RPC limits so normal UI polling no
longer trips rate limiting.
This commit is contained in:
Raven Scott
2026-07-13 17:25:14 -04:00
parent f943ea92c2
commit 9680437fab
6 changed files with 2303 additions and 240 deletions
+121 -1
View File
@@ -819,6 +819,60 @@ body {
display: none !important;
}
/* Container details — fit-to-viewport shell (no wasted chrome / double scroll) */
#container-details-view.view {
display: flex !important;
flex-direction: column;
overflow: hidden !important;
height: 100% !important;
max-height: 100%;
min-height: 0;
padding: 12px 16px 10px !important;
}
#container-details-view.hidden {
display: none !important;
}
#container-details-view > .container-details-layout {
flex: 1 1 auto;
min-height: 0;
height: 100%;
max-height: 100%;
display: flex;
flex-direction: column;
overflow: hidden;
padding-left: 0 !important;
padding-right: 0 !important;
padding-bottom: 0 !important;
box-sizing: border-box;
}
#container-details-view .container-details-tab-content {
flex: 1 1 auto;
min-height: 0;
overflow: hidden;
}
#container-details-view .detail-fill-panel,
#container-details-view #logs-pane > .detail-fill-panel,
#container-details-view #terminal-pane > .detail-fill-panel {
min-height: 0;
flex: 1 1 auto;
}
#container-details-view .logs-container,
#container-details-view .terminal-container-wrapper {
min-height: 0;
max-height: none !important;
height: auto !important;
}
#container-details-view .stat-card:hover,
#container-details-view .info-card:hover {
transform: none;
}
#dashboard-view .dashboard-layout.dash {
flex: 1 1 auto;
min-height: 0;
@@ -945,7 +999,31 @@ body {
linear-gradient(145deg, rgba(26, 34, 46, 0.95), rgba(15, 19, 26, 0.9));
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.22);
overflow: hidden;
transition: border-color 0.18s ease, box-shadow 0.18s ease;
transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.15s ease;
/* reset button styles when KPIs are interactive */
color: inherit;
font: inherit;
text-align: left;
width: 100%;
margin: 0;
appearance: none;
-webkit-appearance: none;
}
.dash-kpi--link {
cursor: pointer;
}
.dash-kpi--link:hover {
border-color: rgba(52, 211, 153, 0.28);
box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28), 0 0 0 1px rgba(52, 211, 153, 0.08);
transform: translateY(-1px);
}
.dash-kpi--link:focus-visible {
outline: none;
border-color: var(--accent-primary);
box-shadow: 0 0 0 3px rgba(45, 212, 191, 0.2), 0 10px 28px rgba(0, 0, 0, 0.28);
}
.dash-kpi:hover {
@@ -1907,6 +1985,48 @@ textarea::placeholder {
overflow-y: visible;
}
/* Processes tab: allow vertical scroll inside the fill panel */
#container-details-view #container-top-content.table-responsive {
overflow-y: auto !important;
overflow-x: hidden !important;
flex: 1 1 auto;
min-height: 0;
}
/* Process table: keep real table layout; no ellipsis on values */
#container-details-view .procs-table {
table-layout: fixed !important;
width: 100% !important;
}
#container-details-view .procs-table th,
#container-details-view .procs-table td {
display: table-cell !important;
overflow: visible !important;
text-overflow: clip !important;
max-width: none;
}
#container-details-view .procs-table td code {
display: inline !important;
max-width: none !important;
overflow: visible !important;
text-overflow: clip !important;
white-space: inherit !important;
}
#container-details-view .procs-table td.procs-td-cmd {
white-space: normal !important;
word-break: break-word !important;
overflow-wrap: anywhere !important;
}
#container-details-view .procs-table td.procs-td-cmd code {
white-space: pre-wrap !important;
word-break: break-word !important;
overflow-wrap: anywhere !important;
}
.view .table-responsive > .table,
.view table.table {
width: 100% !important;
+12 -6
View File
@@ -521,7 +521,7 @@ kbd {
align-items: center;
}
/* xterm / logs production layout */
/* xterm / logs production layout — fill parent, no fixed vh that forces page scroll */
.xterm-host,
.terminal-xterm-container,
#container-terminal-xterm,
@@ -529,19 +529,25 @@ kbd {
#docker-terminal-container {
width: 100%;
height: 100%;
min-height: 0;
}
#terminal-container,
#docker-terminal-container {
min-height: 280px;
}
.terminal-container-wrapper {
display: flex;
flex-direction: column;
min-height: 360px;
height: calc(100vh - 320px);
max-height: 70vh;
flex: 1 1 auto;
min-height: 180px;
height: auto;
max-height: none;
background: #0b0f14;
border-radius: 10px;
border-radius: 0 0 10px 10px;
overflow: hidden;
border: 1px solid rgba(255, 255, 255, 0.08);
border: none;
}
#container-terminal-xterm {
+1089 -9
View File
File diff suppressed because it is too large Load Diff