fix: UI polish — notification history buttons, CSS test error handling, schedule time picker, empty state labels
All checks were successful
Lint & Test / test (push) Successful in 31s

- Notification history: replace text buttons with icon buttons, use modal-footer for proper positioning
- CSS test: reject 0-LED picture sources with clear error message, show WS close reason in UI
- Calibration: distribute LEDs by aspect ratio (16:9 default) instead of evenly across edges
- Value source schedule: replace native time input with custom HH:MM picker matching automation style
- Remove "No ... yet" empty state labels from all CardSection instances
This commit is contained in:
2026-03-22 20:58:13 +03:00
parent 52c8614a3c
commit f376622482
7 changed files with 201 additions and 39 deletions

View File

@@ -829,6 +829,15 @@ async def test_color_strip_ws(
if hasattr(stream, "configure"):
stream.configure(max(1, led_count))
# Reject picture sources with 0 calibration LEDs (no edges configured)
if stream.led_count <= 0:
csm.release(source_id, consumer_id)
await websocket.close(
code=4005,
reason="No LEDs configured. Open Calibration and set LED counts for each edge.",
)
return
# Clamp FPS to sane range
fps = max(1, min(60, fps))
_frame_interval = 1.0 / fps