ui: move add device + firmware to top of Tuerschilder page

This commit is contained in:
Christian Mueller 2026-04-24 14:05:29 +02:00
parent 10d90a3739
commit ed34ea95ca

View File

@ -39,6 +39,70 @@
</div>
{% endif %}
<!-- Add Device + Firmware oben -->
<div class="row g-3 mb-4">
<div class="col-md-6">
<div class="card">
<div class="card-header">
<h6 class="mb-0"><i class="bi bi-plus-circle"></i> Neues Tuerschild</h6>
</div>
<div class="card-body">
<form method="post" action="/api/devices">
<div class="row g-2">
<div class="col-12">
<input type="text" name="hostname" class="form-control form-control-sm"
placeholder="doorlight0027.intra.volksheimstaette.de" required>
</div>
<div class="col-8">
<input type="text" name="name" class="form-control form-control-sm"
placeholder="Name (optional)">
</div>
<div class="col-4">
<input type="number" name="segment_count" class="form-control form-control-sm"
value="2" min="1" max="10" title="Segmente">
</div>
<div class="col-12">
<button type="submit" class="btn btn-primary btn-sm w-100">
<i class="bi bi-plus"></i> Hinzufuegen
</button>
</div>
</div>
</form>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card">
<div class="card-header">
<h6 class="mb-0"><i class="bi bi-cloud-arrow-up"></i> Firmware</h6>
</div>
<div class="card-body">
<form method="post" action="/api/firmware/upload" enctype="multipart/form-data" class="mb-2">
<div class="d-flex gap-2">
<input type="file" name="firmware" class="form-control form-control-sm" accept=".bin" required>
<button type="submit" class="btn btn-outline-primary btn-sm">
<i class="bi bi-upload"></i>
</button>
</div>
</form>
{% if firmwares %}
{% for fw in firmwares %}
<div class="d-flex justify-content-between align-items-center mb-1">
<small class="font-monospace">{{ fw.name }} <span class="text-muted">({{ fw.size }})</span></small>
<form method="post" action="/api/firmware/{{ fw.name }}/delete" class="d-inline"
onsubmit="return confirm('Firmware loeschen?')">
<button type="submit" class="btn btn-sm btn-outline-danger py-0">
<i class="bi bi-trash"></i>
</button>
</form>
</div>
{% endfor %}
{% endif %}
</div>
</div>
</div>
</div>
<!-- Device Cards -->
<div class="row g-3 mb-4">
{% for device in devices %}
@ -213,71 +277,7 @@
{% endif %}
</div>
<div class="text-muted mb-3">
<div class="text-muted">
<small>{{ devices|length }} Tuerschilder | Status wird alle 4 Minuten automatisch geprueft</small>
</div>
<!-- Add Device + Firmware -->
<div class="row g-3">
<div class="col-md-6">
<div class="card">
<div class="card-header">
<h6 class="mb-0"><i class="bi bi-plus-circle"></i> Neues Tuerschild</h6>
</div>
<div class="card-body">
<form method="post" action="/api/devices">
<div class="row g-2">
<div class="col-12">
<input type="text" name="hostname" class="form-control form-control-sm"
placeholder="doorlight0027.intra.volksheimstaette.de" required>
</div>
<div class="col-8">
<input type="text" name="name" class="form-control form-control-sm"
placeholder="Name (optional)">
</div>
<div class="col-4">
<input type="number" name="segment_count" class="form-control form-control-sm"
value="2" min="1" max="10" title="Segmente">
</div>
<div class="col-12">
<button type="submit" class="btn btn-primary btn-sm w-100">
<i class="bi bi-plus"></i> Hinzufuegen
</button>
</div>
</div>
</form>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card">
<div class="card-header">
<h6 class="mb-0"><i class="bi bi-cloud-arrow-up"></i> Firmware</h6>
</div>
<div class="card-body">
<form method="post" action="/api/firmware/upload" enctype="multipart/form-data" class="mb-2">
<div class="d-flex gap-2">
<input type="file" name="firmware" class="form-control form-control-sm" accept=".bin" required>
<button type="submit" class="btn btn-outline-primary btn-sm">
<i class="bi bi-upload"></i>
</button>
</div>
</form>
{% if firmwares %}
{% for fw in firmwares %}
<div class="d-flex justify-content-between align-items-center mb-1">
<small class="font-monospace">{{ fw.name }} <span class="text-muted">({{ fw.size }})</span></small>
<form method="post" action="/api/firmware/{{ fw.name }}/delete" class="d-inline"
onsubmit="return confirm('Firmware loeschen?')">
<button type="submit" class="btn btn-sm btn-outline-danger py-0">
<i class="bi bi-trash"></i>
</button>
</form>
</div>
{% endfor %}
{% endif %}
</div>
</div>
</div>
</div>
{% endblock %}