Compare commits
4 Commits
d6540d5764
...
48f104650f
Author | SHA1 | Date | |
---|---|---|---|
48f104650f | |||
32fbd1d28d | |||
e18fb0d158 | |||
16240b8c01 |
41
main.go
41
main.go
@ -1,3 +1,42 @@
|
||||
package main
|
||||
|
||||
func main() {}
|
||||
import (
|
||||
"html/template"
|
||||
"log"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
type Person struct {
|
||||
FirstName string
|
||||
LastName string
|
||||
}
|
||||
|
||||
type Instructor Person
|
||||
|
||||
type Participant struct {
|
||||
Person
|
||||
Company string
|
||||
}
|
||||
|
||||
type Briefing struct {
|
||||
Instructor
|
||||
Date string
|
||||
Time string
|
||||
State string
|
||||
Location string
|
||||
Participants []Participant
|
||||
}
|
||||
|
||||
func main() {
|
||||
mux := http.NewServeMux()
|
||||
|
||||
mux.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static/"))))
|
||||
mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
|
||||
template.Must(template.ParseFiles("templates/index.html")).Execute(w, nil)
|
||||
})
|
||||
mux.HandleFunc("/add-participant/", func(w http.ResponseWriter, r *http.Request) {
|
||||
template.Must(template.ParseFiles("templates/index.html", "templates/participant.html")).ExecuteTemplate(w, "participant", nil)
|
||||
})
|
||||
|
||||
log.Fatalln(http.ListenAndServe(":8080", mux))
|
||||
}
|
||||
|
@ -10,10 +10,49 @@
|
||||
|
||||
<body>
|
||||
<h1>Sicherheitsunterweisung</h1>
|
||||
|
||||
<form>
|
||||
<div id="date">
|
||||
<label for="date-input">Datum</label>
|
||||
<input type="date" name="date" id="date-input" />
|
||||
</div>
|
||||
|
||||
<div id="time">
|
||||
<label for="time-input">Uhrzeit</label>
|
||||
<input type="time" name="time" id="time-input" />
|
||||
</div>
|
||||
|
||||
<div id="state">
|
||||
<label for="state-input">Stand vom</label>
|
||||
<input type="date" name="state" id="state-input" />
|
||||
</div>
|
||||
|
||||
<div id="location">
|
||||
<label for="location-input">Ort</label>
|
||||
<input type="text" name="location" id="location-input" />
|
||||
</div>
|
||||
|
||||
<div id="participants">
|
||||
<button type="button" hx-post="/add-participant/" hx-target="#participants" hx-swap="beforeend"
|
||||
hx-trigger="click">
|
||||
+
|
||||
</button>
|
||||
|
||||
<div id="participant-{{ .ID }}">
|
||||
<label for="participant-first-input-{{ .ID }}">Vorname</label>
|
||||
<input type="text" name="participant-first" id="participant-first-input-{{ .ID }}" />
|
||||
|
||||
<label for="participant-last-input-{{ .ID }}">Nachname</label>
|
||||
<input type="text" name="participant-last" id="participant-last-input-{{ .ID }}" />
|
||||
|
||||
<label for="participant-company-input-{{ .ID }}">Firma</label>
|
||||
<input type="text" name="participant-company" id="participant-company-input-{{ .ID }}" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button type="submit">Senden</button>
|
||||
</form>
|
||||
|
||||
<script src="/static/js/htmx.min.js" type="text/javascript"></script>
|
||||
</body>
|
||||
|
||||
|
12
templates/participant.html
Normal file
12
templates/participant.html
Normal file
@ -0,0 +1,12 @@
|
||||
{{ define "participant" }}
|
||||
<div id="participant-{{ .ID }}">
|
||||
<label for="participant-first-input-{{ .ID }}">Vorname</label>
|
||||
<input type="text" name="participant-first" id="participant-first-input-{{ .ID }}" />
|
||||
|
||||
<label for="participant-last-input-{{ .ID }}">Nachname</label>
|
||||
<input type="text" name="participant-last" id="participant-last-input-{{ .ID }}" />
|
||||
|
||||
<label for="participant-company-input-{{ .ID }}">Firma</label>
|
||||
<input type="text" name="participant-company" id="participant-company-input-{{ .ID }}" />
|
||||
</div>
|
||||
{{ end }}
|
Loading…
x
Reference in New Issue
Block a user