summaryrefslogtreecommitdiff
path: root/templ
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--templ/form.tpl14
-rw-r--r--templ/login.tpl6
-rw-r--r--templ/login2.tpl4
-rw-r--r--templ/template.go7
4 files changed, 30 insertions, 1 deletions
diff --git a/templ/form.tpl b/templ/form.tpl
new file mode 100644
index 0000000..b17cb1d
--- /dev/null
+++ b/templ/form.tpl
@@ -0,0 +1,14 @@
+{{define "formItem"}}
+ <label {{with .ID}}for="{{.}}"{{end}}>{{.Label}}</label>
+ <input
+ {{with .ID}}id="{{.}}"{{end}}
+ type="{{.Type}}"
+ name="{{.Name}}"
+ placeholder="{{.Placeholder}}"
+ {{with .Value}}value="{{.}}"{{end}}
+ {{with .Class}}class="{{.}}"{{end}}
+ {{range .Options}} {{.}} {{end}}
+ >
+ {{with .Footer}}<p>{{.}}</p>{{end}}
+ <br />
+{{end}} \ No newline at end of file
diff --git a/templ/login.tpl b/templ/login.tpl
new file mode 100644
index 0000000..40d49c9
--- /dev/null
+++ b/templ/login.tpl
@@ -0,0 +1,6 @@
+{{define "body"}}
+ <form action="/login" method="post">
+ {{inputs_for .}}
+ <button type="submit">Log In!</button>
+ </form>
+{{end}} \ No newline at end of file
diff --git a/templ/login2.tpl b/templ/login2.tpl
new file mode 100644
index 0000000..89ba6a5
--- /dev/null
+++ b/templ/login2.tpl
@@ -0,0 +1,4 @@
+{{define "body"}}
+ Logged in with user: {{.Name}} <br>
+ You have chosen: {{.Password}}
+{{end}} \ No newline at end of file
diff --git a/templ/template.go b/templ/template.go
index 8fed965..20a4de7 100644
--- a/templ/template.go
+++ b/templ/template.go
@@ -4,6 +4,8 @@ import (
"embed"
"html/template"
"sync"
+
+ "github.com/Necoro/form"
)
//go:embed *.tpl
@@ -13,9 +15,12 @@ var templates = make(map[string]*template.Template)
var muTpl sync.RWMutex
var baseTpl *template.Template
+var formBuilder form.Builder
func init() {
- baseTpl = template.Must(template.ParseFS(fs, "base.tpl"))
+ baseTpl = template.Must(template.ParseFS(fs, "base.tpl", "form.tpl"))
+ formBuilder = form.Builder{InputTemplate: baseTpl.Lookup("formItem")}
+ baseTpl.Funcs(formBuilder.FuncMap())
}
func Lookup(name string) *template.Template {