Dogfood pe import + Trimiteri (mobil/tableta <1024px), pur CSS + markup, backend
trimitere neatins:
- Card compact real pentru .tabel-trimiteri (preview + Trimiteri): vehicul=titlu,
stare=pill dreapta-sus, operatie+cod, meta data/km muted, nota mica. Inlocuieste
stiva generica eticheta+valoare (carduri de ~450px -> ~135px). Anuleaza regula
desktop tr.trimitere-row > td{padding:11px} in blocul compact.
- FIX editare preview: OOB swap pe <tr> esua tacit in htmx 1.9 (un <tr> brut se
pierde la parsarea unui fragment fara context de tabel) -> randul ramanea cu
starea veche dupa salvare. Inlocuit cu reload complet al preview-ului prin
HX-Trigger:reincarcaPreview + detalii randSalvat. /editeaza si /confirma-review
folosesc helper-ul _raspuns_rand_salvat.
- Feedback post-salvare: toast global "Randul N actualizat · <stare>" + scroll +
flash pe randul actualizat (base.html window.arataToast + listener randSalvat).
- Modal editare: Salveaza + Anuleaza pe acelasi rand (sistem .act): desktop text,
mobil doua iconite Lucide 44px alaturate (save/x). Macro icon('x') + .act-primary.
- Randuri deja-trimise/duplicate colapsate implicit in preview + toggle "Arata N".
- Select "Operatii de mapat" full-width pe mobil (nu mai iese din viewport).
- Bara de filtre Trimiteri adaptata mobil: pills pe banda cu scroll orizontal,
cautare vehicul proeminenta (nu 8 butoane full-width stivuite).
- Nota preview = culoarea camp-fix (accent) ca sa atraga atentia; hint-urile
camp-fix per-camp scoase (campul Note e self-explanatory).
- Confirmare trimitere: scos campul email (Declarant); text mai clar
("Confirma numarul din N gata de trimis"). Backend confirmed_by ramane optional.
Teste: contractul OOB (rupt in browser) inlocuit cu noul contract
(reincarcaPreview + randSalvat) in test_web_preview_edit / test_preview_edit_ui /
test_import_review. Suita: 992 passed (exclus live).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
37 lines
2.0 KiB
HTML
37 lines
2.0 KiB
HTML
{#
|
|
_stepper.html — Antet wizard import COMPACT (PUR vizual). PRD 5.13.
|
|
Parametru: `pas` (integer 1-4). Clasele .stepper-* sunt definite in base.html.
|
|
>=1024px: bara slim orizontala (.stepper-track). <1024px: forma colapsata
|
|
"Pasul N din 4 - Titlu" + bara de progres (.stepper-collapsed).
|
|
Utilizare: {% set pas = 1 %}{% include '_stepper.html' %}
|
|
#}
|
|
{%- set _pasi_import = [
|
|
(1, "Incarca fisier", "Trage un fisier xlsx/csv aici sau foloseste butonul de alegere."),
|
|
(2, "Potriveste coloanele", "Spune-ne ce coloana din fisier corespunde cu ce camp RAR."),
|
|
(3, "Verifica", "Verifica randurile inainte sa le trimiti la RAR."),
|
|
(4, "Confirma trimiterea", "Confirma numarul de prezentari — actiunea e ireversibila."),
|
|
] -%}
|
|
{%- set _activ = _pasi_import[pas - 1] -%}
|
|
<div class="stepper">
|
|
{# Desktop (>=1024px): bara slim orizontala. #}
|
|
<nav class="stepper-track" aria-label="Pasii importului">
|
|
{% for nr, titlu, ajutor in _pasi_import %}
|
|
{%- if nr < pas %}{% set cls = "is-done" %}{% set aria = "" %}
|
|
{%- elif nr == pas %}{% set cls = "is-active" %}{% set aria = ' aria-current="step"' %}
|
|
{%- else %}{% set cls = "" %}{% set aria = "" %}{% endif %}
|
|
<div class="stepper-step {{ cls }}"{{ aria | safe }}>
|
|
<span class="stepper-nr">{% if nr < pas %}✓{% else %}{{ nr }}{% endif %}</span>
|
|
<span class="stepper-tx">{{ titlu }}</span>
|
|
</div>
|
|
{% endfor %}
|
|
</nav>
|
|
{# Tableta/mobil (<1024px): colapsat "Pasul N din 4 - Titlu" + progres. #}
|
|
<div class="stepper-collapsed">
|
|
<div class="stepper-current">Pasul {{ pas }} din 4 <span class="muted">· {{ _activ[1] }}</span></div>
|
|
<div class="stepper-progress" role="progressbar" aria-valuenow="{{ pas }}" aria-valuemin="1" aria-valuemax="4"
|
|
aria-label="Pasul {{ pas }} din 4"><span style="width:{{ (pas / 4 * 100) | round | int }}%;"></span></div>
|
|
</div>
|
|
{# Ajutorul pasului activ — o singura linie, sub bara (valabil pe ambele forme). #}
|
|
<p class="stepper-help">{{ _activ[2] }}</p>
|
|
</div>
|