[Pharo] Personal fitness tracker web app.
Dynamic set group form columns.
src/MyFitnessTracker/MFTSetGroupsForm.class.st
@@ -1,6 +1,10 @@
1
1
Class {
2
2
#name : 'MFTSetGroupsForm',
3
3
#superclass : 'MFTForm',
4
Added:
#instVars : [
5
Added:
'renderRpe',
6
Added:
'renderRestAfter'
7
Added:
],
4
8
#category : 'MyFitnessTracker-Forms',
5
9
#package : 'MyFitnessTracker',
6
10
#tag : 'Forms'
@@ -26,16 +30,17 @@
26
30
super initialize.
27
31
heading := 'Sets'.
28
32
modelObject := OrderedCollection with:
29
Removed:
(MFTSetGroup new sets:
30
Removed:
(OrderedCollection with: (MFTSet new reps: 8)))
33
Added:
(MFTSetGroup new addSet: (MFTSet new reps: 8)).
34
Added:
renderRpe := false.
35
Added:
renderRestAfter := false
31
36
]
32
37
33
38
{ #category : 'rendering' }
34
39
MFTSetGroupsForm >> renderContentOn: html [
35
40
36
41
self renderFormOn: html with: [
37
Removed:
self renderSetGroupsTableOn: html.
38
Removed:
self renderSetsButtonGroupOn: html ]
42
Added:
self renderSetsButtonGroupOn: html.
43
Added:
self renderSetGroupsTableOn: html ]
39
44
]
40
45
41
46
{ #category : 'rendering' }
@@ -59,18 +64,20 @@
59
64
callback: [ :value |
60
65
set load:
61
66
(value ifNotEmpty: [ value asNumber ] ifEmpty: [ nil ]) ] ].
62
Removed:
html tableData: [
63
Removed:
html numberInput formControl
64
Removed:
value: set rpe;
65
Removed:
callback: [ :value |
66
Removed:
set rpe:
67
Removed:
(value ifNotEmpty: [ value asInteger ] ifEmpty: [ nil ]) ] ].
68
Removed:
html tableData: [
69
Removed:
html numberInput formControl
70
Removed:
value: set restAfter;
71
Removed:
callback: [ :value |
72
Removed:
set restAfter:
73
Removed:
(value ifNotEmpty: [ value asNumber ] ifEmpty: [ nil ]) ] ] ] ] ]
67
Added:
renderRpe ifTrue: [
68
Added:
html tableData: [
69
Added:
html numberInput formControl
70
Added:
value: set rpe;
71
Added:
callback: [ :value |
72
Added:
set rpe:
73
Added:
(value ifNotEmpty: [ value asInteger ] ifEmpty: [ nil ]) ] ] ].
74
Added:
renderRestAfter ifTrue: [
75
Added:
html tableData: [
76
Added:
html numberInput formControl
77
Added:
value: set restAfter;
78
Added:
callback: [ :value |
79
Added:
set restAfter:
80
Added:
(value ifNotEmpty: [ value asNumber ] ifEmpty: [ nil ]) ] ] ] ] ] ]
74
81
]
75
82
76
83
{ #category : 'rendering' }
@@ -79,18 +86,10 @@
79
86
html tableHead: [
80
87
modelObject first isIrregularSetGroup ifTrue: [
81
88
html tableHeading with: 'Exercise' ].
82
Removed:
html tableHeading
83
Removed:
style: 'text-align: right';
84
Removed:
with: 'Reps'.
85
Removed:
html tableHeading
86
Removed:
style: 'text-align: right';
87
Removed:
with: 'Load'.
88
Removed:
html tableHeading
89
Removed:
style: 'text-align: right';
90
Removed:
with: 'RPE'.
91
Removed:
html tableHeading
92
Removed:
style: 'text-align: right';
93
Removed:
with: 'Rest After (s)' ]
89
Added:
html tableHeading with: 'Reps'.
90
Added:
html tableHeading with: 'Load'.
91
Added:
renderRpe ifTrue: [ html tableHeading with: 'RPE' ].
92
Added:
renderRestAfter ifTrue: [ html tableHeading with: 'Rest After (s)' ] ]
94
93
]
95
94
96
95
{ #category : 'rendering' }
@@ -106,18 +105,33 @@
106
105
{ #category : 'rendering' }
107
106
MFTSetGroupsForm >> renderSetsButtonGroupOn: html [
108
107
109
Removed:
html buttonGroup: [
110
Removed:
html outlineButton
111
Removed:
bePrimary;
112
Removed:
beSmall;
113
Removed:
callback: [ modelObject addLast: modelObject last ];
114
Removed:
with: 'Add set(s)'.
115
Removed:
html outlineButton
116
Removed:
beDanger;
117
Removed:
beSmall;
118
Removed:
callback: [
119
Removed:
| firstSetGroup |
120
Removed:
firstSetGroup := modelObject first.
121
Removed:
modelObject := OrderedCollection with: firstSetGroup ];
122
Removed:
with: 'Reset' ]
108
Added:
html buttonGroup
109
Added:
class: 'my-3';
110
Added:
with: [
111
Added:
html outlineButton
112
Added:
bePrimary;
113
Added:
beSmall;
114
Added:
callback: [ modelObject addLast: modelObject last ];
115
Added:
with: 'Add set'.
116
Added:
renderRpe ifFalse: [
117
Added:
html outlineButton
118
Added:
beSecondary;
119
Added:
beSmall;
120
Added:
callback: [ renderRpe := true ];
121
Added:
with: 'Add RPE' ].
122
Added:
renderRestAfter ifFalse: [
123
Added:
html outlineButton
124
Added:
beSecondary;
125
Added:
beSmall;
126
Added:
callback: [ renderRestAfter := true ];
127
Added:
with: 'Add rest' ].
128
Added:
html outlineButton
129
Added:
beDanger;
130
Added:
beSmall;
131
Added:
callback: [
132
Added:
| firstSetGroup |
133
Added:
firstSetGroup := modelObject first.
134
Added:
modelObject := OrderedCollection with: firstSetGroup.
135
Added:
renderRpe := renderRestAfter := false ];
136
Added:
with: 'Reset' ]
123
137
]