Files
DevEnv nis2-agileandClaude Opus 4.8 4dfab2a391 [FORMAZIONE] Avatar di prodotto — mappa-logica COMPLETA (22 viste) + SELETTORI_DEMO + tassonomia corso + fix kb.js
Deliverable formazione-first (DESIGN_AVATAR_FORMAZIONE / product-demo-complete):
- docs/mappa-logica/01..22_*.md: tutte le viste app V2 mappate (formato canonico standard §2),
  selettori VERIFICATI sul DOM reale, endpoint verificati su api.js/script, gate ruolo dai controller
- docs/mappa-logica/SELETTORI_DEMO.md: registry canonico (22 viste, 131 visualizzazione + 89 azioni)
  + worklist consolidata 132 id stabili da aggiungere (modifiche chirurgiche future)
- docs/formazione/TASSONOMIA_CORSO_NIS2.{md,json}: 10 moduli / 28 lezioni / ~7h45, prerequisiti+durate,
  esame con soglia 80%, sandbox 'prova tu' org 996002
- fix kb.js: ingest scope=ORG ora invia organization_id (prima 422 KB_ORG_REQUIRED) — bug trovato da A2

Prodotto con 4 trittici di agenti (A1 esecutore -> A2 revisore -> A3 controllore avversariale):
A2: ~14 correzioni (cross-ref, gate ruolo, comportamenti); A3 PASS: 38 selettori campionati 0 rotti,
18 endpoint reali, 0 violazioni normative (Allegati 3/4, IS-4, '1 mese', PII.* interna), 9 claim verificati.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-12 18:50:19 +02:00

4.6 KiB

MAPPA-LOGICA · Dashboard

⟦ INIZIO · U-DASHBOARD · Videata "Dashboard" ⟧ File: public/dashboard.html · URL: /dashboard.html · Scopo: panoramica iniziale della compliance NIS2 dell'organizzazione (score, KPI, scadenze, attività) · Profili: tutti gli utenti autenticati con organizzazione (org_admin, compliance_manager, board_member, auditor, employee, consultant; super_admin)

• U-DASHBOARD.1 — Intestazione pagina Mostra: titolo "Dashboard" e data corrente in italiano (es. "giovedì 12 giugno 2026"), valorizzata da JS. Azioni: nessuna. Dati da: data locale del browser (new Date().toLocaleDateString('it-IT')), nessuna API. Confine: #header-date (riga ~23); header = .content-header (riga ~20).

• U-DASHBOARD.2 — Gauge "Avanzamento implementazione misure Art.21 NIS2" Mostra: gauge circolare con percentuale di avanzamento implementazione delle misure Art.21 NIS2. Nota sotto il gauge: "Misura l'implementazione tecnica, non la conformita' legale". Il valore preferisce la % controlli implementati (avg_implementation); se assente ripiega sul punteggio assessment (score). Azioni: nessuna (solo visualizzazione). Dati da: GET /api/dashboard/overview (campo compliance_score) poi raffinato da GET /api/dashboard/compliance-score (campi avg_implementation, score). Confine: #compliance-gauge (riga ~33).

• U-DASHBOARD.3 — Card statistiche (4 KPI) Mostra: 4 stat-card con etichette reali: "Rischi Aperti" (totale rischi), "Incidenti Attivi", "Policy Approvate" (somma policy con status approved/published), "Formazione" (percentuale completamento corsi assegnati). Azioni: nessuna (solo visualizzazione). Dati da: GET /api/dashboard/overview — campi risks.total, active_incidents, policies[] (status+count), training.total/training.completed. Confine: griglia #stats-grid (riga ~43); valori in #stat-risks (riga ~50), #stat-incidents (riga ~59), #stat-policies (riga ~68), #stat-training (riga ~77).

• U-DASHBOARD.4 — Azioni Rapide Mostra: card "Azioni Rapide" con 3 bottoni: "Nuovo Assessment", "Registra Incidente", "Genera Policy AI". Azioni: "Nuovo Assessment" → naviga a assessment.html; "Registra Incidente" → naviga a incidents.html; "Genera Policy AI" → apre la modale di generazione policy AI (vedi U-DASHBOARD.7). Dati da: nessuna API in questa area (solo navigazione/apertura modale). Confine: card alle righe ~85-105; bottoni con classe .quick-action-btn dentro .quick-actions (riga ~90). Nessun id stabile sui singoli bottoni (vedi sezione ID mancanti).

• U-DASHBOARD.5 — Prossime Scadenze Mostra: lista delle prossime 5 scadenze con giorno/mese, titolo, categoria; badge "Urgente" se ≤3 giorni, "Prossima" se ≤7 giorni. Empty state: "Nessuna scadenza imminente". Azioni: nessuna. Dati da: GET /api/dashboard/upcoming-deadlines (campi due_date, title/description, category/type). Confine: #deadlines-list (riga ~114).

• U-DASHBOARD.6 — Attività Recenti Mostra: lista delle ultime 8 attività con descrizione e tempo relativo ("x minuti fa"). Empty state: "Nessuna attivita' recente". Azioni: nessuna. Dati da: GET /api/dashboard/recent-activity (campi description/message/action, created_at). Confine: #activity-list (riga ~124).

• U-DASHBOARD.7 — Modale "Genera Policy con AI" (generata via JS) Mostra: select "Categoria Policy" con 8 opzioni: Gestione del Rischio, Risposta agli Incidenti, Continuita' Operativa, Sicurezza Supply Chain, Controllo degli Accessi, Crittografia, Sicurezza del Personale, Gestione degli Asset. Azioni: "Genera" → chiama l'AI, notifica "Generazione policy in corso...", a successo redirige a policies.html; "Annulla" → chiude la modale. Dati da: POST /api/policies/ai-generate (body {category}). Confine: modale iniettata da showModal() in #modal-overlay (creato da common.js); select #ai-policy-category (definito nel JS, riga ~310 dello script inline).

⟦ FINE · U-DASHBOARD ⟧

ID STABILI MANCANTI (da aggiungere)

Elemento Riga Id proposto
Bottone "Nuovo Assessment" (azioni rapide) ~91 nis2-dashboard-qa-assessment
Bottone "Registra Incidente" (azioni rapide) ~95 nis2-dashboard-qa-incidente
Bottone "Genera Policy AI" (azioni rapide) ~99 nis2-dashboard-qa-policy-ai
Card "Azioni Rapide" ~85 nis2-dashboard-quick-actions
Card "Prossime Scadenze" (wrapper card, il body ha già #deadlines-list) ~110 nis2-dashboard-card-scadenze
Card "Attivita' Recenti" (wrapper card, il body ha già #activity-list) ~120 nis2-dashboard-card-attivita