Add FPS sparkline charts, configurable poll interval, and uptime interpolation

Replace text FPS labels with Chart.js sparklines on running targets,
use emoji icons for metrics, add in-place DOM updates to preserve
chart animations, and add a 1-10s poll interval slider that controls
all dashboard timers. Uptime now ticks every second via client-side
interpolation regardless of poll interval.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-19 03:04:17 +03:00
parent ef925ad0a9
commit 45634836b6
8 changed files with 290 additions and 19 deletions
+48 -1
View File
@@ -3284,12 +3284,32 @@ input:-webkit-autofill:focus {
flex: 0 0 auto;
}
.dashboard-poll-wrap {
margin-left: auto;
display: flex;
align-items: center;
gap: 3px;
}
.dashboard-poll-slider {
width: 48px;
height: 12px;
accent-color: var(--primary-color);
cursor: pointer;
}
.dashboard-poll-value {
font-size: 0.6rem;
color: var(--text-secondary);
min-width: 18px;
}
.dashboard-target {
display: grid;
grid-template-columns: 1fr auto auto;
align-items: center;
gap: 12px;
padding: 8px 12px;
padding: 6px 12px;
background: var(--card-bg);
border: 1px solid var(--border-color);
border-radius: 6px;
@@ -3358,6 +3378,33 @@ input:-webkit-autofill:focus {
letter-spacing: 0.3px;
}
.dashboard-fps-metric {
display: flex;
align-items: center;
gap: 6px;
min-width: auto;
}
.dashboard-fps-sparkline {
position: relative;
width: 100px;
height: 36px;
}
.dashboard-fps-label {
display: flex;
flex-direction: column;
align-items: center;
min-width: 36px;
line-height: 1.1;
}
.dashboard-fps-target {
font-weight: 400;
opacity: 0.5;
font-size: 0.75rem;
}
.dashboard-target-actions {
display: flex;
align-items: center;