feat: viewer local upload, Bambu collapse, planning done/fail, stats waste, portal link in jobs, sidebar collapsible, settings layout fix
Deploy via Portainer / deploy (push) Successful in 0s

This commit is contained in:
Jo
2026-07-07 09:16:24 +02:00
parent 7b65c4b2e2
commit b22e5e0fb4
9 changed files with 502 additions and 78 deletions
+40 -1
View File
@@ -60,6 +60,9 @@
<button class="active" onclick="showTab('planning', this)">
<i class="bi bi-calendar3 d-block mb-1"></i>Planning
</button>
<button onclick="showTab('done', this)">
<i class="bi bi-check-circle d-block mb-1"></i>Terminé
</button>
<button onclick="showTab('block', this)">
<i class="bi bi-calendar-x d-block mb-1"></i>Indispo
</button>
@@ -176,6 +179,36 @@
</div>
</div>
<!-- ── Tab : Terminé ─────────────────────────────────── -->
<div class="tab-pane" id="tab-done">
<div class="section-title">Marquer une impression comme terminée</div>
<div class="form-card">
<form method="POST">
<input type="hidden" name="action" value="done">
<div class="mb-3">
<label class="form-label fw-semibold">Créneau terminé</label>
<select name="slot_id" class="form-select" required>
<option value="">Choisir…</option>
{% for s in upcoming %}
<option value="{{ s.id }}">
{{ s.job_name }} — {{ s.planned_start[:16].replace('T',' ') }} [{{ s.printer_name }}]
</option>
{% endfor %}
</select>
</div>
<div class="mb-3">
<label class="form-label fw-semibold">Poids réel consommé (g) <small class="text-muted fw-normal">optionnel</small></label>
<input type="number" name="actual_g" class="form-control" step="0.1" min="0"
placeholder="ex: 48.5 — pour déduire du stock">
<div class="form-text">Laissez vide si vous ne connaissez pas le poids exact.</div>
</div>
<button type="submit" class="btn w-100" style="background:#22c55e;color:#fff">
<i class="bi bi-check-circle me-1"></i>Marquer comme terminé
</button>
</form>
</div>
</div>
<!-- ── Tab : Échec ────────────────────────────────────── -->
<div class="tab-pane" id="tab-fail">
<div class="section-title">Signaler un échec d'impression</div>
@@ -195,9 +228,15 @@
</div>
<div class="mb-3">
<label class="form-label fw-semibold">Description du problème</label>
<textarea name="failure_note" class="form-control" rows="3"
<textarea name="failure_note" class="form-control" rows="2"
placeholder="Détachement, sous-extrusion, bourrage…"></textarea>
</div>
<div class="mb-3">
<label class="form-label fw-semibold">Filament gaspillé (g) <small class="text-muted fw-normal">optionnel</small></label>
<input type="number" name="wasted_g" class="form-control" step="0.1" min="0"
placeholder="Poids plateau si vide">
<div class="form-text">Si vide, le poids du plateau entier est déduit du stock.</div>
</div>
<button type="submit" class="btn btn-danger w-100">
<i class="bi bi-exclamation-triangle me-1"></i>Signaler l'échec
</button>