add some validation
This commit is contained in:
parent
7a63210bdf
commit
b972b17515
1 changed files with 27 additions and 3 deletions
|
|
@ -5,6 +5,7 @@ import (
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"github.com/maddalax/htmgo/framework/h"
|
"github.com/maddalax/htmgo/framework/h"
|
||||||
"github.com/maddalax/htmgo/framework/hx"
|
"github.com/maddalax/htmgo/framework/hx"
|
||||||
|
"github.com/maddalax/htmgo/framework/js"
|
||||||
"todolist/ent"
|
"todolist/ent"
|
||||||
"todolist/internal/tasks"
|
"todolist/internal/tasks"
|
||||||
)
|
)
|
||||||
|
|
@ -50,6 +51,8 @@ func Input(list []*ent.Task) *h.Element {
|
||||||
h.Class("border border-b-slate-100 relative"),
|
h.Class("border border-b-slate-100 relative"),
|
||||||
h.Input(
|
h.Input(
|
||||||
"text",
|
"text",
|
||||||
|
h.Attribute("required", "true"),
|
||||||
|
h.Attribute("maxlength", "150"),
|
||||||
h.Attribute("autocomplete", "off"),
|
h.Attribute("autocomplete", "off"),
|
||||||
h.Attribute("autofocus", "true"),
|
h.Attribute("autofocus", "true"),
|
||||||
h.Attribute("name", "name"),
|
h.Attribute("name", "name"),
|
||||||
|
|
@ -150,6 +153,8 @@ func Task(task *ent.Task, editing bool) *h.Element {
|
||||||
"text",
|
"text",
|
||||||
h.PostPartial(UpdateName, hx.TriggerBlur, hx.TriggerKeyUpEnter),
|
h.PostPartial(UpdateName, hx.TriggerBlur, hx.TriggerKeyUpEnter),
|
||||||
h.Attributes(&h.AttributeMap{
|
h.Attributes(&h.AttributeMap{
|
||||||
|
"maxLength": "150",
|
||||||
|
"required": "true",
|
||||||
"placeholder": "What needs to be done?",
|
"placeholder": "What needs to be done?",
|
||||||
"autofocus": "true",
|
"autofocus": "true",
|
||||||
"autocomplete": "off",
|
"autocomplete": "off",
|
||||||
|
|
@ -202,6 +207,10 @@ func UpdateName(ctx *h.RequestContext) *h.Partial {
|
||||||
return h.NewPartial(h.Div(h.Text("name is required")))
|
return h.NewPartial(h.Div(h.Text("name is required")))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(name) > 150 {
|
||||||
|
return h.NewPartial(h.Div(h.Text("task must be less than 150 characters")))
|
||||||
|
}
|
||||||
|
|
||||||
service := tasks.NewService(ctx.ServiceLocator())
|
service := tasks.NewService(ctx.ServiceLocator())
|
||||||
task, err := service.Get(id)
|
task, err := service.Get(id)
|
||||||
|
|
||||||
|
|
@ -288,11 +297,26 @@ func ClearCompleted(ctx *h.RequestContext) *h.Partial {
|
||||||
func Create(ctx *h.RequestContext) *h.Partial {
|
func Create(ctx *h.RequestContext) *h.Partial {
|
||||||
name := ctx.FormValue("name")
|
name := ctx.FormValue("name")
|
||||||
|
|
||||||
if name == "" {
|
if len(name) > 150 {
|
||||||
return h.NewPartial(h.Div(h.Text("name is required")))
|
return h.NewPartial(
|
||||||
|
h.Div(
|
||||||
|
h.HxOnLoad(js.Alert("Task must be less than 150 characters")),
|
||||||
|
),
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
service := tasks.NewService(ctx.ServiceLocator())
|
service := tasks.NewService(ctx.ServiceLocator())
|
||||||
|
|
||||||
|
list, _ := service.List()
|
||||||
|
|
||||||
|
if list != nil && len(list) >= 200 {
|
||||||
|
return h.NewPartial(
|
||||||
|
h.Div(
|
||||||
|
h.HxOnLoad(js.Alert("There are too many tasks, please complete and clear some.")),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
_, err := service.Create(tasks.CreateRequest{
|
_, err := service.Create(tasks.CreateRequest{
|
||||||
Name: name,
|
Name: name,
|
||||||
})
|
})
|
||||||
|
|
@ -301,7 +325,7 @@ func Create(ctx *h.RequestContext) *h.Partial {
|
||||||
return h.NewPartial(h.Div(h.Text("failed to create")))
|
return h.NewPartial(h.Div(h.Text("failed to create")))
|
||||||
}
|
}
|
||||||
|
|
||||||
list, _ := service.List()
|
list, err = service.List()
|
||||||
|
|
||||||
return h.SwapManyPartial(ctx,
|
return h.SwapManyPartial(ctx,
|
||||||
CardBody(list, getActiveTab(ctx)),
|
CardBody(list, getActiveTab(ctx)),
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue