aboutsummaryrefslogtreecommitdiff
path: root/web/views.go
diff options
context:
space:
mode:
Diffstat (limited to 'web/views.go')
-rw-r--r--web/views.go34
1 files changed, 19 insertions, 15 deletions
diff --git a/web/views.go b/web/views.go
index 952b045..bfbfe09 100644
--- a/web/views.go
+++ b/web/views.go
@@ -68,14 +68,16 @@ func buildAnalyticsPoints(items []ride.StoredRide) []AnalyticsPoint {
type RideDetailView struct {
RideView
- Route GeoJSONFeatureCollection
- Passes []RideMapPass
- HasRoute bool
- Profile RideProfile
- RouteError string
- ActionError string
- Notice string
- ExternalURL string
+ Route GeoJSONFeatureCollection
+ Passes []RideMapPass
+ HasRoute bool
+ Profile RideProfile
+ RouteError string
+ ActionError string
+ Notice string
+ ExternalURL string
+ Preview bool
+ OfficialClimbFormURL string
}
type RideMapPass struct {
@@ -289,17 +291,19 @@ func officialClimbCreateURL(id int64) string {
return fmt.Sprintf("/rides/%d/official-climbs", id)
}
-func buildRideDetailView(item ride.StoredRide, parsed ride.Ride, passes []mountain_pass.MountainPass, officialClimbs []official_climb.OfficialClimb, matchPolicy official_climb.MatchPolicy) RideDetailView {
+func buildRideDetailView(view RideView, parsed ride.Ride, passes []mountain_pass.MountainPass, officialClimbs []official_climb.OfficialClimb, matchPolicy official_climb.MatchPolicy) RideDetailView {
coords := parsed.Coords
coordinates := make([][]float64, len(coords))
for i, coordinate := range coords {
coordinates[i] = []float64{coordinate.Lon, coordinate.Lat}
}
profile := buildRideProfile(parsed, passes, officialClimbs, matchPolicy)
- return RideDetailView{
- RideView: buildRideView(item),
- Passes: buildRideMapPasses(passes),
- ExternalURL: externalRideURL(item.ExternalID),
+ detail := RideDetailView{
+ RideView: view,
+ Passes: buildRideMapPasses(passes),
+ ExternalURL: externalRideURL(view.Ride.ExternalID),
+ OfficialClimbFormURL: officialClimbCreateURL(view.Ride.ID),
+ HasRoute: true,
Route: GeoJSONFeatureCollection{
Type: "FeatureCollection",
Features: []GeoJSONFeature{{
@@ -310,9 +314,9 @@ func buildRideDetailView(item ride.StoredRide, parsed ride.Ride, passes []mounta
},
}},
},
- HasRoute: true,
- Profile: profile,
+ Profile: profile,
}
+ return detail
}
func externalRideURL(externalID string) string {