@@ -24,17 +24,24 @@ templ CreateRouteSegment(w *database.Workout) {
2424 <div class=" inner-form" >
2525 {{
2626 type mapPoint struct {
27- Lat float64 ` json:"lat"`
28- Lng float64 ` json:"lng"`
29- TotalDistance float64 ` json:"distance"`
27+ Lat * float64 ` json:"lat"`
28+ Lng * float64 ` json:"lng"`
29+ TotalDistance * float64 ` json:"distance"`
3030 }
3131
3232 points := []mapPoint{}
3333 for _ , p := range w.Details ().Points {
34+ if p.IsZero () {
35+ if len (points) > 0 {
36+ points = append (points, points[len (points)-1 ])
37+ }
38+ continue
39+ }
40+
3441 points = append (points, mapPoint{
35- Lat: p.Lat ,
36- Lng: p.Lng ,
37- TotalDistance: p.TotalDistance ,
42+ Lat: & p.Lat ,
43+ Lng: & p.Lng ,
44+ TotalDistance: & p.TotalDistance ,
3845 })
3946 }
4047 }}
@@ -74,7 +81,7 @@ templ CreateRouteSegment(w *database.Workout) {
7481 id=" start"
7582 name=" start"
7683 min=" 1"
77- max={ helpers.A2S (len (w. Details (). Points )) }
84+ max={ helpers.A2S (len (points )) }
7885 value=" 1"
7986 oninput=" getElementById('segment-map').updateStart()"
8087 />
@@ -90,8 +97,8 @@ templ CreateRouteSegment(w *database.Workout) {
9097 id=" end"
9198 name=" end"
9299 min=" 1"
93- max={ helpers.A2S (len (w. Details (). Points )) }
94- value={ helpers.A2S (len (w. Details (). Points )) }
100+ max={ helpers.A2S (len (points )) }
101+ value={ helpers.A2S (len (points )) }
95102 oninput=" getElementById('segment-map').updateEnd()"
96103 />
97104 <span id=" end-show" ></span>
@@ -115,6 +122,17 @@ templ CreateRouteSegment(w *database.Workout) {
115122 </tr>
116123 </tfoot>
117124 </table>
125+ <script>
126+ const urlParams = new URLSearchParams (window.location .search );
127+ const start = urlParams.get (" start" );
128+ if (start) {
129+ document.getElementById (" start" ).value = start;
130+ }
131+ const end = urlParams.get (" end" );
132+ if (end) {
133+ document.getElementById (" end" ).value = end;
134+ }
135+ </script>
118136 </form>
119137 </div>
120138 </div>
0 commit comments