diff --git a/database/mainpage.go b/database/mainpage.go index 6f0781e..3229318 100644 --- a/database/mainpage.go +++ b/database/mainpage.go @@ -5,25 +5,54 @@ import ( "github.com/gin-gonic/gin" "github.com/jackc/pgx/v4/pgxpool" "log" + "strconv" "trikotwaschliste/models" ) func DbMainpage(pool *pgxpool.Pool) gin.H { var items []models.Washlist + var persons []models.Person - witems, err := pool.Query(context.Background(), "SELECT pe.name, ga.created_at, wa.washed \nFROM washlist wa\nINNER JOIN persons pe ON wa.personid = pe.id\nINNER JOIN gamedata ga ON wa.gamedataid = ga.id") + witems, err := pool.Query(context.Background(), "SELECT wa.id, pe.name, ga.created_at, wa.washed \nFROM washlist wa\nINNER JOIN persons pe ON wa.personid = pe.id\nINNER JOIN gamedata ga ON wa.gamedataid = ga.id") if err != nil { log.Println(err.Error()) } var item models.Washlist for witems.Next() { - err = witems.Scan(&item.Person, &item.Date, &item.IsWashed) + err = witems.Scan(&item.Id, &item.Person, &item.Date, &item.Washed) if err != nil { log.Println(err.Error()) } items = append(items, item) } - return gin.H{"items": items} + // get persons + wperson, err := pool.Query(context.Background(), "SELECT id, name FROM persons") + if err != nil { + log.Println(err.Error()) + } + + var person models.Person + for wperson.Next() { + err = wperson.Scan(&person.Id, &person.Name) + if err != nil { + log.Println(err.Error()) + } + persons = append(persons, person) + } + + + return gin.H{"items": items, "persons": persons} +} + +func UploadName(pool *pgxpool.Pool, id, washID string) bool { + sID, _ := strconv.Atoi(id) + if sID <= 0 { + return false + } + + pool.Exec(context.Background(), "UPDATE washlist SET washed = $1 WHERE id = $2", id, washID) + + return true } diff --git a/database/migrations/20100830202_washlistperson.down.psql b/database/migrations/20100830202_washlistperson.down.psql new file mode 100644 index 0000000..5ae088a --- /dev/null +++ b/database/migrations/20100830202_washlistperson.down.psql @@ -0,0 +1,3 @@ +-- +-- DROP/Reverse everything here +-- \ No newline at end of file diff --git a/database/migrations/20100830202_washlistperson.up.psql b/database/migrations/20100830202_washlistperson.up.psql new file mode 100644 index 0000000..7436879 --- /dev/null +++ b/database/migrations/20100830202_washlistperson.up.psql @@ -0,0 +1,4 @@ +ALTER TABLE public.washlist + ALTER COLUMN washed TYPE character varying(100); +ALTER TABLE public.washlist + ALTER COLUMN washed DROP NOT NULL; \ No newline at end of file diff --git a/handler/mainpage.go b/handler/mainpage.go index d543d57..e800f04 100644 --- a/handler/mainpage.go +++ b/handler/mainpage.go @@ -12,3 +12,13 @@ func MainPage(pool *pgxpool.Pool) gin.HandlerFunc { c.HTML(http.StatusAccepted, "index.html", database.DbMainpage(pool)) } } + +func UploadName(pool *pgxpool.Pool) gin.HandlerFunc { + return func(c *gin.Context) { + selectedID := c.PostForm("names") + washID := c.PostForm("washid") + + database.UploadName(pool, selectedID, washID) + c.Redirect(302, "/") + } +} diff --git a/html/mainpage/index.html b/html/mainpage/index.html index ef76986..683b55e 100644 --- a/html/mainpage/index.html +++ b/html/mainpage/index.html @@ -9,21 +9,39 @@ {{template "navbar"}}
Person | Datum | Gewaschen? | +Waschperson | |||
---|---|---|---|---|---|---|
{{.Person}} | -{{.Date}} | -{{.IsWashed}} | +{{$item.Person}} | +{{$item.Date}} | +{{$item.Washed}} | +
+
+
+
+
+ |