diff --git a/public/admin/users.html b/public/admin/users.html
index dca48fb..b97570f 100644
--- a/public/admin/users.html
+++ b/public/admin/users.html
@@ -224,7 +224,8 @@
try {
const result = await api.request('GET', '/admin/users?page=' + page);
if (result.success) {
- renderUsers(result.data || [], result.pagination || {});
+ // /admin/users risponde paginato: data = {items, total, page, per_page, pages}.
+ renderUsers((result.data && result.data.items) || (Array.isArray(result.data) ? result.data : []), (result.data && !Array.isArray(result.data)) ? result.data : (result.pagination || {}));
} else {
container.innerHTML = `
diff --git a/public/assets.html b/public/assets.html
index 5c7b932..be200fc 100644
--- a/public/assets.html
+++ b/public/assets.html
@@ -451,7 +451,7 @@
const container = document.getElementById('assets-container');
container.innerHTML = '
Caricamento inventario...
';
- const params = {};
+ const params = { per_page: 100 };
const type = document.getElementById('filter-type').value;
const criticality = document.getElementById('filter-criticality').value;
const status = document.getElementById('filter-status').value;
@@ -461,7 +461,8 @@
try {
const result = await api.listAssets(params);
if (result.success) {
- allAssets = result.data || [];
+ // /assets/list risponde paginato: data = {items, total, ...}. Estrai l'array.
+ allAssets = (result.data && result.data.items) || (Array.isArray(result.data) ? result.data : []);
const view = type ? allAssets.filter(a => a.voce_code === type) : allAssets;
updateStats(view);
renderAssets(view);
diff --git a/public/incidents.html b/public/incidents.html
index c1a325c..94c76f5 100644
--- a/public/incidents.html
+++ b/public/incidents.html
@@ -400,7 +400,8 @@
try {
const result = await api.listIncidents(params);
if (result.success) {
- renderIncidentsTable(result.data || []);
+ // /incidents/list risponde paginato: data = {items, total, ...}.
+ renderIncidentsTable((result.data && result.data.items) || (Array.isArray(result.data) ? result.data : []));
} else {
showNotification(result.message || 'Errore nel caricamento incidenti', 'error');
}
diff --git a/public/reports.html b/public/reports.html
index 1197c6e..6c9e91d 100644
--- a/public/reports.html
+++ b/public/reports.html
@@ -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 = '
Errore nel caricamento
' + escapeHtml(result.message || '') + '
';
@@ -968,8 +970,8 @@
html += '';
- // 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 += `