From 78dcb412adbc7d2d813486992288ff5b518d9b1d Mon Sep 17 00:00:00 2001 From: DevEnv nis2-agile Date: Sun, 31 May 2026 17:42:23 +0200 Subject: [PATCH] [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 --- public/supplier-portal.html | 441 ++++++++++++++++++++++++++++++++++++ 1 file changed, 441 insertions(+) create mode 100644 public/supplier-portal.html diff --git a/public/supplier-portal.html b/public/supplier-portal.html new file mode 100644 index 0000000..5140419 --- /dev/null +++ b/public/supplier-portal.html @@ -0,0 +1,441 @@ + + + + + + +Portale Fornitori - NIS2 Agile + + + +
+
+

Portale Fornitori

+

Compilazione questionari di sicurezza NIS2

+
+ + +
+ + + + + + + + + + + + + + + + +
+ Servizio fornito da NIS2 Agile per conto del committente.
+ Il committente è titolare del trattamento; NIS2 Agile agisce come responsabile (Art. 28 GDPR).
+ Se non eri tu a richiedere questo accesso, ignora l'email ricevuta. +
+
+ + + +