New workout table render! It's pretty!

Commit
64a161331d3475214289fafbe479d3aafd17e925
Author
Marius Peter <marius.peter@tutanota.com>
Author date
Committer
Marius Peter <marius.peter@tutanota.com>
Committer date
src/MyFitnessTracker/MFTWorkout.class.st
index 87ae824e..f142ff8e 100644..100644
@@ -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 }