[Pharo] Personal fitness tracker web app.
Rename form.
Changed files
src/MyFitnessTracker/MFTSetGroupForm.class.st
@@ -0,0 +1,144 @@
1
Added:
Class {
2
Added:
#name : 'MFTSetGroupForm',
3
Added:
#superclass : 'MFTForm',
4
Added:
#instVars : [
5
Added:
'exerciseCount',
6
Added:
'renderRpe',
7
Added:
'renderRestAfter'
8
Added:
],
9
Added:
#category : 'MyFitnessTracker-Forms',
10
Added:
#package : 'MyFitnessTracker',
11
Added:
#tag : 'Forms'
12
Added:
}
13
Added:
14
Added:
{ #category : 'as yet unclassified' }
15
Added:
MFTSetGroupForm class >> forExercises: anMFTExerciseCollection [
16
Added:
17
Added:
| setGroup |
18
Added:
setGroup := MFTSetGroup new addSets:
19
Added:
(anMFTExerciseCollection collect: [ :exercise |
20
Added:
MFTSet new
21
Added:
exercise: exercise;
22
Added:
reps: 8 ]).
23
Added:
^ self new
24
Added:
modelObject: setGroup;
25
Added:
exerciseCount: anMFTExerciseCollection size;
26
Added:
yourself
27
Added:
]
28
Added:
29
Added:
{ #category : 'accessing' }
30
Added:
MFTSetGroupForm >> exerciseCount: anInteger [
31
Added:
32
Added:
exerciseCount := anInteger
33
Added:
]
34
Added:
35
Added:
{ #category : 'initialization' }
36
Added:
MFTSetGroupForm >> initialize [
37
Added:
38
Added:
super initialize.
39
Added:
modelObject := MFTSetGroup new addSet: (MFTSet new reps: 8).
40
Added:
heading := 'Sets'.
41
Added:
renderRpe := false.
42
Added:
renderRestAfter := false
43
Added:
]
44
Added:
45
Added:
{ #category : 'rendering' }
46
Added:
MFTSetGroupForm >> renderContentOn: html [
47
Added:
48
Added:
self renderFormOn: html with: [
49
Added:
self renderSetsButtonGroupOn: html.
50
Added:
self renderSetGroupTableOn: html ]
51
Added:
]
52
Added:
53
Added:
{ #category : 'rendering' }
54
Added:
MFTSetGroupForm >> renderSetGroupRowsOn: html [
55
Added:
56
Added:
| selectedExercises renderSetGroupExercisesName |
57
Added:
selectedExercises := modelObject sets collect: #exercise.
58
Added:
renderSetGroupExercisesName := modelObject isIrregularSetGroup.
59
Added:
60
Added:
modelObject sets do: [ :set |
61
Added:
html tableRow: [
62
Added:
renderSetGroupExercisesName ifTrue: [
63
Added:
html tableData with: set exercise englishName capitalized ].
64
Added:
html tableData: [
65
Added:
html numberInput formControl
66
Added:
value: set reps;
67
Added:
callback: [ :value | set reps: value asInteger ] ].
68
Added:
html tableData: [
69
Added:
html numberInput formControl
70
Added:
value: set load;
71
Added:
callback: [ :value |
72
Added:
set load:
73
Added:
(value ifNotEmpty: [ value asNumber ] ifEmpty: [ nil ]) ] ].
74
Added:
renderRpe ifTrue: [
75
Added:
html tableData: [
76
Added:
html numberInput formControl
77
Added:
value: set rpe;
78
Added:
callback: [ :value |
79
Added:
set rpe:
80
Added:
(value ifNotEmpty: [ value asInteger ] ifEmpty: [ nil ]) ] ] ].
81
Added:
renderRestAfter ifTrue: [
82
Added:
html tableData: [
83
Added:
html numberInput formControl
84
Added:
value: set restAfter;
85
Added:
callback: [ :value |
86
Added:
set restAfter:
87
Added:
(value ifNotEmpty: [ value asNumber ] ifEmpty: [ nil ]) ] ] ] ] ]
88
Added:
]
89
Added:
90
Added:
{ #category : 'rendering' }
91
Added:
MFTSetGroupForm >> renderSetGroupTableHeaderOn: html [
92
Added:
93
Added:
html tableHead: [
94
Added:
modelObject isIrregularSetGroup ifTrue: [
95
Added:
html tableHeading with: 'Exercise' ].
96
Added:
html tableHeading with: 'Reps'.
97
Added:
html tableHeading with: 'Load'.
98
Added:
renderRpe ifTrue: [ html tableHeading with: 'RPE' ].
99
Added:
renderRestAfter ifTrue: [ html tableHeading with: 'Rest After (s)' ] ]
100
Added:
]
101
Added:
102
Added:
{ #category : 'rendering' }
103
Added:
MFTSetGroupForm >> renderSetGroupTableOn: html [
104
Added:
105
Added:
html table
106
Added:
class: 'table table-bordered';
107
Added:
with: [
108
Added:
self renderSetGroupTableHeaderOn: html.
109
Added:
self renderSetGroupRowsOn: html ]
110
Added:
]
111
Added:
112
Added:
{ #category : 'rendering' }
113
Added:
MFTSetGroupForm >> renderSetsButtonGroupOn: html [
114
Added:
115
Added:
html buttonGroup
116
Added:
class: 'my-3';
117
Added:
with: [
118
Added:
html outlineButton
119
Added:
bePrimary;
120
Added:
beSmall;
121
Added:
callback: [ modelObject addSets: modelObject sets ];
122
Added:
with: 'Add sets'.
123
Added:
renderRpe ifFalse: [
124
Added:
html outlineButton
125
Added:
beSecondary;
126
Added:
beSmall;
127
Added:
callback: [ renderRpe := true ];
128
Added:
with: 'Add RPE' ].
129
Added:
renderRestAfter ifFalse: [
130
Added:
html outlineButton
131
Added:
beSecondary;
132
Added:
beSmall;
133
Added:
callback: [ renderRestAfter := true ];
134
Added:
with: 'Add rest' ].
135
Added:
html outlineButton
136
Added:
beDanger;
137
Added:
beSmall;
138
Added:
callback: [
139
Added:
| firstSets |
140
Added:
firstSets := modelObject sets first: exerciseCount.
141
Added:
modelObject := MFTSetGroup new addSets: firstSets.
142
Added:
renderRpe := renderRestAfter := false ];
143
Added:
with: 'Reset' ]
144
Added:
]
src/MyFitnessTracker/MFTSetGroupsForm.class.st
@@ -1,137 +0,0 @@
1
Removed:
Class {
2
Removed:
#name : 'MFTSetGroupsForm',
3
Removed:
#superclass : 'MFTForm',
4
Removed:
#instVars : [
5
Removed:
'renderRpe',
6
Removed:
'renderRestAfter'
7
Removed:
],
8
Removed:
#category : 'MyFitnessTracker-Forms',
9
Removed:
#package : 'MyFitnessTracker',
10
Removed:
#tag : 'Forms'
11
Removed:
}
12
Removed:
13
Removed:
{ #category : 'as yet unclassified' }
14
Removed:
MFTSetGroupsForm class >> forExercises: anMFTExerciseCollection [
15
Removed:
16
Removed:
| setGroup |
17
Removed:
setGroup := MFTSetGroup new addSets:
18
Removed:
(anMFTExerciseCollection collect: [ :exercise |
19
Removed:
MFTSet new
20
Removed:
exercise: exercise;
21
Removed:
reps: 8 ]).
22
Removed:
^ self new
23
Removed:
modelObject: (OrderedCollection with: setGroup);
24
Removed:
yourself
25
Removed:
]
26
Removed:
27
Removed:
{ #category : 'initialization' }
28
Removed:
MFTSetGroupsForm >> initialize [
29
Removed:
30
Removed:
super initialize.
31
Removed:
heading := 'Sets'.
32
Removed:
modelObject := OrderedCollection with:
33
Removed:
(MFTSetGroup new addSet: (MFTSet new reps: 8)).
34
Removed:
renderRpe := false.
35
Removed:
renderRestAfter := false
36
Removed:
]
37
Removed:
38
Removed:
{ #category : 'rendering' }
39
Removed:
MFTSetGroupsForm >> renderContentOn: html [
40
Removed:
41
Removed:
self renderFormOn: html with: [
42
Removed:
self renderSetsButtonGroupOn: html.
43
Removed:
self renderSetGroupsTableOn: html ]
44
Removed:
]
45
Removed:
46
Removed:
{ #category : 'rendering' }
47
Removed:
MFTSetGroupsForm >> renderSetGroupsRowsOn: html [
48
Removed:
49
Removed:
| selectedExercises |
50
Removed:
selectedExercises := modelObject first sets collect: #exercise.
51
Removed:
52
Removed:
modelObject do: [ :setGroup |
53
Removed:
setGroup sets do: [ :set |
54
Removed:
html tableRow: [
55
Removed:
modelObject first isIrregularSetGroup ifTrue: [
56
Removed:
html tableData with: set exercise englishName capitalized ].
57
Removed:
html tableData: [
58
Removed:
html numberInput formControl
59
Removed:
value: set reps;
60
Removed:
callback: [ :value | set reps: value asInteger ] ].
61
Removed:
html tableData: [
62
Removed:
html numberInput formControl
63
Removed:
value: set load;
64
Removed:
callback: [ :value |
65
Removed:
set load:
66
Removed:
(value ifNotEmpty: [ value asNumber ] ifEmpty: [ nil ]) ] ].
67
Removed:
renderRpe ifTrue: [
68
Removed:
html tableData: [
69
Removed:
html numberInput formControl
70
Removed:
value: set rpe;
71
Removed:
callback: [ :value |
72
Removed:
set rpe:
73
Removed:
(value ifNotEmpty: [ value asInteger ] ifEmpty: [ nil ]) ] ] ].
74
Removed:
renderRestAfter ifTrue: [
75
Removed:
html tableData: [
76
Removed:
html numberInput formControl
77
Removed:
value: set restAfter;
78
Removed:
callback: [ :value |
79
Removed:
set restAfter:
80
Removed:
(value ifNotEmpty: [ value asNumber ] ifEmpty: [ nil ]) ] ] ] ] ] ]
81
Removed:
]
82
Removed:
83
Removed:
{ #category : 'rendering' }
84
Removed:
MFTSetGroupsForm >> renderSetGroupsTableHeaderOn: html [
85
Removed:
86
Removed:
html tableHead: [
87
Removed:
modelObject first isIrregularSetGroup ifTrue: [
88
Removed:
html tableHeading with: 'Exercise' ].
89
Removed:
html tableHeading with: 'Reps'.
90
Removed:
html tableHeading with: 'Load'.
91
Removed:
renderRpe ifTrue: [ html tableHeading with: 'RPE' ].
92
Removed:
renderRestAfter ifTrue: [ html tableHeading with: 'Rest After (s)' ] ]
93
Removed:
]
94
Removed:
95
Removed:
{ #category : 'rendering' }
96
Removed:
MFTSetGroupsForm >> renderSetGroupsTableOn: html [
97
Removed:
98
Removed:
html table
99
Removed:
class: 'table table-bordered';
100
Removed:
with: [
101
Removed:
self renderSetGroupsTableHeaderOn: html.
102
Removed:
self renderSetGroupsRowsOn: html ]
103
Removed:
]
104
Removed:
105
Removed:
{ #category : 'rendering' }
106
Removed:
MFTSetGroupsForm >> renderSetsButtonGroupOn: html [
107
Removed:
108
Removed:
html buttonGroup
109
Removed:
class: 'my-3';
110
Removed:
with: [
111
Removed:
html outlineButton
112
Removed:
bePrimary;
113
Removed:
beSmall;
114
Removed:
callback: [ modelObject addLast: modelObject last ];
115
Removed:
with: 'Add set'.
116
Removed:
renderRpe ifFalse: [
117
Removed:
html outlineButton
118
Removed:
beSecondary;
119
Removed:
beSmall;
120
Removed:
callback: [ renderRpe := true ];
121
Removed:
with: 'Add RPE' ].
122
Removed:
renderRestAfter ifFalse: [
123
Removed:
html outlineButton
124
Removed:
beSecondary;
125
Removed:
beSmall;
126
Removed:
callback: [ renderRestAfter := true ];
127
Removed:
with: 'Add rest' ].
128
Removed:
html outlineButton
129
Removed:
beDanger;
130
Removed:
beSmall;
131
Removed:
callback: [
132
Removed:
| firstSetGroup |
133
Removed:
firstSetGroup := modelObject first.
134
Removed:
modelObject := OrderedCollection with: firstSetGroup.
135
Removed:
renderRpe := renderRestAfter := false ];
136
Removed:
with: 'Reset' ]
137
Removed:
]