From d59c119f75586e8e6e8183301ec20161394f0375 Mon Sep 17 00:00:00 2001 From: bronku Date: Sat, 29 Mar 2025 09:13:40 +0100 Subject: [PATCH] search frontend --- internal/server/get.go | 6 ++++++ internal/server/server.go | 20 ++++++++++--------- internal/server/template.go | 4 ++-- internal/server/templates/cake.html | 2 +- internal/server/templates/order.html | 2 +- internal/server/templates/orders.html | 28 ++++++++++++++++++++++++--- 6 files changed, 46 insertions(+), 16 deletions(-) diff --git a/internal/server/get.go b/internal/server/get.go index 9a452d2..0afbdc9 100644 --- a/internal/server/get.go +++ b/internal/server/get.go @@ -14,6 +14,12 @@ func (h *Server) orders(r *http.Request) (any, int, error) { return data, http.StatusOK, err } +func (h *Server) ordersSearch(r *http.Request) (any, int, error) { + data, err := h.s.GetOrders() + data = data[:3] + return data, http.StatusOK, err +} + func (h *Server) cakes(r *http.Request) (any, int, error) { data, err := h.s.GetCakes() return data, http.StatusOK, err diff --git a/internal/server/server.go b/internal/server/server.go index 4267e35..61a6a86 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -16,8 +16,9 @@ type Server struct { } type route struct { - function fetcher - template string + function fetcher + template string + templateEntry string } func (h *Server) Close() { @@ -30,7 +31,7 @@ func (h *Server) loadHandler() { mux := http.NewServeMux() for i, e := range h.routes { - mux.HandleFunc(i, h.render(e.function, e.template)) + mux.HandleFunc(i, h.render(e.function, e.template, e.templateEntry)) } mux.HandleFunc("GET /", h.redirect("/orders", http.StatusSeeOther)) @@ -45,12 +46,13 @@ func New(store *store.Store) *Server { var server Server server.routes = map[string]route{ - "GET /order/": {server.order, "order"}, - "GET /orders": {server.orders, "orders"}, - "GET /cake/": {server.cake, "cake"}, - "GET /cakes": {server.cakes, "cakes"}, - "POST /order/": {server.postOrder, "confirmation"}, - "POST /cake/": {server.postCake, "confirmation"}, + "GET /order/": {server.order, "order", "layout"}, + "GET /orders": {server.orders, "orders", "layout"}, + "GET /orders/search/": {server.ordersSearch, "orders", "orders-table"}, + "GET /cake/": {server.cake, "cake", "layout"}, + "GET /cakes": {server.cakes, "cakes", "layout"}, + "POST /order/": {server.postOrder, "confirmation", "layout"}, + "POST /cake/": {server.postCake, "confirmation", "layout"}, } server.loadTemplates() diff --git a/internal/server/template.go b/internal/server/template.go index 7fa2ae4..e63edd7 100644 --- a/internal/server/template.go +++ b/internal/server/template.go @@ -26,14 +26,14 @@ func (h *Server) loadTemplates() { } } -func (s *Server) render(fetch fetcher, templateName string) http.HandlerFunc { +func (s *Server) render(fetch fetcher, templateFile string, templateEntry string) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { data, code, err := fetch(r) if err != nil { logging.ErrorPage(err, code).ServeHTTP(w, r) return } - err = s.tmpl[templateName].ExecuteTemplate(w, "layout", data) + err = s.tmpl[templateFile].ExecuteTemplate(w, templateEntry, data) if err != nil { logging.ErrorPage(err, http.StatusInternalServerError).ServeHTTP(w, r) return diff --git a/internal/server/templates/cake.html b/internal/server/templates/cake.html index 3e5a714..d372762 100644 --- a/internal/server/templates/cake.html +++ b/internal/server/templates/cake.html @@ -1,5 +1,5 @@ {{define "title"}} -Cake +Cake {{.ID}} {{end}} {{define "main"}}
diff --git a/internal/server/templates/order.html b/internal/server/templates/order.html index af41295..11a2ae8 100644 --- a/internal/server/templates/order.html +++ b/internal/server/templates/order.html @@ -1,5 +1,5 @@ {{define "title"}} - Order + Order {{.Order.ID}} {{end}} {{define "main"}}
diff --git a/internal/server/templates/orders.html b/internal/server/templates/orders.html index d0b2cb1..ad3c81b 100644 --- a/internal/server/templates/orders.html +++ b/internal/server/templates/orders.html @@ -4,7 +4,30 @@ {{end}} {{define "main"}}
- +
+ + +
+ Searching... +
+ +
+ {{template "orders-table" .}} +
+
+ +{{end}} + +{{define "orders-table"}} +
@@ -30,5 +53,4 @@ {{end}}
Name
-
-{{end}} + {{end}}