backend-server-v2/internal/controllers/admin_controller.go

50 lines
965 B
Go

package controllers
import (
"bytes"
"html/template"
"github.com/gofiber/fiber/v2"
)
type AdminController struct{}
func NewAdminController() *AdminController {
return &AdminController{}
}
func (ac *AdminController) Dashboard(c *fiber.Ctx) error {
return renderAdminPage(c, "Admin")
}
func renderAdminPage(c *fiber.Ctx, title string) error {
viewData := map[string]any{
"Title": title,
"NavSection": "admin",
}
for k, v := range localsTemplateData(c) {
viewData[k] = v
}
files := []string{
"web/templates/layout.html",
"web/templates/public/_navbar.html",
"web/templates/partials/language_dropdown.html",
"web/templates/public/_flash.html",
"web/templates/admin/admin.html",
}
tmpl, err := template.ParseFiles(files...)
if err != nil {
return err
}
var out bytes.Buffer
if err := tmpl.ExecuteTemplate(&out, "layout.html", viewData); err != nil {
return err
}
c.Type("html", "utf-8")
return c.Send(out.Bytes())
}