DB Explorer: Standardmäßig zur letzten Seite springen
- Backend: page=-1 wird als 'letzte Seite' interpretiert (COUNT + Berechnung) - Frontend: Tabellen-Klick ruft page=-1 auf statt page=1 - Aufgelöster page-Wert aus API-Response für korrekte Anzeige (34/34 statt -1/34)
This commit is contained in:
1 parent
fea605dfe5
commit
229e6d9e53
2 files changed
+15
-3
No files matched your search
@@ -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<long>($"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
|
||||
|
||||
@@ -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 = '';
|
||||
|
||||
|
||||
Reference in new issue
Block a user