From 992c36c6c7ce7e1e732866b3cd4fb8269a905875 Mon Sep 17 00:00:00 2001 From: Martin Kagamino Lehoux Date: Tue, 18 Aug 2026 21:32:28 +0200 Subject: feat(web): add ride library filters --- web/views.go | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) (limited to 'web/views.go') diff --git a/web/views.go b/web/views.go index b728de8..de4d38f 100644 --- a/web/views.go +++ b/web/views.go @@ -18,6 +18,13 @@ type RideView struct { CotacolPer100Km string } +type RidesPageData struct { + Items []RideView + Headers []RideSortHeader + Filters RideFilterView + Sort RideSort +} + type RideDetailView struct { RideView Route GeoJSONFeatureCollection @@ -168,6 +175,10 @@ func (s RideSort) databaseColumn() (rides.SortColumn, bool) { } func rideSortHeaders(current RideSort) []RideSortHeader { + return rideSortHeadersWithFilters(current, RideFilters{}) +} + +func rideSortHeadersWithFilters(current RideSort, filters RideFilters) []RideSortHeader { columns := []struct { key string label string @@ -188,13 +199,9 @@ func rideSortHeaders(current RideSort) []RideSortHeader { if active { descending = !current.Descending } - query := url.Values{} + query := rideFilterQuery(filters) query.Set("sort", column.key) - if descending { - query.Set("dir", "desc") - } else { - query.Set("dir", "asc") - } + query.Set("dir", rideSortDirection(RideSort{Column: column.key, Descending: descending})) headerClass := column.class ariaSort := "none" indicator := "" @@ -219,6 +226,13 @@ func rideSortHeaders(current RideSort) []RideSortHeader { return headers } +func rideSortDirection(sort RideSort) string { + if sort.Descending { + return "desc" + } + return "asc" +} + func rideDetailURL(id int64) string { return fmt.Sprintf("/rides/%d", id) } -- cgit v1.2.3