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>
3.5 KiB
MAPPA-LOGICA · Pannello Amministrazione
⟦ INIZIO · U-ADMIN-INDEX · Videata "Pannello Amministrazione" ⟧
File: public/admin/index.html · URL: /admin/index.html · Scopo: dashboard di amministrazione piattaforma — KPI globali su organizzazioni, utenti, assessment, incidenti, rischi e AI, distribuzione piani di abbonamento, collegamenti rapidi alle gestioni · Profili: solo super_admin (check api.getMe(): se role !== 'super_admin' notifica "Accesso non autorizzato..." e redirect a /dashboard.html dopo 1,5s, righe 327-339)
• U-ADMIN-INDEX.1 — Header pagina
Mostra: titolo "Pannello Amministrazione" + badge rosso "Super Admin"
Azioni: nessuna
Dati da: nessuna
Confine: header.content-header (riga 191, senza id)
• U-ADMIN-INDEX.2 — Riga statistiche 1 (organizzazioni e utenti)
Mostra: 4 card KPI: "Totale Organizzazioni", "Organizzazioni Attive", "Totale Utenti", "Utenti Attivi" (valori "--" finché non caricati)
Azioni: nessuna (solo lettura)
Dati da: GET /api/admin/stats (campi total_organizations, active_organizations, total_users, active_users)
Confine: #stats-row-1 (riga 200); valori #stat-total-orgs, #stat-active-orgs, #stat-total-users, #stat-active-users; etichette #lbl-total-orgs, #lbl-active-orgs, #lbl-total-users, #lbl-active-users
• U-ADMIN-INDEX.3 — Riga statistiche 2 (attività compliance)
Mostra: 4 card KPI: "Assessment Completati", "Incidenti Aperti", "Totale Rischi", "Interazioni AI"
Azioni: nessuna
Dati da: GET /api/admin/stats (campi completed_assessments, open_incidents, total_risks, ai_interactions)
Confine: #stats-row-2 (riga 232); valori #stat-assessments, #stat-incidents, #stat-risks, #stat-ai; etichette #lbl-assessments, #lbl-incidents, #lbl-risks, #lbl-ai
• U-ADMIN-INDEX.4 — Card "Distribuzione Piani"
Mostra: grafico a barre verticali con conteggio organizzazioni per piano: Free (grigio), Professional (blu), Enterprise (viola); spinner durante il caricamento; aria-label descrittivo per accessibilità
Azioni: nessuna (grafico statico renderizzato da renderPlansChart)
Dati da: GET /api/admin/stats (campo plans_distribution: array di {subscription_plan, count})
Confine: #plans-chart (riga 269)
• U-ADMIN-INDEX.5 — Card "Gestione Piattaforma" (collegamenti rapidi)
Mostra: 2 card-link: "Gestisci Organizzazioni" ("Visualizza e gestisci tutte le organizzazioni registrate sulla piattaforma.") e "Gestisci Utenti" ("Visualizza e gestisci tutti gli utenti registrati sulla piattaforma.")
Azioni: click → naviga a /admin/organizations.html oppure /admin/users.html
Dati da: nessuna
Confine: nav.quick-links-grid[aria-label="Collegamenti rapidi gestione piattaforma"] (riga 281, senza id); singole card a.quick-link-card (righe 282 e 291, senza id)
• U-ADMIN-INDEX.6 — Sidebar di navigazione
Mostra: sidebar Bootstrap Italia condivisa dell'app (iniettata da loadSidebar() di /js/common-bi.js)
Azioni: navigazione app
Dati da: nessuna
Confine: #sidebar (riga 188)
⟦ FINE · U-ADMIN-INDEX ⟧
ID STABILI MANCANTI (da aggiungere)
| Elemento | Riga | Id proposto |
|---|---|---|
| Header pagina con badge Super Admin | 191 | nis2-admin-header |
| Nav collegamenti rapidi | 281 | nis2-admin-quick-links |
| Card-link "Gestisci Organizzazioni" | 282 | nis2-admin-link-organizations |
| Card-link "Gestisci Utenti" | 291 | nis2-admin-link-users |
| Card "Distribuzione Piani" (contenitore card) | 264 | nis2-admin-plans-card |