feat(09-01): add inline driver upload to printer form with OOB refresh
- Add id="printer-form-driver-select" to driver <select> (OOB swap target) - Add sibling <form hx-post="/drivers/upload"> AFTER printer </form>, inside Alpine x-data div — avoids invalid nested form HTML - Hidden <input name="caller" value="printer_form"> sentinel triggers OOB path - Add hidden <div id="driver-list"> anchor for HTMX outerHTML swap target - Create tests/test_printer_form.py with test_printer_form_has_inline_driver_upload asserting stable select id, caller sentinel, and non-nested upload form Full non-e2e suite: 112 passed.
This commit is contained in:
@@ -27,7 +27,7 @@
|
||||
|
||||
<label>
|
||||
Driver
|
||||
<select name="driver_id">
|
||||
<select name="driver_id" id="printer-form-driver-select">
|
||||
<option value="">-- No driver --</option>
|
||||
{% for item in driver_data %}
|
||||
<option value="{{ item.driver.id }}"
|
||||
@@ -83,4 +83,17 @@
|
||||
|
||||
<button type="submit">Save Printer</button>
|
||||
</form>
|
||||
|
||||
<form hx-post="/drivers/upload"
|
||||
hx-target="#driver-list"
|
||||
hx-encoding="multipart/form-data"
|
||||
hx-swap="outerHTML">
|
||||
<input type="hidden" name="caller" value="printer_form">
|
||||
<label>
|
||||
Upload New Driver
|
||||
<input type="file" name="file" accept=".zip" required>
|
||||
</label>
|
||||
<button type="submit" class="secondary">Upload Driver</button>
|
||||
</form>
|
||||
<div id="driver-list" style="display:none"></div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user