Acasa = ecran de import (tab Import scos, ?tab=import->Acasa). Bara status compacta pe 2 randuri cu bife accesibile (glife + text) + data formatata. 'Coada'->'Trimiteri': coloane RO, stare umana, detaliu la click in panou dedicat. Mapari pe 3 sectiuni (de rezolvat / op salvate / formate coloane), Cont doar cheie+creds. Filtrare Trimiteri, corectie inline needs_data cu re-enqueue + detectie coliziune idempotency, badge contoare pe tab-uri. Helper pur partajat payload_view.py (web + GET /v1/prezentari). Backend trimitere (worker/idempotenta/mapping/schema) neatins. 483 teste. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
56 lines
2.5 KiB
HTML
56 lines
2.5 KiB
HTML
<div id="coada-section">
|
|
<div class="card">
|
|
<div style="display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:0 0 12px;">
|
|
<h2 style="font-size:15px; margin:0;">Trimiteri catre RAR</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>
|
|
|
|
<!-- Filtre (US-009): reincarca tabelul; poll-ul re-trimite filtrul curent prin hx-include -->
|
|
<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; flex-wrap:wrap; align-items:flex-end; margin-bottom:12px;">
|
|
<div>
|
|
<label for="f-status" class="muted" style="display:block; font-size:12px;">Stare</label>
|
|
<select id="f-status" name="status">
|
|
<option value="">toate</option>
|
|
<option value="queued">in asteptare</option>
|
|
<option value="sent">declarate la RAR</option>
|
|
<option value="needs_mapping">lipsa cod</option>
|
|
<option value="needs_data">date incomplete</option>
|
|
<option value="error">eroare</option>
|
|
<option value="sending">se trimite</option>
|
|
</select>
|
|
</div>
|
|
<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>
|
|
</form>
|
|
|
|
<div id="submissions-wrap"
|
|
hx-get="/_fragments/submissions" hx-trigger="load, every 10s"
|
|
hx-include="#filtre-trimiteri" hx-swap="innerHTML">
|
|
<div class="empty">se incarca…</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Panou dedicat pentru detaliul trimiterii (NU inline in tabel: poll-ul de 10s
|
|
din tabel ar sterge un expand inline). Gol pana la click pe un rand. -->
|
|
<div id="trimitere-detaliu"></div>
|
|
</div>
|