diff --git a/Endpoints/DatabaseExplorerEndpoint.cs b/Endpoints/DatabaseExplorerEndpoint.cs index c033d4c..30cb64b 100644 --- a/Endpoints/DatabaseExplorerEndpoint.cs +++ b/Endpoints/DatabaseExplorerEndpoint.cs @@ -67,11 +67,22 @@ public static class DatabaseExplorerEndpoint // Pagination var page = 1; var pageSize = 1000; - if (ctx.Request.Query.TryGetValue("page", out var pageStr) && int.TryParse(pageStr, out var p) && p > 0) - page = p; + if (ctx.Request.Query.TryGetValue("page", out var pageStr) && int.TryParse(pageStr, out var p)) + page = p; // p == -1 → letzte Seite if (ctx.Request.Query.TryGetValue("pageSize", out var psStr) && int.TryParse(psStr, out var ps) && ps > 0 && ps <= 10000) pageSize = ps; + // Bei page == -1 → letzte Seite berechnen + if (page == -1) + { + var count = conn.ExecuteScalar($"SELECT COUNT(*) FROM \"{name}\""); + page = Math.Max(1, (int)Math.Ceiling((double)count / pageSize)); + } + else if (page < 1) + { + page = 1; + } + var offset = (page - 1) * pageSize; // Spalten-Info diff --git a/wwwroot/js/pages/db-explorer-page.js b/wwwroot/js/pages/db-explorer-page.js index ce868a6..90bd19c 100644 --- a/wwwroot/js/pages/db-explorer-page.js +++ b/wwwroot/js/pages/db-explorer-page.js @@ -51,7 +51,7 @@ registerPage('db-explorer', { tr.appendChild(tdRows); tr.addEventListener('click', function() { - loadTableData(t.name, 1); + loadTableData(t.name, -1); }); tbody.appendChild(tr); @@ -77,6 +77,7 @@ registerPage('db-explorer', { try { var resp = await fetch('/api/admin/db/tables/' + encodeURIComponent(name) + '?page=' + page + '&pageSize=1000'); var data = await resp.json(); + page = data.pagination.page; contentEl.innerHTML = '';