diff --git a/admin/db.go b/admin/db.go
index 7c66965..9c4fd7f 100644
--- a/admin/db.go
+++ b/admin/db.go
@@ -8,9 +8,9 @@ import (
sq "github.com/Masterminds/squirrel"
)
-func SelectTable(table string, the_type reflect.Type, limit uint64, offset uint64) ([]interface{}, error) {
+func SelectTable(table string, the_type reflect.Type, limit uint64, page uint64) ([]interface{}, error) {
var results []interface{}
- sql_query, args, err := sq.Select("*").Limit(limit).Offset(offset).From(table).ToSql()
+ sql_query, args, err := sq.Select("*").Limit(limit).Offset(limit * page).From(table).ToSql()
if err != nil { return results, err }
rows, err := data.DB.Queryx(sql_query, args...)
diff --git a/admin/handlers.go b/admin/handlers.go
index b967284..f562a16 100644
--- a/admin/handlers.go
+++ b/admin/handlers.go
@@ -2,7 +2,6 @@ package admin
import (
"maps"
- "strconv"
"reflect"
"fmt"
"github.com/gofiber/fiber/v2"
@@ -23,10 +22,13 @@ func GetApiTableIndex(c *fiber.Ctx) error {
func GetApiSelectAll(c *fiber.Ctx) error {
table := c.Params("table")
if table == "" { return c.Redirect("/admin/") }
-
type_is := data.Models()[table]
- result, err := SelectTable(table, type_is, 20, 0);
+ page := c.QueryInt("page", 0)
+ fmt.Println("-------------------------", page)
+ if page < 0 { page = 0 }
+
+ result, err := SelectTable(table, type_is, 20, uint64(page));
if err != nil { return IfErrNil(err, c) }
return c.JSON(result)
@@ -38,12 +40,12 @@ func GetPageSelectAll(c *fiber.Ctx) error {
func GetApiSelectOne(c *fiber.Ctx) error {
table := c.Params("table")
- id, err := strconv.ParseInt(c.Params("id"), 10, 64)
- if err != nil { return IfErrNil(err, c) }
+ id, err := c.ParamsInt("id", -1)
+ if err != nil || id < 0 { return IfErrNil(err, c) }
type_is := data.Models()[table]
- result, err := Get(table, type_is, id)
+ result, err := Get(table, type_is, int64(id))
if err != nil { return IfErrNil(err, c) }
return c.JSON(result.Interface())
@@ -51,8 +53,8 @@ func GetApiSelectOne(c *fiber.Ctx) error {
func GetPageSelectOne(c *fiber.Ctx) error {
table := c.Params("table")
- id, err := strconv.ParseInt(c.Params("id"), 10, 64)
- if err != nil { return IfErrNil(err, c) }
+ id, err := c.ParamsInt("id", -1)
+ if err != nil || id < 0 { return IfErrNil(err, c) }
return c.Render("admin/table/view", fiber.Map{
"Table": table,
@@ -100,10 +102,10 @@ func PostApiInsert(c *fiber.Ctx) error {
func DeleteApi(c *fiber.Ctx) error {
table := c.Params("table")
- id, err := strconv.ParseInt(c.Params("id"), 10, 64)
- if err != nil { return IfErrNil(err, c) }
+ id, err := c.ParamsInt("id", -1)
+ if err != nil || id < 0 { return IfErrNil(err, c) }
- err = Delete(table, id)
+ err = Delete(table, int64(id))
if err != nil { return IfErrNil(err, c) }
return c.JSON(fiber.Map{})
diff --git a/views/admin/table/contents.html b/views/admin/table/contents.html
index 8e4a873..9704049 100644
--- a/views/admin/table/contents.html
+++ b/views/admin/table/contents.html
@@ -1,13 +1,25 @@
-Admin Tables
+« Admin {{ .Table }}
-
-
+
+
+
+
+
+
+
+
-
- Prev
- Next
-