fix: host modal — single POST endpoint for create+edit, remove hx-put conflict

- hx-put="" (empty) was causing HTMX to send wrong requests
- Now use single hx-post="/hosts" with hidden hostId field
- Server checks hostId: empty → create, present → update
- UpdateHost reads ID from both URL param and form data
This commit is contained in:
swanadiva
2026-07-07 15:56:54 +07:00
parent 301115b74d
commit a2412b7cd2
2 changed files with 12 additions and 4 deletions
+10 -2
View File
@@ -51,6 +51,12 @@ func parsePort(s string, def int) int {
}
func CreateHost(c *fiber.Ctx) error {
hostID := c.FormValue("hostId")
if hostID != "" {
return UpdateHost(c)
}
name := c.FormValue("name")
ip := c.FormValue("ip")
if name == "" || ip == "" {
@@ -77,9 +83,8 @@ func CreateHost(c *fiber.Ctx) error {
h.AuthType = "key"
}
created := hostStore.AddFull(h)
hostStore.AddFull(h)
hosts := hostStore.All()
_ = created
return c.Render("host_list", fiber.Map{
"Hosts": hosts,
"Active": countByStatus(hosts, "active"),
@@ -89,6 +94,9 @@ func CreateHost(c *fiber.Ctx) error {
func UpdateHost(c *fiber.Ctx) error {
id := c.Params("id")
if id == "" {
id = c.FormValue("hostId")
}
existing, found := hostStore.Get(id)
if !found {
return c.Status(404).SendString("host not found")