diff options
| author | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-08-24 09:27:29 +0200 |
|---|---|---|
| committer | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-08-24 09:27:29 +0200 |
| commit | 8b921624666141c09cf20e2e0ee3cbe260a6412d (patch) | |
| tree | 7f708dfe7807dda1f54e4d010d58858d5e7c5999 /web/templates.templ | |
| parent | 34b8ae8f4c16b86281aa578e8f6891fca3666d37 (diff) | |
Add type filtering, drop hard-coded filters and route filter, tune backtest
Diffstat (limited to 'web/templates.templ')
| -rw-r--r-- | web/templates.templ | 71 |
1 files changed, 59 insertions, 12 deletions
diff --git a/web/templates.templ b/web/templates.templ index 6c3b09d..15e3466 100644 --- a/web/templates.templ +++ b/web/templates.templ @@ -46,22 +46,35 @@ templ RidesContent(data RidesPageData) { <legend>Started</legend> <div class="date-filter-inputs"><label for="ride-date-from">From<input id="ride-date-from" type="date" name="date_from" value={ data.Filters.DateFrom }/></label><label for="ride-date-to">To<input id="ride-date-to" type="date" name="date_to" value={ data.Filters.DateTo }/></label></div> </fieldset> - <label class="route-filter" for="ride-route">Route - <select id="ride-route" name="route"> - if data.Filters.Route == rideRouteFilterAny { - <option value="" selected>Any route</option> + <label for="ride-bike-type-filter">Bike + <select id="ride-bike-type-filter" name="bike_type"> + if data.Filters.BikeType == "" { + <option value="" selected>Any bike</option> } else { - <option value="">Any route</option> + <option value="">Any bike</option> } - if data.Filters.Route == rideRouteFilterAvailable { - <option value={ rideRouteFilterAvailable } selected>Recorded route</option> - } else { - <option value={ rideRouteFilterAvailable }>Recorded route</option> + for _, opt := range bikeTypeOptions { + if data.Filters.BikeType == string(opt) { + <option value={ string(opt) } selected>{ bikeTypeLabels[opt] }</option> + } else { + <option value={ string(opt) }>{ bikeTypeLabels[opt] }</option> + } } - if data.Filters.Route == rideRouteFilterMissing { - <option value={ rideRouteFilterMissing } selected>Metadata only</option> + </select> + </label> + <label for="ride-type-filter">Ride type + <select id="ride-type-filter" name="ride_type"> + if data.Filters.RideType == "" { + <option value="" selected>Any type</option> } else { - <option value={ rideRouteFilterMissing }>Metadata only</option> + <option value="">Any type</option> + } + for _, opt := range rideTypeOptions { + if data.Filters.RideType == string(opt) { + <option value={ string(opt) } selected>{ rideTypeLabels[opt] }</option> + } else { + <option value={ string(opt) }>{ rideTypeLabels[opt] }</option> + } } </select> </label> @@ -110,6 +123,40 @@ templ AnalyticsContent(data AnalyticsPageData) { <div class="ride-filter-ranges"> @RideRangeFilter(rideDistanceFilterConfig(data.Filter)) </div> + <div class="ride-filter-meta"> + <label for="analytics-bike-type">Bike + <select id="analytics-bike-type" name="bike_type"> + if data.Filter.BikeType == "" { + <option value="" selected>Any bike</option> + } else { + <option value="">Any bike</option> + } + for _, opt := range bikeTypeOptions { + if data.Filter.BikeType == string(opt) { + <option value={ string(opt) } selected>{ bikeTypeLabels[opt] }</option> + } else { + <option value={ string(opt) }>{ bikeTypeLabels[opt] }</option> + } + } + </select> + </label> + <label for="analytics-ride-type">Ride type + <select id="analytics-ride-type" name="ride_type"> + if data.Filter.RideType == "" { + <option value="" selected>Any type</option> + } else { + <option value="">Any type</option> + } + for _, opt := range rideTypeOptions { + if data.Filter.RideType == string(opt) { + <option value={ string(opt) } selected>{ rideTypeLabels[opt] }</option> + } else { + <option value={ string(opt) }>{ rideTypeLabels[opt] }</option> + } + } + </select> + </label> + </div> </form> </section> <section class="panel analytics-panel"> |
