summaryrefslogtreecommitdiff
path: root/web/server.go
diff options
context:
space:
mode:
Diffstat (limited to 'web/server.go')
-rw-r--r--web/server.go12
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) {