[Pharo] Personal fitness tracker web app.
Rename MFTSetsDialog to MFTSetGroupsDialog.
Changed files
src/MyFitnessTracker/MFTSetGroupsDialog.class.st
@@ -0,0 +1,170 @@
1
Added:
Class {
2
Added:
#name : #MFTSetGroupsDialog,
3
Added:
#superclass : #MFTDialog,
4
Added:
#instVars : [
5
Added:
'setGroups'
6
Added:
],
7
Added:
#category : #'MyFitnessTracker-Dialog'
8
Added:
}
9
Added:
10
Added:
{ #category : #actions }
11
Added:
MFTSetGroupsDialog class >> edit: aMFTSetCollection [
12
Added:
13
Added:
^ self new
14
Added:
sets: aMFTSetCollection;
15
Added:
action: #edit;
16
Added:
yourself
17
Added:
]
18
Added:
19
Added:
{ #category : #adding }
20
Added:
MFTSetGroupsDialog >> addSetGroup [
21
Added:
22
Added:
| setGroup setsSize |
23
Added:
setsSize := setGroups size + 1.
24
Added:
setGroup := self call:
25
Added:
(MFTSetDialog new heading: 'Set #' , setsSize asString).
26
Added:
setGroup ifNil: [ ^ self ].
27
Added:
setGroup
28
Added:
number: setsSize;
29
Added:
group: setsSize.
30
Added:
setGroup add: setGroup
31
Added:
]
32
Added:
33
Added:
{ #category : #adding }
34
Added:
MFTSetGroupsDialog >> addSuperset [
35
Added:
36
Added:
| superset |
37
Added:
superset := self call: MFTSupersetDialog new.
38
Added:
superset ifNotNil: [ setGroups add: superset ]
39
Added:
]
40
Added:
41
Added:
{ #category : #initialization }
42
Added:
MFTSetGroupsDialog >> initialize [
43
Added:
44
Added:
super initialize.
45
Added:
setGroups := OrderedCollection new
46
Added:
]
47
Added:
48
Added:
{ #category : #rendering }
49
Added:
MFTSetGroupsDialog >> renderAddSetGroupsButtonsOn: html [
50
Added:
51
Added:
html buttonGroup: [
52
Added:
html outlineButton
53
Added:
bePrimary;
54
Added:
beSmall;
55
Added:
callback: [ self addSetGroup ];
56
Added:
with: 'Add exercise'.
57
Added:
html outlineButton
58
Added:
beSecondary;
59
Added:
beSmall;
60
Added:
callback: [ self addSuperset ];
61
Added:
with: 'Add superset'.
62
Added:
html outlineButton
63
Added:
beSecondary;
64
Added:
beSmall;
65
Added:
callback: [ self addSuperset ];
66
Added:
with: 'Add tri-set' ]
67
Added:
]
68
Added:
69
Added:
{ #category : #rendering }
70
Added:
MFTSetGroupsDialog >> renderContentOn: html [
71
Added:
72
Added:
self renderDialogOn: html with: [
73
Added:
setGroups ifNotEmpty: [ self renderSetsTableOn: html ].
74
Added:
self renderAddSetGroupsButtonsOn: html ]
75
Added:
]
76
Added:
77
Added:
{ #category : #rendering }
78
Added:
MFTSetGroupsDialog >> renderLoad [
79
Added:
80
Added:
^ (setGroups flatCollect: #sets) anySatisfy: #hasLoad
81
Added:
]
82
Added:
83
Added:
{ #category : #rendering }
84
Added:
MFTSetGroupsDialog >> renderRestAfter [
85
Added:
86
Added:
^ (setGroups flatCollect: #sets) anySatisfy: #hasRestAfter
87
Added:
]
88
Added:
89
Added:
{ #category : #rendering }
90
Added:
MFTSetGroupsDialog >> renderRpe [
91
Added:
92
Added:
^ (setGroups flatCollect: #sets) anySatisfy: #hasRpe
93
Added:
]
94
Added:
95
Added:
{ #category : #rendering }
96
Added:
MFTSetGroupsDialog >> renderSetsRowsOn: html [
97
Added:
98
Added:
| renderLoad renderRpe renderRestAfter |
99
Added:
renderLoad := self renderLoad.
100
Added:
renderRpe := self renderRpe.
101
Added:
renderRestAfter := self renderRestAfter.
102
Added:
setGroups do: [ :setGroup |
103
Added:
html tableRow: [
104
Added:
html tableData: [
105
Added:
html buttonGroup: [
106
Added:
html outlineButton
107
Added:
beDanger;
108
Added:
beSmall;
109
Added:
callback: [ setGroups remove: setGroup ];
110
Added:
with: 'Remove'.
111
Added:
html outlineButton
112
Added:
beSecondary;
113
Added:
beSmall;
114
Added:
callback: [
115
Added:
setGroups
116
Added:
add: setGroup
117
Added:
afterIndex: (setGroups indexOf: setGroup) ];
118
Added:
with: 'Duplicate' ] ] ] ]
119
Added:
]
120
Added:
121
Added:
{ #category : #rendering }
122
Added:
MFTSetGroupsDialog >> renderSetsTableHeaderOn: html [
123
Added:
124
Added:
html tableHead: [
125
Added:
html
126
Added:
tableHeading;
127
Added:
tableHeading: 'Exercise';
128
Added:
tableHeading: 'Reps'.
129
Added:
self renderLoad ifTrue: [ html tableHeading: 'Load' ].
130
Added:
self renderRpe ifTrue: [ html tableHeading: 'RPE' ].
131
Added:
self renderRestAfter ifTrue: [ html tableHeading: 'Rest after (s) ' ] ]
132
Added:
]
133
Added:
134
Added:
{ #category : #rendering }
135
Added:
MFTSetGroupsDialog >> renderSetsTableOn: html [
136
Added:
137
Added:
html table
138
Added:
class: 'table table-hover table-bordered';
139
Added:
with: [
140
Added:
self renderSetsTableHeaderOn: html.
141
Added:
self renderSetsRowsOn: html ]
142
Added:
]
143
Added:
144
Added:
{ #category : #rendering }
145
Added:
MFTSetGroupsDialog >> renderSubmitOn: html [
146
Added:
147
Added:
html buttonGroup: [
148
Added:
html formButton
149
Added:
beSubmit;
150
Added:
bePrimary;
151
Added:
callback: [ self answer: setGroups ];
152
Added:
with: (completion ifNil: [ 'Submit' ] ifNotNil: [ 'Next' ]).
153
Added:
html formButton
154
Added:
beSubmit;
155
Added:
beSecondary;
156
Added:
callback: [ self answer: OrderedCollection new ];
157
Added:
with: (completion ifNil: [ 'Cancel' ] ifNotNil: [ 'Skip' ]) ]
158
Added:
]
159
Added:
160
Added:
{ #category : #accessing }
161
Added:
MFTSetGroupsDialog >> setGroups [
162
Added:
163
Added:
^ setGroups
164
Added:
]
165
Added:
166
Added:
{ #category : #accessing }
167
Added:
MFTSetGroupsDialog >> setGroups: anObject [
168
Added:
169
Added:
setGroups := anObject
170
Added:
]
src/MyFitnessTracker/MFTSetsDialog.class.st
@@ -1,173 +0,0 @@
1
Removed:
Class {
2
Removed:
#name : #MFTSetsDialog,
3
Removed:
#superclass : #MFTDialog,
4
Removed:
#instVars : [
5
Removed:
'sets'
6
Removed:
],
7
Removed:
#category : #'MyFitnessTracker-Dialog'
8
Removed:
}
9
Removed:
10
Removed:
{ #category : #actions }
11
Removed:
MFTSetsDialog class >> edit: aMFTSetCollection [
12
Removed:
13
Removed:
^ self new
14
Removed:
sets: aMFTSetCollection;
15
Removed:
action: #edit;
16
Removed:
yourself
17
Removed:
]
18
Removed:
19
Removed:
{ #category : #adding }
20
Removed:
MFTSetsDialog >> addSets: anInteger [
21
Removed:
22
Removed:
| set setsSize |
23
Removed:
setsSize := sets size + 1.
24
Removed:
set := self call:
25
Removed:
(MFTSetDialog new heading: 'Set #' , setsSize asString).
26
Removed:
set ifNil: [ ^ self ].
27
Removed:
set
28
Removed:
number: setsSize;
29
Removed:
group: setsSize.
30
Removed:
sets add: set
31
Removed:
]
32
Removed:
33
Removed:
{ #category : #adding }
34
Removed:
MFTSetsDialog >> addSuperset [
35
Removed:
36
Removed:
| superset |
37
Removed:
superset := self call: MFTSetDialog new.
38
Removed:
superset ifNotNil: [ sets add: superset ]
39
Removed:
]
40
Removed:
41
Removed:
{ #category : #initialization }
42
Removed:
MFTSetsDialog >> initialize [
43
Removed:
44
Removed:
super initialize.
45
Removed:
sets := OrderedCollection new
46
Removed:
]
47
Removed:
48
Removed:
{ #category : #rendering }
49
Removed:
MFTSetsDialog >> renderAddSetButtonsOn: html [
50
Removed:
51
Removed:
html buttonGroup: [
52
Removed:
html outlineButton
53
Removed:
bePrimary;
54
Removed:
beSmall;
55
Removed:
callback: [ self addSets: 1 ];
56
Removed:
with: 'Add set'.
57
Removed:
html outlineButton
58
Removed:
beSecondary;
59
Removed:
beSmall;
60
Removed:
callback: [ self addSets: 2 ];
61
Removed:
with: 'Add superset'.
62
Removed:
html outlineButton
63
Removed:
beSecondary;
64
Removed:
beSmall;
65
Removed:
callback: [ self addSets: 3 ];
66
Removed:
with: 'Add tri-set' ]
67
Removed:
]
68
Removed:
69
Removed:
{ #category : #rendering }
70
Removed:
MFTSetsDialog >> renderContentOn: html [
71
Removed:
72
Removed:
self renderDialogOn: html with: [
73
Removed:
sets ifNotEmpty: [ self renderSetsTableOn: html ].
74
Removed:
self renderAddSetButtonsOn: html ]
75
Removed:
]
76
Removed:
77
Removed:
{ #category : #rendering }
78
Removed:
MFTSetsDialog >> renderLoad [
79
Removed:
80
Removed:
^ sets anySatisfy: #hasLoad
81
Removed:
]
82
Removed:
83
Removed:
{ #category : #rendering }
84
Removed:
MFTSetsDialog >> renderRestAfter [
85
Removed:
86
Removed:
^ sets anySatisfy: #hasRestAfter
87
Removed:
]
88
Removed:
89
Removed:
{ #category : #rendering }
90
Removed:
MFTSetsDialog >> renderRpe [
91
Removed:
92
Removed:
^ sets anySatisfy: #hasRpe
93
Removed:
]
94
Removed:
95
Removed:
{ #category : #rendering }
96
Removed:
MFTSetsDialog >> renderSetsRowsOn: html [
97
Removed:
98
Removed:
| renderLoad renderRpe renderRestAfter |
99
Removed:
renderLoad := self renderLoad.
100
Removed:
renderRpe := self renderRpe.
101
Removed:
renderRestAfter := self renderRestAfter.
102
Removed:
sets do: [ :set |
103
Removed:
html tableRow: [
104
Removed:
html tableData: [
105
Removed:
html buttonGroup: [
106
Removed:
html outlineButton
107
Removed:
beDanger;
108
Removed:
beSmall;
109
Removed:
callback: [ sets remove: set ];
110
Removed:
with: 'Remove'.
111
Removed:
html outlineButton
112
Removed:
beSecondary;
113
Removed:
beSmall;
114
Removed:
callback: [ sets add: set afterIndex: (sets indexOf: set) ];
115
Removed:
with: 'Duplicate' ].
116
Removed:
html text: set number asString , ' ' , set group asString ].
117
Removed:
html tableData: set exercise englishName.
118
Removed:
html tableData: set reps.
119
Removed:
renderLoad ifTrue: [ html tableData: set load ].
120
Removed:
renderRpe ifTrue: [ html tableData: set rpe ].
121
Removed:
renderRestAfter ifTrue: [ html tableData: set restAfter ] ] ]
122
Removed:
]
123
Removed:
124
Removed:
{ #category : #rendering }
125
Removed:
MFTSetsDialog >> renderSetsTableHeaderOn: html [
126
Removed:
127
Removed:
html tableHead: [
128
Removed:
html
129
Removed:
tableHeading;
130
Removed:
tableHeading: 'Exercise';
131
Removed:
tableHeading: 'Reps'.
132
Removed:
self renderLoad ifTrue: [ html tableHeading: 'Load' ].
133
Removed:
self renderRpe ifTrue: [ html tableHeading: 'RPE' ].
134
Removed:
self renderRestAfter ifTrue: [ html tableHeading: 'Rest after (s) ' ] ]
135
Removed:
]
136
Removed:
137
Removed:
{ #category : #rendering }
138
Removed:
MFTSetsDialog >> renderSetsTableOn: html [
139
Removed:
140
Removed:
html table
141
Removed:
class: 'table table-hover table-bordered';
142
Removed:
with: [
143
Removed:
self renderSetsTableHeaderOn: html.
144
Removed:
self renderSetsRowsOn: html ]
145
Removed:
]
146
Removed:
147
Removed:
{ #category : #rendering }
148
Removed:
MFTSetsDialog >> renderSubmitOn: html [
149
Removed:
150
Removed:
html buttonGroup: [
151
Removed:
html formButton
152
Removed:
beSubmit;
153
Removed:
bePrimary;
154
Removed:
callback: [ self answer: sets ];
155
Removed:
with: (completion ifNil: [ 'Submit' ] ifNotNil: [ 'Next' ]).
156
Removed:
html formButton
157
Removed:
beSubmit;
158
Removed:
beSecondary;
159
Removed:
callback: [ self answer: OrderedCollection new ];
160
Removed:
with: (completion ifNil: [ 'Cancel' ] ifNotNil: [ 'Skip' ]) ]
161
Removed:
]
162
Removed:
163
Removed:
{ #category : #accessing }
164
Removed:
MFTSetsDialog >> sets [
165
Removed:
166
Removed:
^ sets
167
Removed:
]
168
Removed:
169
Removed:
{ #category : #accessing }
170
Removed:
MFTSetsDialog >> sets: anObject [
171
Removed:
172
Removed:
sets := anObject
173
Removed:
]