Create lists model & controllers

This commit is contained in:
William Bouzourène 2024-12-30 14:46:42 +01:00
parent 52951753a1
commit fe71c07e17
Signed by: bouzoure
SSH key fingerprint: SHA256:19MbXpLua4rUtk8tunMesD8KUKb91LXLHg8E/qTooww
4 changed files with 75 additions and 4 deletions

35
controllers/lists.go Normal file
View file

@ -0,0 +1,35 @@
package controllers
import "github.com/gofiber/fiber/v2"
func Lists(c *fiber.Ctx) error {
return c.SendString("Lists")
}
func ListShow(c *fiber.Ctx) error {
return c.SendString("ListShow")
}
func ListAdd(c *fiber.Ctx) error {
return c.SendString("ListAdd")
}
func ListEdit(c *fiber.Ctx) error {
return c.SendString("ListEdit")
}
func ListDelete(c *fiber.Ctx) error {
return c.SendString("ListDelete")
}
func ListItemAdd(c *fiber.Ctx) error {
return c.SendString("ListItemAdd")
}
func ListItemEdit(c *fiber.Ctx) error {
return c.SendString("ListItemEdit")
}
func ListItemDelete(c *fiber.Ctx) error {
return c.SendString("ListItemDelete")
}

22
main.go
View file

@ -93,18 +93,38 @@ func main() {
app.Use(middlewares.TemplatesMiddleware)
app.Use("/admin", middlewares.AuthzAdmin)
// Controllers
// Homepage
app.Get("/", controllers.Homepage)
// Login & logout
app.Get("/login", controllers.LoginForm)
app.Post("/login", controllers.LoginForm)
app.Get("/logout", controllers.LogoutProcess)
// Welcome page on first login
app.Get("/welcome", controllers.WelcomePage)
app.Post("/welcome", controllers.WelcomePage)
// TOTP enroll & verify
app.Get("/totp/enroll", controllers.TotpEnrollPage)
app.Post("/totp/enroll", controllers.TotpEnrollPage)
app.Get("/totp/verify", controllers.TotpVerifyPage)
app.Post("/totp/verify", controllers.TotpVerifyPage)
// Admin: Lists
app.Get("/admin/lists", controllers.Lists)
app.Get("/admin/lists/:id<int;min(0)>", controllers.ListShow)
app.Get("/admin/lists/add", controllers.ListAdd)
app.Post("/admin/lists/add", controllers.ListAdd)
app.Get("/admin/lists/:id<int;min(0)>/edit", controllers.ListEdit)
app.Post("/admin/lists/:id<int;min(0)>/edit", controllers.ListEdit)
app.Delete("/admin/lists/:id<int;min(0)>", controllers.ListDelete)
app.Get("/admin/lists/:id<int;min(0)>/items/add", controllers.ListItemAdd)
app.Post("/admin/lists/:id<int;min(0)>/items/add", controllers.ListItemAdd)
app.Get("/admin/lists/:id<int;min(0)>/items/:id<int;min(0)>", controllers.ListItemEdit)
app.Post("/admin/lists/:id<int;min(0)>/items/:id<int;min(0)>", controllers.ListItemEdit)
app.Delete("/admin/lists/:id<int;min(0)>/items/:id<int;min(0)>", controllers.ListItemDelete)
listenAddr := fmt.Sprintf(
"%s:%d",
config.App.ListenAddress,

16
models/lists.go Normal file
View file

@ -0,0 +1,16 @@
package models
import "gorm.io/gorm"
type List struct {
gorm.Model
Name string
Multi bool
}
type ListItem struct {
gorm.Model
Value string
Default string
List List
}

View file

@ -53,17 +53,17 @@
</a>
<ul class="dropdown-menu dropdown-menu-end">
<li>
<a class="dropdown-item" href="/account/manage">
<a class="dropdown-item" href="/admin/sections">
<i class="feather me-2" data-feather="home"></i>Sections
</a>
</li>
<li>
<a class="dropdown-item" href="/account/totp">
<a class="dropdown-item" href="/admin/lists">
<i class="feather me-2" data-feather="list"></i>Listes
</a>
</li>
<li>
<a class="dropdown-item" href="/logout">
<a class="dropdown-item" href="/admin/fields">
<i class="feather me-2" data-feather="database"></i>Champs supplémentaires
</a>
</li>