diff options
author | GrailFinder <wohilas@gmail.com> | 2024-03-23 16:39:52 +0300 |
---|---|---|
committer | GrailFinder <wohilas@gmail.com> | 2024-03-23 16:39:52 +0300 |
commit | 4ea04ef5b382b147d789240ef78dc24bd142df95 (patch) | |
tree | f2d61824aefae9a87312d4a73874701e10d1b9c4 | |
parent | 87d71e65ed131b3e15510af968dd5ba0d30d851d (diff) |
Enha: demonstraton of layouts
-rw-r--r-- | components/actions_table.html | 42 | ||||
-rw-r--r-- | components/index.html | 33 | ||||
-rw-r--r-- | internal/handlers/main.go | 20 | ||||
-rw-r--r-- | internal/models/models.go | 2 |
4 files changed, 73 insertions, 24 deletions
diff --git a/components/actions_table.html b/components/actions_table.html new file mode 100644 index 0000000..0e9ecc1 --- /dev/null +++ b/components/actions_table.html @@ -0,0 +1,42 @@ +{{define "UserScore"}} +<table> + <tr> + <th>ID</th> + <th>BurnTime</th> + <th>Score</th> + </tr> + <tr> + <td>{{.ID}}</td> + <td>{{.BurnTime}}</td> + <td>{{.Score}}</td> + </tr> +</table> +<table> + <tr> + <th>ActionTypePlus</th> + </tr> + {{range $action := .Actions}} + {{if eq $action.Type "ActionTypePlus"}} + <tr> + <td>{{$action.Name}}</td> + <td>{{$action.Magnitude}}</td> + <td>{{$action.Repeatable}}</td> + </tr> + {{end}} + {{end}} +</table> +<table> + <tr> + <th>ActionTypeMinus</th> + </tr> + {{range $action := .Actions}} + {{if eq $action.Type "ActionTypeMinus"}} + <tr> + <td>{{$action.Name}}</td> + <td>{{$action.Magnitude}}</td> + <td>{{$action.Repeatable}}</td> + </tr> + {{end}} + {{end}} +</table> +{{end}} diff --git a/components/index.html b/components/index.html index 7c4cb82..d32154a 100644 --- a/components/index.html +++ b/components/index.html @@ -1,3 +1,4 @@ +{{define "main"}} <!DOCTYPE html> <html> <head> @@ -12,20 +13,21 @@ <div> HELLO {{.ID}} <br /> - You have {{len .Actions}} actions. - <br /> - Your current score: {{.Score}} - <br /> - {{ range .Actions }} - Action Name: {{.Name}} - <br /> - Action Magnitude: {{.Magnitude}} - <br /> - Action Type: {{.Type}} - <br /> - Repeatable: {{.Repeatable}} - <br /> - {{end}} + <!-- You have {{len .Actions}} actions. --> + <!-- <br /> --> + <!-- Your current score: {{.Score}} --> + <!-- <br /> --> + <!-- {{ range .Actions }} --> + <!-- Action Name: {{.Name}} --> + <!-- <br /> --> + <!-- Action Magnitude: {{.Magnitude}} --> + <!-- <br /> --> + <!-- Action Type: {{.Type}} --> + <!-- <br /> --> + <!-- Repeatable: {{.Repeatable}} --> + <!-- <br /> --> + <!-- {{end}} --> + {{ template "UserScore" . }} </div> <div> @@ -34,7 +36,7 @@ <label>Name:</label><br /> <input type="text" name="name"><br /> <label>Magnitude:</label><br /> - <input type="number" default="1" name="magnitude"><br /> + <input type="number" value="1" name="magnitude"><br /> <label>Repeatable:</label><br /> <input type="checkbox" name="repeatable"></input><br /> <input type="radio" name="act_type" value="plus" checked> @@ -47,3 +49,4 @@ </div> </body> </html> +{{end}} diff --git a/internal/handlers/main.go b/internal/handlers/main.go index 1934250..4abc8e1 100644 --- a/internal/handlers/main.go +++ b/internal/handlers/main.go @@ -43,9 +43,14 @@ func (h *Handlers) Ping(w http.ResponseWriter, r *http.Request) { func (h *Handlers) MainPage(w http.ResponseWriter, r *http.Request) { h.log.Info("got mainpage request") - tmpl := template.Must(template. - ParseFiles("components/index.html")) - tmpl.Execute(w, us) + // tmpl := template.Must(template.ParseFiles("components/index.html")) + tmpl, err := template.ParseGlob("components/*.html") + if err != nil { + panic(err) + } + // tmpl.Execute(w, us) + us.ID = "test" + tmpl.ExecuteTemplate(w, "main", us) } func (h *Handlers) HandleForm(w http.ResponseWriter, r *http.Request) { @@ -53,7 +58,7 @@ func (h *Handlers) HandleForm(w http.ResponseWriter, r *http.Request) { h.log.Info("got postform request", "payload", r.PostForm) magnitude := uint8(1) mS := r.PostFormValue("magnitude") - if mS != "1" || mS != "" { + if mS != "1" || mS != "" || mS != " " { u64, err := strconv.ParseUint(mS, 10, 64) magnitude = uint8(u64) if err != nil { @@ -83,7 +88,8 @@ func (h *Handlers) HandleForm(w http.ResponseWriter, r *http.Request) { Repeatable: repeat, } us.Actions = append(us.Actions, act) - tmpl := template.Must(template. - ParseFiles("components/index.html")) - tmpl.Execute(w, us) + tmpl := template.Must(template.ParseGlob("components/*.html")) + // tmpl := template.Must(template.ParseFiles("components/index.html")) + // tmpl.Execute(w, us) + tmpl.ExecuteTemplate(w, "main", us) } diff --git a/internal/models/models.go b/internal/models/models.go index ee6ae5f..42990a3 100644 --- a/internal/models/models.go +++ b/internal/models/models.go @@ -16,8 +16,6 @@ type ( BurnTime time.Time Score int8 } - - // plus 1 Action struct { Name string Magnitude uint8 |