[FIX] Liste paginate: frontend leggeva result.data (oggetto {items}) come array

Causa "Errore di connessione" su Inventario (e liste analoghe): gli endpoint
list usano jsonPaginated → data = {items,total,page,per_page,pages}, ma il
frontend faceva `allAssets = result.data || []` e poi .filter/.forEach/.length
sull'oggetto → TypeError → catch → messaggio d'errore (e stat a "--").

Allineato il consumo a jsonPaginated (come gia' faceva risks.html):
- public/assets.html  — Inventario (loadAssets): estrae data.items + per_page=100
- public/incidents.html — lista incidenti (renderIncidentsTable)
- public/reports.html — visualizzatore Audit log (loadAuditLogs): data.items +
  paginazione da data.pages/page (prima usava result.pagination/total_pages inesistenti)
- public/admin/organizations.html, public/admin/users.html — liste admin
  (data.items + paginazione da data: total/per_page/page)

Tutti gli estrattori sono difensivi (gestiscono anche un eventuale array bare).
Verificato: endpoint reali tornano data={items,...}; nessun consumer rotto
restante (listNCRs/listFeedback non usati da pagine; /feedback/mine resta array).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
DevEnv nis2-agile
2026-06-17 12:14:04 +02:00
co-authored by Claude Opus 4.8
parent 896caa829c
commit f32b6f28f5
6 changed files with 17 additions and 11 deletions
+7 -5
View File
@@ -903,9 +903,11 @@
try {
const result = await api.getAuditLogs({ page: auditPage, per_page: 25 });
if (result.success) {
const logs = result.data || [];
const pagination = result.pagination || {};
auditTotalPages = pagination.total_pages || 1;
// /audit/logs risponde paginato: data = {items, total, page, per_page, pages}.
const d = result.data || {};
const logs = Array.isArray(d) ? d : (d.items || []);
const pagination = Array.isArray(d) ? (result.pagination || {}) : d;
auditTotalPages = pagination.pages || pagination.total_pages || 1;
renderAuditLogs(logs, pagination);
} else {
container.innerHTML = '<div class="empty-state-box"><h4>Errore nel caricamento</h4><p>' + escapeHtml(result.message || '') + '</p></div>';
@@ -968,8 +970,8 @@
html += '</tbody></table>';
// Pagination
const totalPages = pagination.total_pages || 1;
// Pagination (data paginato: 'pages' = numero pagine totali)
const totalPages = pagination.pages || pagination.total_pages || 1;
const currentPage = pagination.page || auditPage;
html += `
<div class="pagination">