[FIX] Test multi-agente: dashboard gauge + risks backToList/loadFair

- dashboard: complianceScore ora ritorna 'score' (overall_score ultimo assessment);
  la gauge usa avg_implementation se >0, altrimenti il punteggio assessment.
  Prima mostrava 0% per org con gap analysis ma senza modulo controlli (H2).
- risks.html backToList(): ripristina la vista corrente tra le 4 (table/matrix/fair/kri),
  prima cadeva sempre su table/matrix (H1); renderDetail nasconde tutte e 4.
- risks.html loadFair(): legge risksRes.data.items (endpoint paginato), prima
  risksRes.data.risks era undefined e il dropdown FAIR restava vuoto (M1).

php -l + node --check OK. version 1.10.3.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
DevEnv nis2-agile
2026-05-31 14:56:10 +02:00
co-authored by Claude Opus 4.8
parent 4d9153b36f
commit 2037cecaba
4 changed files with 13 additions and 8 deletions
+6 -6
View File
@@ -650,7 +650,7 @@
const [risksRes, regRes] = await Promise.all([api.listRisks({ per_page: 200 }), api.getFairRegister()]);
const sel = document.getElementById('fair-risk-select');
if (risksRes.success) {
const risks = risksRes.data.risks || risksRes.data || [];
const risks = (risksRes.data && risksRes.data.items) || risksRes.data.risks || [];
sel.innerHTML = '<option value="">— seleziona rischio —</option>' +
risks.map(r => `<option value="${r.id}">${escapeHtml((r.risk_code ? r.risk_code + ' · ' : '') + r.title)}</option>`).join('');
}
@@ -869,6 +869,8 @@
function renderDetail(risk) {
document.getElementById('view-table').classList.add('hidden');
document.getElementById('view-matrix').classList.add('hidden');
document.getElementById('view-fair').classList.add('hidden');
document.getElementById('view-kri').classList.add('hidden');
const container = document.getElementById('view-detail');
container.classList.remove('hidden');
@@ -1040,11 +1042,9 @@
function backToList() {
document.getElementById('view-detail').classList.add('hidden');
if (currentView === 'table') {
document.getElementById('view-table').classList.remove('hidden');
} else {
document.getElementById('view-matrix').classList.remove('hidden');
}
// Ripristina la vista corrente tra le 4 (table/matrix/fair/kri), non solo table/matrix.
const view = ['table', 'matrix', 'fair', 'kri'].includes(currentView) ? currentView : 'table';
document.getElementById('view-' + view).classList.remove('hidden');
}
// ── Create/Edit Risk Modal ───────────────────────────────────