Add SpoolBuddy device management settings tab

Previously, if a SpoolBuddy daemon crashed during registration it could
  end up registered twice. The kiosk UI silently used only the first
  device and there was no UI path to remove the orphan — administrators
  had to delete the row directly in the database.

  Adds a new Settings → SpoolBuddy tab that lists every registered device
  with live connection status, system details (firmware, IP, CPU temp,
  memory, disk, OS, daemon + system uptime), hardware health flags, and
  an Unregister action gated by a confirm modal. A yellow banner appears
  whenever more than one device is registered to flag likely crash-
  duplicates. Backend adds DELETE /spoolbuddy/devices/{device_id} gated
  by inventory:delete and broadcasts spoolbuddy_unregistered over WS so
  other tabs refresh immediately.

  The tab header shows a device-count pill and a green/gray status bullet
  reflecting whether at least one registered device is online. An online
  device that is accidentally unregistered re-registers itself on its
  next heartbeat. Localized in English, German, and Japanese. The kiosk
  layout still uses devices[0] — once the orphan is unregistered, the
  remaining device naturally becomes [0].
This commit is contained in:
maziggy
2026-04-11 10:22:59 +02:00
parent a0705fed5a
commit b5c8c2cdf5
15 changed files with 1188 additions and 462 deletions
+5
View File
@@ -5217,6 +5217,11 @@ export const spoolbuddyApi = {
getDevices: () =>
request<SpoolBuddyDevice[]>('/spoolbuddy/devices'),
deleteDevice: (deviceId: string) =>
request<{ status: string; device_id: string }>(`/spoolbuddy/devices/${deviceId}`, {
method: 'DELETE',
}),
tare: (deviceId: string) =>
request<{ status: string }>(`/spoolbuddy/devices/${deviceId}/calibration/tare`, {
method: 'POST',