From 5f322d1110d32ef651355e45aa4aa4925b5f3168 Mon Sep 17 00:00:00 2001 From: cproudlock Date: Thu, 14 May 2026 20:08:05 -0400 Subject: [PATCH] imaging: operator-friendly stage labels per bay card Was showing the raw push label (e.g. "Run-ShopfloorSetup: handoff to Monitor-IntuneProgress") which only makes sense if you know the playbook internals. Added a stage_index -> (label, hint) lookup table: 1 Booting from PXE WinPE loaded 2 Configuring Windows First boot baseline scripts 3 Installing apps 09-Setup- 4 Apps installed preparing for enrollment 5 Enrolling in Intune PPKG + AAD/Intune join 6 Waiting on first Intune sync post-PPKG settle (~120s) 7 Registered - assign category idx=7 with QR + set-category btn 8 Imaging complete lockdown applied Friendly label + one-line hint shown bold, raw stage string shown underneath in small monospace for techs who want the playbook breadcrumb. Stage index/total folded into a badge next to the "Current stage" header so it doesn't need its own column. Co-Authored-By: Claude Opus 4.7 (1M context) --- webapp/templates/imaging.html | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/webapp/templates/imaging.html b/webapp/templates/imaging.html index 6e98efa..abd591b 100644 --- a/webapp/templates/imaging.html +++ b/webapp/templates/imaging.html @@ -36,6 +36,17 @@ window.addEventListener('DOMContentLoaded', scheduleImagingReload); {% endif %} +{% set stage_labels = { + 1: ('Booting from PXE', 'WinPE loaded - applying Windows image to disk.'), + 2: ('Configuring Windows', 'First boot. Running shopfloor setup baseline scripts.'), + 3: ('Installing apps', 'Type-specific app installs (eDNC, UDC, NTLARS, etc).'), + 4: ('Apps installed', 'Type-specific scripts complete. Preparing for Intune enrollment.'), + 5: ('Enrolling in Intune', 'PPKG installing - device joining Azure AD + Intune. ~5-10 min, reboot to follow.'), + 6: ('Waiting on first Intune sync','Post-PPKG settle (~120s). Triggering Schedule #3 sync repeatedly.'), + 7: ('Registered - assign category','Device ID captured. Click "set category" to put bay in the right Intune group. Then wait for LAPS reboot.'), + 8: ('Imaging complete', 'Lockdown applied. Bay rebooted into ShopFloor session. Ready for production.') +} %} + {% for s in sessions %} {% set stage_idx = s.stage_index | int(0) %} {% set stage_total = s.stage_total | int(0) %} @@ -43,6 +54,7 @@ window.addEventListener('DOMContentLoaded', scheduleImagingReload); {% set is_failed = s.status == 'failed' %} {% set is_done = s.status == 'succeeded' %} {% set border = 'danger' if is_failed else ('success' if is_done else 'primary') %} + {% set friendly = stage_labels.get(stage_idx, ('Stage ' ~ stage_idx, '')) %}
@@ -70,13 +82,11 @@ window.addEventListener('DOMContentLoaded', scheduleImagingReload);
-
-
Current stage
-
{{ s.current_stage or '-' }}
-
-
-
Stage
-
{{ stage_idx }} / {{ stage_total or '?' }}
+
+
Current stage {{ stage_idx }}/{{ stage_total or '?' }}
+
{{ friendly[0] }}
+ {% if friendly[1] %}
{{ friendly[1] }}
{% endif %} + {% if s.current_stage %}
{{ s.current_stage }}
{% endif %}
Started