DevEnv nis2-agile
|
78dcb412ad
|
[FEAT] Fase 3+4 frontend: supplier-portal.html (OTP/magic-link + compilazione)
Portale fornitore pubblico self-contained (CSS+JS inline, noindex):
- Auth: richiesta OTP (risposta opaca), verifica codice con errori specifici +
countdown reinvio 60s, magic-link da ?magic= (consumo su click), sessione
JWT supplier in sessionStorage (4h).
- Dashboard: 1 questionario aperto -> diretto, multi -> lista con badge scadenza.
- Compilazione (Fase 4): tutti i tipi domanda (yes_no_partial, single/multi_choice,
scale_1_5 con etichette estremi, number, text, file) + "Non applicabile";
progress bar, badge scadenza sticky, help_text + nis2_ref visibili.
- Autosave PATCH debounce 800ms + "bozza salvata"; salva bozza vs invia definitivo
con conferma + validazione obbligatorie client.
- Ricevuta: conferma + score solo se show_score. Footer GDPR Art.28.
- a11y: input nativi, OTP autocomplete=one-time-code inputmode=numeric, target >=44px.
Inline JS validato (node --check). File statico -> live via nginx.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-05-31 17:42:23 +02:00 |
|