diff options
| author | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-08-18 21:32:28 +0200 |
|---|---|---|
| committer | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-08-18 21:32:28 +0200 |
| commit | 992c36c6c7ce7e1e732866b3cd4fb8269a905875 (patch) | |
| tree | 15b7ae06b14341929e555ebc126f07d963213104 /web/server.go | |
| parent | 51613971c1e25dedbc808c66b79d15111d250160 (diff) | |
Diffstat (limited to 'web/server.go')
| -rw-r--r-- | web/server.go | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/web/server.go b/web/server.go index 496e44d..4bc74e3 100644 --- a/web/server.go +++ b/web/server.go @@ -67,14 +67,24 @@ func (s *Server) ListenAndServe(addr string) error { func (s *Server) handleRides(w http.ResponseWriter, r *http.Request) { rideSort := parseRideSort(r.URL.Query()) + rideFilters := parseRideFilters(r.URL.Query()) items, err := s.listRides(rideSort) if err != nil { slog.Error("Failed to load rides", "sort", rideSort.Column, "descending", rideSort.Descending, "error", err) http.Error(w, "failed to load rides", http.StatusInternalServerError) return } + items = filterRides(items, rideFilters) + if rideFilters.Active() { + slog.Info("Applied ride library filters", "matches", len(items)) + } views := buildRideViews(items) - kcore.RenderPage(r.Context(), RidesPage(views, rideSortHeaders(rideSort)), w) + kcore.RenderPage(r.Context(), RidesPage(RidesPageData{ + Items: views, + Headers: rideSortHeadersWithFilters(rideSort, rideFilters), + Filters: buildRideFilterView(rideFilters, rideSort), + Sort: rideSort, + }), w) } func (s *Server) handleRide(w http.ResponseWriter, r *http.Request) { |