[FIX] Gestione Rischi #501: tabella requisiti a scorrimento verticale + filtro per classe soggetto
- Punto 1: la tabella 'Rischi dai requisiti del framework di sicurezza' e ora un riquadro a scorrimento verticale (max-height 60vh, header sticky) invece di allungare la pagina. - Punto 2: elenca SOLO i requisiti applicabili alla classe del soggetto (importante -> Allegato 1, essenziale -> Allegato 2, Det. ACN 164179/2025); le righe non pertinenti non sono piu mostrate (prima solo attenuate). - help.js allineato + cache-buster help.js?v=20260729b su 35 pagine; version.json 1.25.10. - Punto 3 (rimozione sezione all-hazard) NON applicato: contraddice la decisione documentata nel #500 (copertura multirischio art.24 D.Lgs.138/2024) -> escalato. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
15010f7dc3
commit
a8516efafc
@@ -167,7 +167,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
// ── Auth check ───────────────────────────────────────────
|
||||
if (!checkAuth()) throw new Error('Not authenticated');
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
// ── Auth check ───────────────────────────────────────────
|
||||
if (!checkAuth()) throw new Error('Not authenticated');
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
// ── Auth check ───────────────────────────────────────────
|
||||
if (!checkAuth()) throw new Error('Not authenticated');
|
||||
|
||||
@@ -1127,7 +1127,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
if (!checkAuth()) throw new Error('Not authenticated');
|
||||
loadSidebar(); // = loadTopnavV3()
|
||||
|
||||
@@ -275,7 +275,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
// ── Auth check ───────────────────────────────────────────
|
||||
if (!checkAuth()) throw new Error('Not authenticated');
|
||||
|
||||
+1
-1
@@ -382,7 +382,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
// ── Auth & Init ─────────────────────────────────────────
|
||||
if (!checkAuth()) throw new Error('Not authenticated');
|
||||
|
||||
@@ -195,7 +195,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
'use strict';
|
||||
/*
|
||||
|
||||
@@ -202,7 +202,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
if (!checkAuth()) throw new Error('Not authenticated');
|
||||
|
||||
|
||||
@@ -197,7 +197,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script src="/js/competenze.js?v=20260627"></script>
|
||||
<script>
|
||||
function v3Icons() { if (window.lucide && lucide.createIcons) { try { lucide.createIcons(); } catch (e) {} } }
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script src="/js/connettori-discovery.js?v=20260627"></script>
|
||||
<script>
|
||||
if (typeof checkAuth === 'function' && !checkAuth()) {
|
||||
|
||||
@@ -160,7 +160,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
'use strict';
|
||||
/* Controlli periodici (control monitoring §9.1/A.8.16): controlli ricorrenti + esecuzioni (evidenza) + NC/AC. */
|
||||
|
||||
@@ -227,7 +227,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
// ── Icone inline (Lucide stroke) usate nelle stringhe HTML generate dal JS.
|
||||
// Renderizzate immediatamente (no createIcons re-run), self-host, niente sprite BI. ──
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script src="/js/dashboard.js?v=20260724a"></script>
|
||||
<script>
|
||||
// ── Auth check ───────────────────────────────────────────
|
||||
|
||||
+1
-1
@@ -1182,7 +1182,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
// La guida è accessibile anche da non autenticati (utile per onboarding)
|
||||
// ma se sei loggato carichi chrome + i18n normalmente. ZERO modifiche backend.
|
||||
|
||||
@@ -364,7 +364,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
// ── Auth & Init ──────────────────────────────────────────────
|
||||
if (!checkAuth()) throw new Error('Not authenticated');
|
||||
|
||||
@@ -936,7 +936,7 @@ curl -H <span class="str">"X-API-Key: nis2_TUA_CHIAVE"</span> \
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
if (!checkAuth()) throw new Error('Not authenticated');
|
||||
loadSidebar(); // = loadTopnavV3()
|
||||
|
||||
@@ -165,7 +165,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
'use strict';
|
||||
/*
|
||||
|
||||
+1
-1
@@ -204,7 +204,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script src="/js/isms.js?v=20260627v3"></script>
|
||||
<script>
|
||||
// Icone Lucide della chrome + crumb/page-head statici. L'init dati e il wiring
|
||||
|
||||
+1
-1
@@ -606,7 +606,7 @@ const HelpSystem = (function () {
|
||||
items: [
|
||||
'La <strong>prima tabella</strong> elenca i rischi <strong>derivati dai requisiti</strong> del framework di sicurezza: ogni voce e\' il <strong>rischio di non conformita\'</strong> legato al mancato o parziale soddisfacimento di un requisito, <strong>non il requisito in se\'</strong>. E\' un elenco in <strong>sola lettura</strong>.',
|
||||
'Il codice <strong>RSK-‹misura›Com.‹n›</strong> e\' una <strong>codifica interna di NIS2 Agile</strong>; ‹misura› (es. GV.OC-04) e\' il codice della misura del Framework Nazionale richiamato dalla Determinazione ACN 164179/2025. <strong>Non</strong> e\' un codice o numero ufficiale ACN.',
|
||||
'La colonna <strong>Conformita\'</strong> mostra lo stato di valutazione del requisito (Da valutare, Non conforme, Parziale, Conforme). I requisiti <strong>non applicabili alla tua classe</strong> (importante vs essenziale) sono mostrati in grigio.',
|
||||
'La colonna <strong>Conformita\'</strong> mostra lo stato di valutazione del requisito (Da valutare, Non conforme, Parziale, Conforme). La tabella elenca <strong>solo i requisiti applicabili alla tua classe</strong> (importante → Allegato 1, essenziale → Allegato 2 della Determinazione ACN 164179/2025): quelli non pertinenti non vengono mostrati. Se l\'elenco e\' lungo, il riquadro <strong>scorre verticalmente</strong> con l\'intestazione fissa.',
|
||||
'La seconda tabella, <strong>Rischi aggiuntivi (approccio multirischio / all-hazard)</strong>, permette ai <strong>profili amministrativi</strong> (org_admin, super_admin) di aggiungere rischi non coperti da un singolo requisito (minacce fisiche, catena di fornitura, eventi naturali): copre l\'approccio multirischio richiesto dall\'art. 24 D.Lgs. 138/2024.',
|
||||
'I profili <strong>Amministratore</strong>, <strong>Compliance Manager</strong> e <strong>super admin</strong> possono <strong>valutare</strong> ogni rischio-da-requisito con il pulsante <strong>Valuta</strong>: si impostano lo <strong>stato di conformità</strong>, la <strong>Probabilità</strong> e l\'<strong>Impatto</strong> (scala 1–5). La <strong>Probabilità</strong> è la probabilità che la minaccia si concretizzi <strong>sfruttando la carenza</strong> del requisito; l\'<strong>Impatto</strong> è l\'impatto della <strong>non conformità o del conseguente incidente</strong> — non la "probabilità del requisito". Il punteggio Rischio (Probabilità × Impatto) compare nella tabella e alimenta la matrice.'
|
||||
]
|
||||
|
||||
+1
-1
@@ -180,7 +180,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script src="/js/kb.js"></script>
|
||||
<script>
|
||||
// Gate auth + chrome come le altre pagine V3.
|
||||
|
||||
@@ -152,7 +152,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
'use strict';
|
||||
/*
|
||||
|
||||
@@ -180,7 +180,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
'use strict';
|
||||
/*
|
||||
|
||||
@@ -142,7 +142,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
// ── Auth + chrome + i18n + help ──────────────────────────
|
||||
if (!checkAuth()) throw new Error('Not authenticated');
|
||||
|
||||
@@ -156,7 +156,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script src="/js/organigramma.js?v=20260627"></script>
|
||||
<script>
|
||||
// Render icone Lucide (chrome + crumb + bottoni). organigramma.js fa render albero
|
||||
|
||||
@@ -345,7 +345,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
// ── Auth & Init ─────────────────────────────────────────
|
||||
if (!checkAuth()) throw new Error('Not authenticated');
|
||||
|
||||
+1
-1
@@ -146,7 +146,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script src="/js/raci.js?v=20260627"></script>
|
||||
<script>
|
||||
function v3Icons() { if (window.lucide && lucide.createIcons) { try { lucide.createIcons(); } catch (e) {} } }
|
||||
|
||||
+1
-1
@@ -237,7 +237,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
// ── Auth & Init ─────────────────────────────────────────
|
||||
if (!checkAuth()) throw new Error('Not authenticated');
|
||||
|
||||
@@ -162,7 +162,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
'use strict';
|
||||
/*
|
||||
|
||||
+18
-2
@@ -298,6 +298,18 @@
|
||||
.filters-bar { flex-direction: column; align-items: stretch; }
|
||||
.filters-bar .form-select { min-width: 100%; }
|
||||
}
|
||||
|
||||
/* Requisiti del framework: riquadro a scorrimento verticale (ticket #501/1) */
|
||||
#view-derived .table-container.scroll-box {
|
||||
max-height: 60vh;
|
||||
overflow-y: auto;
|
||||
}
|
||||
#view-derived .table-container.scroll-box thead th {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background: var(--gray-50);
|
||||
z-index: 2;
|
||||
}
|
||||
</style>
|
||||
<!-- PWA:start -->
|
||||
<link rel="manifest" href="/manifest.webmanifest">
|
||||
@@ -354,7 +366,7 @@
|
||||
<span data-i18n="risks.derived_code_legend">RSK-‹misura›Com.‹n› è una codifica interna di NIS2 Agile; ‹misura› (es. GV.OC-04) è il codice della misura del Framework Nazionale richiamato dalla Determinazione ACN 164179/2025. Elenco in sola lettura.</span>
|
||||
</p>
|
||||
<div class="card">
|
||||
<div class="table-container">
|
||||
<div class="table-container scroll-box">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@@ -492,7 +504,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
// ── Auth & Init ──────────────────────────────────────────────
|
||||
if (!checkAuth()) throw new Error('Not authenticated');
|
||||
@@ -625,6 +637,10 @@
|
||||
function renderDerivedTable(rows) {
|
||||
const tbody = document.getElementById('derived-table-body');
|
||||
const colspan = 8 + (canEvaluate ? 1 : 0);
|
||||
// Ticket #501/2: mostra SOLO i requisiti applicabili alla classe del soggetto
|
||||
// (importante → Allegato 1, essenziale → Allegato 2 della Det. ACN 164179/2025).
|
||||
// Le righe non applicabili non vengono più elencate (prima erano solo attenuate).
|
||||
rows = (rows || []).filter(isDerivedApplicable);
|
||||
if (!rows || rows.length === 0) {
|
||||
tbody.innerHTML = `
|
||||
<tr><td colspan="${colspan}">
|
||||
|
||||
@@ -740,7 +740,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
// ── Auth check ───────────────────────────────────────────
|
||||
if (!checkAuth()) throw new Error('Not authenticated');
|
||||
|
||||
@@ -220,7 +220,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
'use strict';
|
||||
/*
|
||||
|
||||
@@ -215,7 +215,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
'use strict';
|
||||
/*
|
||||
|
||||
@@ -547,7 +547,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
// ── Auth & Init ─────────────────────────────────────────
|
||||
if (!checkAuth()) throw new Error('Not authenticated');
|
||||
|
||||
@@ -195,7 +195,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
// ── Auth & Init (ordine V3) ─────────────────────────────
|
||||
if (!checkAuth()) throw new Error('Not authenticated');
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
{"version": "1.25.9", "build": "2026-07-29-v1.25.9", "date": "2026-07-29", "changelog": "Nuovo: Cruscotto Studio (per consulenti e societa' di consulenza). Dalla voce di menu 'Le mie aziende' vedi in un colpo solo tutte le aziende che gestisci con la loro compliance, rischi e incidenti aperti, e soprattutto le SCADENZE GENERALI aggregate di TUTTE le aziende ordinate per data (in ritardo / in arrivo). Clic su un'azienda per entrarci. Visibile ai profili consulente e amministratore."}
|
||||
{"version": "1.25.10", "build": "2026-07-29-v1.25.10", "date": "2026-07-29", "changelog": "Gestione Rischi: la tabella 'Rischi dai requisiti del framework di sicurezza' ora scorre verticalmente (riquadro a scorrimento con intestazione fissa) invece di allungare la pagina, e mostra SOLO i requisiti applicabili alla classe del soggetto (importante -> Allegato 1, essenziale -> Allegato 2 della Determinazione ACN 164179/2025): i requisiti non pertinenti non compaiono piu."}
|
||||
|
||||
@@ -263,7 +263,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
if (!checkAuth()) throw new Error('Not authenticated');
|
||||
loadSidebar();
|
||||
|
||||
@@ -148,7 +148,7 @@
|
||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||
<script src="/js/i18n.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729"></script>
|
||||
<script src="/js/help.js?v=20260729b"></script>
|
||||
<script>
|
||||
// ── Auth + chrome + i18n + help ──────────────────────────────
|
||||
if (!checkAuth()) throw new Error('Not authenticated');
|
||||
|
||||
Reference in New Issue
Block a user