160
211
[ txt "Workout" ];
161
212
tag "th"
162
213
[ Dream_html.string_attr "scope" "col" ]
163
-
Removed:
[ txt "Exercises progressed" ];
214
+
Added:
[ txt "Duration" ];
164
215
tag "th"
216
+
Added:
[ Dream_html.string_attr "scope" "col" ]
217
+
Added:
[ txt "Progress" ];
218
+
Added:
tag "th"
165
219
([ class_ "logbook-actions-heading" ]
166
220
@ [ Dream_html.string_attr "scope" "col" ])
167
221
[ tag "span" [ class_ "sr-only" ] [ txt "Actions" ] ];
168
222
];
169
223
];
170
224
tag "tbody" []
171
-
Removed:
(List.map
225
+
Added:
(List.concat_map
172
226
(fun (entry : View_model.Logbook_entry.t) ->
173
-
Removed:
tag "tr" []
174
-
Removed:
[
175
-
Removed:
tag "td" [] [ txt "%s" entry.date ];
176
-
Removed:
tag "td" [] [ txt "%s" entry.workout_name ];
177
-
Removed:
tag "td"
178
-
Removed:
[ class_ "logbook-progress" ]
179
-
Removed:
[ txt "%d" entry.progressed_exercises ];
180
-
Removed:
tag "td"
181
-
Removed:
[ class_ "logbook-actions" ]
227
+
Added:
let expanded =
228
+
Added:
Option.exists
229
+
Added:
(fun record ->
230
+
Added:
String.equal record.View_model.Logbook_entry.id
231
+
Added:
entry.id)
232
+
Added:
expanded_record
233
+
Added:
in
234
+
Added:
let progress =
235
+
Added:
if entry.compared_exercises = 0 then
236
+
Added:
tag "span"
237
+
Added:
[ class_ "logbook-no-progress" ]
238
+
Added:
[ txt "No prior comparison" ]
239
+
Added:
else if entry.changes = [] then
240
+
Added:
tag "span"
241
+
Added:
[ class_ "logbook-no-progress" ]
242
+
Added:
[ txt "No progress" ]
243
+
Added:
else
244
+
Added:
let progress_attrs =
182
245
[
183
-
Removed:
tag "details"
184
-
Removed:
[ class_ "logbook-row-menu" ]
185
-
Removed:
[
186
-
Removed:
tag "summary"
187
-
Removed:
[
188
-
Removed:
Dream_html.string_attr "aria-label"
189
-
Removed:
"Actions for %s on %s" entry.workout_name
190
-
Removed:
entry.date;
191
-
Removed:
]
192
-
Removed:
[ txt "⋮" ];
193
-
Removed:
tag "div"
194
-
Removed:
[
195
-
Removed:
class_ "logbook-row-menu-drawer";
196
-
Removed:
Dream_html.string_attr "role" "menu";
197
-
Removed:
Dream_html.string_attr "aria-label"
198
-
Removed:
"Workout actions";
199
-
Removed:
]
200
-
Removed:
[
201
-
Removed:
tag "a"
202
-
Removed:
[
203
-
Removed:
href Routes.record entry.id;
204
-
Removed:
Dream_html.attr "data-hito-app-link";
205
-
Removed:
Dream_html.string_attr "role" "menuitem";
206
-
Removed:
]
207
-
Removed:
[ txt "Edit" ];
208
-
Removed:
tag "a"
209
-
Removed:
[
210
-
Removed:
Dream_html.string_attr "href"
211
-
Removed:
"/logbook?delete=%s" entry.id;
212
-
Removed:
Dream_html.string_attr "role" "menuitem";
213
-
Removed:
class_ "danger";
214
-
Removed:
]
215
-
Removed:
[ txt "Delete" ];
216
-
Removed:
];
217
-
Removed:
];
218
-
Removed:
];
219
-
Removed:
])
246
+
Added:
class_ "logbook-progress-toggle";
247
+
Added:
Dream_html.string_attr "aria-expanded" "%b" expanded;
248
+
Added:
]
249
+
Added:
@
250
+
Added:
if expanded then [ href Routes.logbook ]
251
+
Added:
else
252
+
Added:
[
253
+
Added:
Dream_html.string_attr "href" "/logbook?expand=%s"
254
+
Added:
entry.id;
255
+
Added:
]
256
+
Added:
in
257
+
Added:
tag "a" progress_attrs
258
+
Added:
[
259
+
Added:
txt "%d/%d progressed %s" entry.progressed_exercises
260
+
Added:
entry.compared_exercises
261
+
Added:
(if expanded then "▴" else "▾");
262
+
Added:
]
263
+
Added:
in
264
+
Added:
let row =
265
+
Added:
tag "tr"
266
+
Added:
(if expanded then [ class_ "logbook-row-expanded" ]
267
+
Added:
else [])
268
+
Added:
[
269
+
Added:
tag "td" [] [ txt "%s" entry.date ];
270
+
Added:
tag "td" [] [ txt "%s" entry.workout_name ];
271
+
Added:
tag "td"
272
+
Added:
[ class_ "logbook-duration" ]
273
+
Added:
[ txt "%s" entry.duration ];
274
+
Added:
tag "td" [ class_ "logbook-progress" ] [ progress ];
275
+
Added:
tag "td"
276
+
Added:
[ class_ "logbook-actions" ]
277
+
Added:
[
278
+
Added:
tag "details"
279
+
Added:
[ class_ "logbook-row-menu" ]
280
+
Added:
[
281
+
Added:
tag "summary"
282
+
Added:
[
283
+
Added:
Dream_html.string_attr "aria-label"
284
+
Added:
"Actions for %s on %s"
285
+
Added:
entry.workout_name entry.date;
286
+
Added:
]
287
+
Added:
[ txt "⋮" ];
288
+
Added:
tag "div"
289
+
Added:
[
290
+
Added:
class_ "logbook-row-menu-drawer";
291
+
Added:
Dream_html.string_attr "role" "menu";
292
+
Added:
Dream_html.string_attr "aria-label"
293
+
Added:
"Workout actions";
294
+
Added:
]
295
+
Added:
[
296
+
Added:
tag "a"
297
+
Added:
[
298
+
Added:
href Routes.record entry.id;
299
+
Added:
Dream_html.attr "data-hito-app-link";
300
+
Added:
Dream_html.string_attr "role"
301
+
Added:
"menuitem";
302
+
Added:
]
303
+
Added:
[ txt "Edit" ];
304
+
Added:
tag "a"
305
+
Added:
[
306
+
Added:
Dream_html.string_attr "href"
307
+
Added:
"/logbook?delete=%s" entry.id;
308
+
Added:
Dream_html.string_attr "role"
309
+
Added:
"menuitem";
310
+
Added:
class_ "danger";
311
+
Added:
]
312
+
Added:
[ txt "Delete" ];
313
+
Added:
];
314
+
Added:
];
315
+
Added:
];
316
+
Added:
]
317
+
Added:
in
318
+
Added:
if expanded then [ row; progress_detail_row entry ]
319
+
Added:
else [ row ])
220
320
records);
221
321
]);
222
322
tag "section"