diff --git a/apix-admin/src/main/java/org/botstandards/apix/admin/resource/SandboxListResource.java b/apix-admin/src/main/java/org/botstandards/apix/admin/resource/SandboxListResource.java index c0df1ed..741984b 100644 --- a/apix-admin/src/main/java/org/botstandards/apix/admin/resource/SandboxListResource.java +++ b/apix-admin/src/main/java/org/botstandards/apix/admin/resource/SandboxListResource.java @@ -26,9 +26,10 @@ public class SandboxListResource { @ConfigProperty(name = "apix.admin.key") String adminKey; - @CheckedTemplate(requireTypeSafeExpressions = false) + @CheckedTemplate static class Templates { - static native TemplateInstance list(AdminSandboxListResponse result, int page, int size, String tier); + static native TemplateInstance list(AdminSandboxListResponse result, int page, int size, String tier, + boolean hasPrev, boolean hasNext, int displayPage, int prevPage, int nextPage); static native TemplateInstance error(String message); } @@ -40,7 +41,10 @@ public class SandboxListResource { try { String tierParam = tier.isBlank() ? null : tier; AdminSandboxListResponse result = registry.listSandboxes(adminKey, page, size, tierParam); - return Templates.list(result, page, size, tier); + boolean hasPrev = page > 0; + boolean hasNext = (long)(page + 1) * size < result.total(); + return Templates.list(result, page, size, tier, + hasPrev, hasNext, page + 1, page - 1, page + 1); } catch (Exception e) { LOG.errorf(e, "Failed to load sandbox list"); return Templates.error("Could not load sandbox list"); diff --git a/apix-admin/src/main/resources/templates/SandboxListResource/list.html b/apix-admin/src/main/resources/templates/SandboxListResource/list.html index 0197746..a456fae 100644 --- a/apix-admin/src/main/resources/templates/SandboxListResource/list.html +++ b/apix-admin/src/main/resources/templates/SandboxListResource/list.html @@ -103,12 +103,12 @@ tr:hover td { background: #161b22; }