Surface WAIT_USER and add Confirm to the browser client

Ports show_user_message() from client/brewpi_gui.py: a plain <dialog>
pops with the step's user_message the instant WAIT_USER is newly
entered (tracked via a prevState comparison in onSudChanged()'s State
branch), and sends {"Sud": {"Confirm": true}} on the dialog's close
event - covers both the OK button and Escape dismissal.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0189FkmyJkY77HqsNomr1DwV
This commit is contained in:
2026-06-25 00:21:49 +02:00
co-authored by Claude Sonnet 4.6
parent 83fd16e46c
commit 0e343655b7
5 changed files with 49 additions and 18 deletions
+5 -3
View File
@@ -540,9 +540,11 @@ unresolved - every step still needs `default.step` merged in), and the
`StepPlate`/`_update_step_plates()`/`update_status_step_label()` logic
behind the Progress tab and status line. New/Load/Save (a plain
`<input type="file">`/`FileReader` and a `Blob`/`<a download>` standing in
for the desktop app's native file dialogs) and Start/Stop are wired up too
- see `web/TODO.md` for what's still missing (Pause/Confirm, `WAIT_USER`
surfacing, and more). Deliberately deferred rather than stubbed: the
for the desktop app's native file dialogs), Start/Stop, and Confirm (a
plain `<dialog>` pops with the step's message on `WAIT_USER` and sends
Confirm when dismissed) are all wired up too - see `web/TODO.md` for
what's still missing (Pause, and more). Deliberately deferred rather than
stubbed: the
Automatic tab's forecast-vs-actual plot and the live Plot tab's strip
charts - both need a charting approach, revisit once Manual + Progress are
validated.