[Pharo] Personal fitness tracker web app.
Graphs WIP.
Changed files
src/MyFitnessTracker/MFTWorkoutVolumePerWeekGraph.class.st
@@ -4,24 +4,33 @@
4
4
#category : #'MyFitnessTracker-Components'
5
5
}
6
6
7
Added:
{ #category : #'as yet unclassified' }
8
Added:
MFTWorkoutVolumePerWeekGraph >> crunchTheNumbers [
9
Added:
"TODO: not working at all!"
10
Added:
11
Added:
| datasets datasetsAsJs |
12
Added:
labels := Week dayNames.
13
Added:
data := self session user workouts groupedBy: [ :each |
14
Added:
each date dayOfYear // 7 ].
15
Added:
"datasets := {
16
Added:
{ 1. 2. 0. 0. 3. 5. 3 }.
17
Added:
{ 3. 4. 3. 0. 0. 0. 6 } }."
18
Added:
datasetsAsJs := data keysAndValuesDo: [ :k :v |
19
Added:
'{ label: ' , (#w , k asString) asJavascript
20
Added:
, ', data: ' , (v collect: #volume) asJavascript
21
Added:
, '},' ]
22
Added:
]
23
Added:
7
24
{ #category : #initialization }
8
25
MFTWorkoutVolumePerWeekGraph >> initialize [
9
26
10
Removed:
super initialize
27
Added:
super initialize.
28
Added:
self crunchTheNumbers
11
29
]
12
30
13
31
{ #category : #rendering }
14
32
MFTWorkoutVolumePerWeekGraph >> renderContentOn: html [
15
33
16
Removed:
| datasets datasetsAsJs |
17
Removed:
labels := Date dayNames.
18
Removed:
data := self session user workouts collect: #volume.
19
Removed:
datasets := {
20
Removed:
{ 1. 2. 0. 0. 3. 5. 3 }.
21
Removed:
{ 3. 4. 3. 0. 0. 0. 6 } }.
22
Removed:
datasetsAsJs := datasets collectWithIndex: [ :dataset :i |
23
Removed:
'{ label: ' , i asJavascript , ', data: '
24
Removed:
, dataset asJavascript , '},' ].
25
34
html canvas id: 'workoutVolumePerWeekChart'.
26
35
html script:
27
36
'var ctx = document.getElementById("workoutVolumePerWeekChart").getContext("2d");
@@ -29,7 +38,7 @@
29
38
type: "line",
30
39
data: {
31
40
labels: ' , labels asJavascript , ',
32
Removed:
datasets: [ ' , (datasetsAsJs joinUsing: Character space) , ' ]
41
Added:
datasets: [ ' , data asJavascript , ' ]
33
42
},
34
43
});'
35
44
]
src/MyFitnessTracker/MFTWorkoutVolumeVsTimeGraph.class.st
@@ -13,9 +13,11 @@
13
13
{ #category : #rendering }
14
14
MFTWorkoutVolumeVsTimeGraph >> renderContentOn: html [
15
15
16
Removed:
labels := self session user workouts collect: [ :workout |
17
Removed:
workout date yyyymmdd ].
18
Removed:
data := self session user workouts collect: #volume.
16
Added:
| workouts |
17
Added:
workouts := self session user workouts sort: [ :a :b |
18
Added:
a date < b date ].
19
Added:
labels := workouts collect: [ :workout | workout date yyyymmdd ].
20
Added:
data := workouts collect: #volume.
19
21
20
22
html canvas id: 'workoutVolumeVsTimeChart'.
21
23
html script: