Full-stack burn-in orchestration dashboard (Stages 1–6d complete): FastAPI backend, SQLite/WAL, SSE live dashboard, mock TrueNAS server, SMTP/webhook notifications, batch burn-in, settings UI, audit log, stats page, cancel SMART/burn-in, drag-to-reorder stages. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
87 lines
3.7 KiB
HTML
87 lines
3.7 KiB
HTML
<div id="start-modal" class="modal-overlay" hidden aria-modal="true" role="dialog">
|
|
<div class="modal">
|
|
<div class="modal-header">
|
|
<h2 class="modal-title" id="modal-title">Burn-In</h2>
|
|
<button class="modal-close" id="modal-close-btn" aria-label="Close">✕</button>
|
|
</div>
|
|
|
|
<div class="modal-body">
|
|
|
|
<!-- Drive info -->
|
|
<div class="modal-drive-info">
|
|
<div class="modal-drive-row">
|
|
<span class="modal-devname" id="modal-devname">—</span>
|
|
<span class="chip chip-unknown" id="modal-health">UNKNOWN</span>
|
|
</div>
|
|
<div class="modal-drive-sub">
|
|
<span id="modal-model">—</span>
|
|
·
|
|
<span id="modal-size">—</span>
|
|
·
|
|
<span class="mono" id="modal-serial-display">—</span>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Stage selection (drag to reorder) -->
|
|
<div class="form-group">
|
|
<div class="form-label">Stages to run <span class="stage-drag-hint">— drag to reorder</span></div>
|
|
<div class="stage-checks" id="stage-order-list">
|
|
<label class="stage-check" draggable="true">
|
|
<span class="drag-handle" title="Drag to reorder">⠿</span>
|
|
<input type="checkbox" id="stage-short" checked onchange="handleStageChange()">
|
|
<span>
|
|
<strong>Short SMART</strong>
|
|
<span class="stage-note-inline">— non-destructive, ~2 min</span>
|
|
</span>
|
|
</label>
|
|
<label class="stage-check" draggable="true">
|
|
<span class="drag-handle" title="Drag to reorder">⠿</span>
|
|
<input type="checkbox" id="stage-long" checked onchange="handleStageChange()">
|
|
<span>
|
|
<strong>Long SMART</strong>
|
|
<span class="stage-note-inline">— non-destructive, ~several hours</span>
|
|
</span>
|
|
</label>
|
|
<label class="stage-check" draggable="true">
|
|
<span class="drag-handle" title="Drag to reorder">⠿</span>
|
|
<input type="checkbox" id="stage-surface" checked onchange="handleStageChange()">
|
|
<span>
|
|
<strong>Surface Validate</strong>
|
|
<span class="stage-tag stage-tag-destructive">destructive</span>
|
|
<span class="stage-note-inline">— full-surface write test (slow)</span>
|
|
</span>
|
|
</label>
|
|
</div>
|
|
<div class="stage-always-note">Precheck & final health check always run.</div>
|
|
</div>
|
|
|
|
<!-- Destructive warning — shown only when surface validate is selected -->
|
|
<div id="surface-warning" class="confirm-warning">
|
|
⚠ Surface Validate will <strong>permanently overwrite all data</strong> on this drive.
|
|
</div>
|
|
|
|
<!-- Operator name -->
|
|
<div class="form-group">
|
|
<label class="form-label" for="operator-input">Operator</label>
|
|
<input class="form-input" type="text" id="operator-input"
|
|
placeholder="Your name" autocomplete="name" maxlength="64">
|
|
</div>
|
|
|
|
<!-- Serial confirmation — shown only when surface validate is selected -->
|
|
<div class="form-group" id="serial-field">
|
|
<label class="form-label" for="confirm-serial">
|
|
Type the serial number to confirm destructive test
|
|
</label>
|
|
<input class="form-input form-input-confirm" type="text" id="confirm-serial"
|
|
placeholder="" autocomplete="off" spellcheck="false">
|
|
<div class="confirm-hint" id="confirm-hint"></div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="modal-footer">
|
|
<button class="btn-secondary" id="modal-cancel-btn">Cancel</button>
|
|
<button class="btn-danger" id="modal-start-btn" disabled>Start Burn-In</button>
|
|
</div>
|
|
</div>
|
|
</div>
|