[Pharo] Personal fitness tracker web app.
New workout table render! It's pretty!
src/MyFitnessTracker/MFTWorkout.class.st
@@ -132,6 +132,40 @@
132
132
]
133
133
134
134
{ #category : #rendering }
135
Added:
MFTWorkout >> renderAllSetsTableOn: html [
136
Added:
137
Added:
| renderLoad renderVolume |
138
Added:
"We avoid recalculating these render predicates in the main loop below."
139
Added:
renderLoad := self anySetHasLoad.
140
Added:
renderVolume := self anySetHasVolume.
141
Added:
142
Added:
html table
143
Added:
class: 'table table-striped table-bordered';
144
Added:
with: [
145
Added:
self renderSetsTableHeaderOn: html.
146
Added:
sets do: [ :set |
147
Added:
html tableRow: [
148
Added:
html tableData
149
Added:
style: 'text-align: right';
150
Added:
with: ('n{1} g{2}' format: {
151
Added:
set number.
152
Added:
set group }).
153
Added:
html tableData: set exercise englishName capitalized.
154
Added:
html tableData
155
Added:
style: 'text-align: right';
156
Added:
with: set reps.
157
Added:
renderLoad ifTrue: [
158
Added:
html tableData
159
Added:
style: 'text-align: right';
160
Added:
with: set load ].
161
Added:
renderVolume ifTrue: [
162
Added:
html tableData
163
Added:
style: 'text-align: right';
164
Added:
with: set volume ] ] ].
165
Added:
self renderSetsTableFooterOn: html ]
166
Added:
]
167
Added:
168
Added:
{ #category : #rendering }
135
169
MFTWorkout >> renderContentOn: html [
136
170
137
171
html definitionList: [
@@ -147,10 +181,44 @@
147
181
definitionTerm: 'Secondary Muscle Group';
148
182
definitionData:
149
183
(self secondaryMuscleGroups collect: #englishName) asCommaString ] ].
150
Removed:
sets ifNotEmpty: [ self renderSetsTableOn: html ]
184
Added:
sets ifNotEmpty: [ self renderGroupedSetsTableOn: html ]
151
185
]
152
186
153
187
{ #category : #rendering }
188
Added:
MFTWorkout >> renderGroupedSetsTableOn: html [
189
Added:
190
Added:
| renderLoad renderVolume |
191
Added:
renderLoad := self anySetHasLoad.
192
Added:
renderVolume := self anySetHasVolume.
193
Added:
194
Added:
html table
195
Added:
class: 'table table-bordered';
196
Added:
with: [
197
Added:
self renderSetsTableHeaderOn: html.
198
Added:
self setGroups do: [ :group |
199
Added:
html tableRow: [
200
Added:
html tableHeading
201
Added:
attributeAt: 'rowspan' put: group sets size + 1;
202
Added:
style: 'vertical-align: middle';
203
Added:
with: group type capitalized ].
204
Added:
group sets do: [ :set |
205
Added:
html tableRow: [
206
Added:
html tableData: set exercise englishName capitalized.
207
Added:
html tableData
208
Added:
style: 'text-align: right';
209
Added:
with: set reps.
210
Added:
renderLoad ifTrue: [
211
Added:
html tableData
212
Added:
style: 'text-align: right';
213
Added:
with: set load ].
214
Added:
renderVolume ifTrue: [
215
Added:
html tableData
216
Added:
style: 'text-align: right';
217
Added:
with: set volume ] ] ] ].
218
Added:
self renderSetsTableFooterOn: html ]
219
Added:
]
220
Added:
221
Added:
{ #category : #rendering }
154
222
MFTWorkout >> renderSetsTableFooterOn: html [
155
223
156
224
| totalReps totalVolume |
@@ -186,37 +254,6 @@
186
254
html tableHeading
187
255
style: 'text-align: right';
188
256
with: 'Volume' ] ]
189
Removed:
]
190
Removed:
191
Removed:
{ #category : #rendering }
192
Removed:
MFTWorkout >> renderSetsTableOn: html [
193
Removed:
194
Removed:
| renderLoad renderVolume |
195
Removed:
renderLoad := self anySetHasLoad.
196
Removed:
renderVolume := self anySetHasVolume.
197
Removed:
198
Removed:
html table
199
Removed:
class: 'table table-striped table-bordered';
200
Removed:
with: [
201
Removed:
self renderSetsTableHeaderOn: html.
202
Removed:
sets do: [ :set |
203
Removed:
html tableRow: [
204
Removed:
html tableData
205
Removed:
style: 'text-align: right';
206
Removed:
with: set setNumber asString, ' ', set setGroup asString.
207
Removed:
html tableData: set exercise englishName capitalized.
208
Removed:
html tableData
209
Removed:
style: 'text-align: right';
210
Removed:
with: set reps.
211
Removed:
renderLoad ifTrue: [
212
Removed:
html tableData
213
Removed:
style: 'text-align: right';
214
Removed:
with: set load ].
215
Removed:
renderVolume ifTrue: [
216
Removed:
html tableData
217
Removed:
style: 'text-align: right';
218
Removed:
with: set volume ] ] ].
219
Removed:
self renderSetsTableFooterOn: html ]
220
257
]
221
258
222
259
{ #category : #accessing }