- Fix bug: campul hidden de filtru randa literal "None" (status_filtru None +
Jinja default('')) -> poll-ul trimitea status=None -> tabel gol. status or "".
- Pills de stare mutate din bara de status in bara de filtre (filtreazaStare scrie
campul hidden + re-trimite form-ul; filtrul persista la reincarcari). Re-randate
OOB cu contoare proaspete la fiecare reincarcare a tabelului.
- Polling redesign: tabelul nu se mai reincarca singur (fara every 15s). Poller usor
JSON (/_fragments/trimiteri-versiune) detecteaza schimbari -> nudge "Date noi —
Reincarca". Reincarcarea (nudge / actiune) pastreaza filtrul+pagina. Scroll/selectia
nu se mai pierd. Poll-guard eliminat (nu mai exista poll periodic de pauzat).
- Logo ROMFAST 32px -> 60px (ca pe romfast.ro), header min-height 92px, 44px pe mobil.
Regresie: 896 passed, 1 deselected.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
76 lines
4.2 KiB
HTML
76 lines
4.2 KiB
HTML
{#
|
|
_coada.html — repurposat in 3.6 (US-003).
|
|
Nu mai e un tab/panou separat: e sectiunea "Trimiterile tale" inclusa pe Acasa,
|
|
sub zona de upload. Pastreaza filtrele (US-009) si tabelul (_submissions.html); detaliul
|
|
se deschide acum in modalul global (#modal-detaliu). Poll aliniat la 15s (anti dublu-poll, M5).
|
|
#}
|
|
<section id="trimiteri-section" aria-labelledby="trimiteri-heading"
|
|
style="margin-top:22px; padding-top:18px; border-top:2px solid var(--line);">
|
|
<div class="card">
|
|
<div style="display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:0 0 12px;">
|
|
<h2 id="trimiteri-heading" style="font-size:15px; margin:0;">
|
|
Trimiterile tale
|
|
{% if blocate_total %}
|
|
<span class="tab-badge" title="{{ blocate_total }} necesita atentie"
|
|
style="display:inline-flex; align-items:center; justify-content:center; min-width:18px; height:18px; margin-left:6px; padding:0 5px; border-radius:99px; background:var(--err); color:#fff; font-size:11px; font-weight:700;">{{ blocate_total }}</span>
|
|
{% endif %}
|
|
</h2>
|
|
<span style="margin-left:auto; display:flex; gap:8px; flex-wrap:wrap;">
|
|
<a class="cardlink" href="/v1/audit/export?status=sent" download>export CSV: trimise</a>
|
|
<a class="cardlink" href="/v1/audit/export?status=all" download>toate</a>
|
|
</span>
|
|
</div>
|
|
|
|
<!-- Bara de filtre: vehicul/data + pill-uri de stare pe acelasi rand. Pill-urile scriu
|
|
campul hidden status si re-trimit form-ul (filtreazaStare) -> filtrul persista la reincarcari. -->
|
|
<form id="filtre-trimiteri"
|
|
hx-get="/_fragments/submissions"
|
|
hx-target="#submissions-wrap"
|
|
hx-swap="innerHTML"
|
|
hx-trigger="submit, change, keyup delay:400ms from:input[name='vehicul']"
|
|
style="display:flex; gap:10px 14px; flex-wrap:wrap; align-items:flex-end; margin-bottom:12px;">
|
|
<input type="hidden" id="f-status" name="status" value="{{ status_filtru | default('', true) }}">
|
|
{# Pagina curenta — actualizata prin OOB swap din _submissions.html; inclusa la reincarcari. #}
|
|
<input type="hidden" id="f-page" name="page" value="1">
|
|
<div>
|
|
<label for="f-vehicul" class="muted" style="display:block; font-size:12px;">Vehicul (nr/VIN)</label>
|
|
<input id="f-vehicul" type="text" name="vehicul" placeholder="ex. B123 sau VIN" style="max-width:180px;">
|
|
</div>
|
|
<div>
|
|
<label for="f-data-de" class="muted" style="display:block; font-size:12px;">Data de la</label>
|
|
<input id="f-data-de" type="date" name="data_de">
|
|
</div>
|
|
<div>
|
|
<label for="f-data-pana" class="muted" style="display:block; font-size:12px;">pana la</label>
|
|
<input id="f-data-pana" type="date" name="data_pana">
|
|
</div>
|
|
<button type="submit">Filtreaza</button>
|
|
{# Pill-uri de stare pe acelasi rand cu filtrele; re-randate prin OOB la reincarcarea tabelului. #}
|
|
<span id="pills-categorii" class="pills-categorii" style="margin-left:auto;">
|
|
{% include '_pills.html' %}
|
|
</span>
|
|
</form>
|
|
|
|
<!-- Nudge "Date noi": tabelul nu se reimprospateaza singur; bannerul apare doar cand
|
|
pollerul usor detecteaza schimbari, iar utilizatorul reincarca cand vrea. -->
|
|
<div id="nudge-trimiteri" hidden role="status" aria-live="polite">
|
|
<span>Sunt trimiteri actualizate.</span>
|
|
<button type="button" onclick="reincarcaTrimiteri()">Reincarca</button>
|
|
</div>
|
|
|
|
<!-- Tabelul se reincarca DOAR la: incarcarea paginii, actiunile tale (trimiteriChanged)
|
|
sau apasarea pe Reincarca (reincarcaTrimiteri). Fara poll periodic care sa-l reseteze. -->
|
|
<div id="submissions-wrap"
|
|
hx-get="/_fragments/submissions"
|
|
hx-trigger="load, trimiteriChanged from:body, reincarcaTrimiteri"
|
|
hx-include="#filtre-trimiteri" hx-swap="innerHTML">
|
|
<div class="empty">se incarca…</div>
|
|
</div>
|
|
</div>
|
|
|
|
{# PRD 5.9 US-003: detaliul s-a mutat intr-un MODAL global (#modal-detaliu in base.html),
|
|
in afara #submissions-wrap -> poll-ul de 15s nu-l mai atinge. Randul declanseaza
|
|
deschiderea (hx-target=#detaliu-modal-body). Vechiul panou inert #trimitere-detaliu
|
|
a fost eliminat (rol preluat de modal). #}
|
|
</section>
|