diff --git a/dashboard/src/App.jsx b/dashboard/src/App.jsx
index c13ad5c..1ce1e2c 100644
--- a/dashboard/src/App.jsx
+++ b/dashboard/src/App.jsx
@@ -28,7 +28,7 @@ export default function App() {
if (t.completed !== want) return false
}
const strFields = ['interference', 'device', 'rotation', 'test_point',
- 'rssi', 'station', 'band', 'channel', 'bandwidth', 'direction']
+ 'rssi', 'station', 'band', 'channel', 'bandwidth', 'direction', 'throttled']
for (const f of strFields) {
if (filters[f] && t[f] !== filters[f]) return false
}
@@ -99,6 +99,11 @@ export default function App() {
label={d.name}
value={`${(d.completionRate * 100).toFixed(1)}%`}
sub={`${d.completed} / ${d.total}`}
+ detailsPosition="right"
+ details={['COE', 'P2P', 'P3P'].map((type) => {
+ const typeStats = d.byType?.[type] ?? { completed: 0, total: 0 }
+ return `${type}: ${typeStats.completed}/${typeStats.total}`
+ })}
/>
{label}
-{value}
- {sub &&{sub}
} +{label}
+{value}
+ {sub &&{sub}
} ++ {line} +
+ ))} ++ {line} +
+ ))} +Time Elapsed
-+
{fmt(elapsedSeconds) ?? '—'}
{estimatedRemainingSeconds != null ? fmt(estimatedRemainingSeconds) : '—'}
- {days && ( -{days}
+ {daysLabel && ( +{daysLabel}
)}