dragonflight/services/web-ui/public/js
opencode a44d8bd7c9 feat(admin): live video-presence indicators on cluster DeckLink ports
Adds per-port video signal state to the admin Cluster panel:

- New GET /cluster/devices/blackmagic/signal endpoint joins recorders by
  node_id+device_index and queries each active capture container's
  /capture/status (local: http://recorder-<id>:3001, remote: api_url/
  sidecar/<container_id>/status).  Returns receiving/connecting/lost/
  error/idle/no-recorder per port plus framesReceived and currentFps.

- bmd-card.js render() now accepts portSignals (Map or object) and
  overlays a colored dot on each BNC connector with pulse animation
  for receiving/connecting states.

- screens-admin.jsx Cluster panel polls the new endpoint every 5s,
  feeds the signal map into both the port chips (now show
  RECEIVING/CONNECTING/LOST + fps) and the BMD SVG card diagram
  rendered below them via a new BmdCardPanel component.

- styles-fixes.css adds bmd-card-* styles for the SVG diagram and
  bmd-port-signal --pulse animation.
2026-05-26 22:02:38 +00:00
..
auth-guard.js web-ui: tag IN DEV pages in sidebar from auth-guard 2026-05-21 09:59:29 -04:00
bmd-card.js feat(admin): live video-presence indicators on cluster DeckLink ports 2026-05-26 22:02:38 +00:00
edit.js feat(editor): splice tool (B/S key + Split button), thumbnail hydration via signed URL, enable Export (draft for now) 2026-05-18 10:25:53 -04:00
preview.js feat(growing-files): Phase 1 - live HLS preview during recording 2026-05-18 07:29:50 -04:00
selection.js feat: multi-select + bulk move/copy/delete, brand blue, hardhat loader 2026-05-17 14:48:34 -04:00
timecode.js fix(timecode): correct framesToTC for all frames beyond position 3 2026-05-19 00:01:18 -04:00
timeline.js Fix editor timeline interactions 2026-05-25 01:10:45 -04:00
topbar-strip.js fix(topbar-strip): escape pageName() output before innerHTML insertion 2026-05-19 00:46:48 -04:00