[Pharo] Personal fitness tracker web app.
Update set group log table format and add 'warm-up set' buttons.
Changed files
src/MyFitnessTracker-Web/MFTSetGroupLogEditorComponent.class.st
@@ -21,46 +21,69 @@
21
21
MFTSetGroupLogEditorComponent >> renderContentOn: html [
22
22
23
23
html fieldSet: [
24
Removed:
setGroupLog sets do: [ :setLog |
25
Removed:
self renderSetLogEditorOn: html setLog: setLog ].
24
Added:
html legend: setGroupLog prescription canonicalName capitalized.
25
Added:
setGroupLog setsGroupedByExercise keysAndValuesDo: [ :exercise :sets |
26
Added:
self renderOn: html exercise: exercise sets: sets ].
26
27
html submitButton
27
28
callback: [ self answer: setGroupLog ];
28
29
with: 'Save' ]
29
30
]
30
31
31
Removed:
{ #category : 'as yet unclassified' }
32
Removed:
MFTSetGroupLogEditorComponent >> renderSetLogEditorOn: html setLog: setLog [
32
Added:
{ #category : 'rendering' }
33
Added:
MFTSetGroupLogEditorComponent >> renderOn: html exercise: exercise sets: sets [
33
34
34
Removed:
html heading
35
Removed:
level: 4;
36
Removed:
with: setLog exercise canonicalName capitalized.
37
Removed:
38
35
html div
39
Removed:
class: 'mft-form-items-container';
36
Added:
style: 'margin-bottom: 1rem';
40
37
with: [
41
Removed:
html label: 'Reps'.
42
Removed:
html numberInput
43
Removed:
value: setLog reps;
44
Removed:
callback: [ :value |
45
Removed:
value ifNotEmpty: [ setLog reps: value asNumber ] ] ].
38
Added:
html heading
39
Added:
level: 4;
40
Added:
with: exercise canonicalName capitalized.
41
Added:
html button
42
Added:
callback: [
43
Added:
setGroupLog
44
Added:
addSet: (MFTSetLog forPrescription: sets last prescription)
45
Added:
before: sets first ];
46
Added:
with: 'Add warm-up set'.
46
47
47
Removed:
html div
48
Removed:
class: 'mft-form-items-container';
49
Removed:
with: [
50
Removed:
html label: 'Load'.
51
Removed:
html numberInput
52
Removed:
value: setLog load;
53
Removed:
callback: [ :value |
54
Removed:
value ifNotEmpty: [ setLog load: value asNumber ] ] ].
48
Added:
html table: [
49
Added:
html
50
Added:
tableHead: [
51
Added:
html tableRow: [
52
Added:
html
53
Added:
tableHeading;
54
Added:
tableHeading: 'Reps';
55
Added:
tableHeading: 'Load';
56
Added:
tableHeading: 'To Failure';
57
Added:
tableHeading ] ];
58
Added:
tableBody: [
59
Added:
sets do: [ :setLog | self renderOn: html setLog: setLog ] ] ] ]
60
Added:
]
55
61
56
Removed:
html div
57
Removed:
class: 'mft-form-items-container';
58
Removed:
with: [
59
Removed:
html checkbox
60
Removed:
value: setLog failureAchieved;
61
Removed:
callback: [ :value |
62
Removed:
value ifNotNil: [ setLog failureAchieved: value ] ].
63
Removed:
html label: 'Failure achieved' ]
62
Added:
{ #category : 'rendering' }
63
Added:
MFTSetGroupLogEditorComponent >> renderOn: html setLog: setLog [
64
Added:
65
Added:
html tableRow: [
66
Added:
html
67
Added:
tableData: (setGroupLog indexOfSet: setLog);
68
Added:
tableData: [
69
Added:
html numberInput
70
Added:
placeholder: setLog prescription repScheme;
71
Added:
callback: [ :value |
72
Added:
value ifNotEmpty: [ setLog reps: value asNumber ] ];
73
Added:
value: setLog reps ];
74
Added:
tableData: [
75
Added:
html numberInput
76
Added:
callback: [ :value |
77
Added:
value ifNotEmpty: [ setLog load: value asNumber ] ];
78
Added:
value: setLog load ];
79
Added:
tableData: [
80
Added:
html checkbox
81
Added:
callback: [ :value | setLog failureAchieved: value ];
82
Added:
value: setLog failureAchieved ];
83
Added:
tableData: [
84
Added:
html button
85
Added:
callback: [ setGroupLog removeSet: setLog ];
86
Added:
with: 'Delete' ] ]
64
87
]
65
88
66
89
{ #category : 'accessing' }
src/MyFitnessTracker-Web/MFTSetGroupLogViewerComponent.class.st
@@ -47,6 +47,7 @@
47
47
ifFalse: [ 'Log' ].
48
48
49
49
html fieldSet: [
50
Added:
html legend: setGroupLog canonicalName capitalized.
50
51
completelyLogged
51
52
ifTrue: [ self renderSetGroupLogDataOn: html ]
52
53
ifFalse: [ self renderSetGroupLogExercisesOn: html ].
@@ -64,33 +65,37 @@
64
65
{ #category : 'rendering' }
65
66
MFTSetGroupLogViewerComponent >> renderSetGroupLogDataOn: html [
66
67
67
Removed:
setGroupLog sets do: [ :setLog |
68
Added:
setGroupLog setsGroupedByExercise keysAndValuesDo: [ :exercise :sets |
68
69
html heading
69
Removed:
level: 4;
70
Removed:
with: setLog exercise canonicalName capitalized.
70
Added:
level: 3;
71
Added:
with: exercise canonicalName capitalized.
71
72
html table: [
72
Removed:
html tableBody: [
73
Removed:
html tableRow: [
74
Removed:
html
75
Removed:
tableData: 'Reps';
76
Removed:
tableData: setLog reps ].
77
Removed:
html tableRow: [
78
Removed:
html
79
Removed:
tableData: 'Load';
80
Removed:
tableData: setLog load ].
81
Removed:
html tableRow: [
82
Removed:
html
83
Removed:
tableData: 'Failure achieved';
84
Removed:
tableData: setLog failureAchieved ] ] ] ]
73
Added:
html
74
Added:
tableHead: [
75
Added:
html tableRow: [
76
Added:
html
77
Added:
tableHeading;
78
Added:
tableHeading: 'Reps';
79
Added:
tableHeading: 'Load';
80
Added:
tableHeading: 'To Failure' ] ];
81
Added:
tableBody: [
82
Added:
sets do: [ :set |
83
Added:
html tableRow: [
84
Added:
html
85
Added:
tableData: (setGroupLog indexOfSet: set);
86
Added:
tableData: set reps;
87
Added:
tableData: set load;
88
Added:
tableData: set failureAchieved ] ] ] ] ]
85
89
]
86
90
87
91
{ #category : 'rendering' }
88
92
MFTSetGroupLogViewerComponent >> renderSetGroupLogExercisesOn: html [
89
93
90
94
html heading
91
Removed:
level: 4;
92
Removed:
with: ((setGroupLog sets collect: #exercise) joinUsing: ', ')
93
Removed:
asCapitalizedPhrase
95
Added:
level: 3;
96
Added:
with: ((setGroupLog prescription uniqueExercisesInSets collect:
97
Added:
#canonicalName) asOrderedCollection joinUsing: ', ')
98
Added:
capitalized
94
99
]
95
100
96
101
{ #category : 'accessing' }
src/MyFitnessTracker-Web/MFTWorkoutLogEditorComponent.class.st
@@ -75,7 +75,8 @@
75
75
{ #category : 'as yet unclassified' }
76
76
MFTWorkoutLogEditorComponent >> renderWorkoutLogMetadataOn: html [
77
77
78
Removed:
html fieldSet with: [
78
Added:
html fieldSet: [
79
Added:
html legend: 'Log info'.
79
80
html div
80
81
class: 'mft-form-items-container';
81
82
with: [