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

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