diff --git a/main.go b/main.go index 95a3736..42c39ed 100644 --- a/main.go +++ b/main.go @@ -6,39 +6,24 @@ import ( "streifling.com/jason/sicherheitsunterweisung/packages/db" "streifling.com/jason/sicherheitsunterweisung/packages/server" - "streifling.com/jason/sicherheitsunterweisung/packages/types" ) -func writeBriefing(ch chan *types.Briefing, db *db.DB) { - for b := range ch { - db.WriteBriefing(b) - } -} - func main() { var i, j int64 i, j = 1, 1 - mux := http.NewServeMux() - cb := make(chan *types.Briefing) db, err := db.Open("sicherheitsunterweisung") if err != nil { log.Fatalln(err) } - bs, err := db.ReadAll() - if err != nil { - log.Fatalln(err) - } - mux.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static/")))) - // mux.HandleFunc("/", server.DisplayForm(&i)) - mux.HandleFunc("/", server.DisplayTable(bs)) + mux.HandleFunc("/", server.DisplayTable(db)) + mux.HandleFunc("/submit/", server.SubmitForm(db, &i, &j)) + mux.HandleFunc("/search/", server.DisplayResults(db)) + mux.HandleFunc("/new-briefing/", server.DisplayForm(&i)) mux.HandleFunc("/add-participant/", server.AddParticipant(&i)) - mux.HandleFunc("/submit/", server.SubmitForm(cb, &i, &j)) - - go writeBriefing(cb, db) log.Fatalln(http.ListenAndServe(":8080", mux)) } diff --git a/packages/server/server.go b/packages/server/server.go index 0059a0a..2f70433 100644 --- a/packages/server/server.go +++ b/packages/server/server.go @@ -5,18 +5,34 @@ import ( "html/template" "log" "net/http" + + "streifling.com/jason/sicherheitsunterweisung/packages/db" "streifling.com/jason/sicherheitsunterweisung/packages/types" ) -func DisplayTable(bs *[]types.Briefing) http.HandlerFunc { +func DisplayTable(db *db.DB) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { + bs, err := db.ReadAll() + if err != nil { + _ = fmt.Errorf("DisplayTable: %v\n", err) + } template.Must(template.ParseFiles("templates/index.html", "templates/table.html")).Execute(w, bs) } } +func DisplayResults(db *db.DB) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + bs, err := db.ReadByName(r.PostFormValue("search")) + if err != nil { + _ = fmt.Errorf("DisplayResults: db.ReadByName(r.PostFormValue()): %v\n", err) + } + template.Must(template.ParseFiles("templates/table.html")).ExecuteTemplate(w, "rows", bs) + } +} + func DisplayForm(i *int64) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { - template.Must(template.ParseFiles("templates/index.html", "templates/form.html")).Execute(w, i) + template.Must(template.ParseFiles("templates/form.html")).ExecuteTemplate(w, "content", i) } } @@ -27,7 +43,7 @@ func AddParticipant(i *int64) http.HandlerFunc { } } -func SubmitForm(ch chan<- *types.Briefing, i, j *int64) http.HandlerFunc { +func SubmitForm(db *db.DB, i, j *int64) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { b := new(types.Briefing) @@ -50,6 +66,11 @@ func SubmitForm(ch chan<- *types.Briefing, i, j *int64) http.HandlerFunc { } log.Println(b) - ch <- b + db.WriteBriefing(b) + bs, err := db.ReadAll() + if err != nil { + _ = fmt.Errorf("SubmitForm: db.ReadAll(): %v\n", err) + } + template.Must(template.ParseFiles("templates/index.html", "templates/table.html")).Execute(w, bs) } } diff --git a/templates/form.html b/templates/form.html index 2ef2f40..19d147d 100644 --- a/templates/form.html +++ b/templates/form.html @@ -49,6 +49,8 @@ {{ template "participant" . }} - + {{ end }} diff --git a/templates/index.html b/templates/index.html index 3ec42b0..c15d010 100644 --- a/templates/index.html +++ b/templates/index.html @@ -11,7 +11,9 @@

Sicherheitsunterweisung

- {{ template "content" . }} +
+ {{ template "content" . }} +
diff --git a/templates/table.html b/templates/table.html index 3398dbc..1f86b88 100644 --- a/templates/table.html +++ b/templates/table.html @@ -1,4 +1,5 @@ -{{ define "row" }} +{{ define "rows" }} +{{ range . }} {{ .FirstName }} {{ .LastName }} @@ -13,27 +14,38 @@ {{ end }} {{ end }} +{{ end }} {{ define "content" }}
- + +
+ +
+
- - - - - - - - - + + + + + + + + + + + - {{ range . }} - {{ template "row" . }} - {{ end }} + + {{ template "rows" . }} +
Name UnterweiserDatumUhrzeitStandOrtName TeilnehmerFirma
Name UnterweiserDatumUhrzeitStandOrtName TeilnehmerFirma
{{ end }}