[Pharo] Personal fitness tracker web app.
Update components.
Changed files
src/MyFitnessTracker-Components/MFTHomepage.class.st
@@ -1,12 +1,51 @@
1
1
Class {
2
2
#name : 'MFTHomepage',
3
3
#superclass : 'WAComponent',
4
Added:
#instVars : [
5
Added:
'workoutPlan'
6
Added:
],
4
7
#category : 'MyFitnessTracker-Components',
5
8
#package : 'MyFitnessTracker-Components'
6
9
}
7
10
11
Added:
{ #category : 'initialization' }
12
Added:
MFTHomepage >> initialize [
13
Added:
14
Added:
super initialize.
15
Added:
workoutPlan := MFTWorkoutPlan placeholder
16
Added:
]
17
Added:
8
18
{ #category : 'rendering' }
9
19
MFTHomepage >> renderContentOn: html [
10
20
11
Removed:
html paragraph: 'foo'
21
Added:
html heading
22
Added:
level: 1;
23
Added:
with: 'Workouts'.
24
Added:
html heading
25
Added:
level: 2;
26
Added:
with: 'Next workout'.
27
Added:
html render:
28
Added:
(MFTWorkoutComponent workout: workoutPlan nextPlannedWorkout).
29
Added:
html heading
30
Added:
level: 2;
31
Added:
with: 'Completed workouts'.
32
Added:
workoutPlan completedWorkouts do: [ :workout |
33
Added:
html render: (MFTWorkoutComponent workout: workout) ]
34
Added:
]
35
Added:
36
Added:
{ #category : 'rendering' }
37
Added:
MFTHomepage >> style [
38
Added:
^ 'color: red;'
39
Added:
]
40
Added:
41
Added:
{ #category : 'accessing' }
42
Added:
MFTHomepage >> workoutPlan [
43
Added:
44
Added:
^ workoutPlan
45
Added:
]
46
Added:
47
Added:
{ #category : 'accessing' }
48
Added:
MFTHomepage >> workoutPlan: anObject [
49
Added:
50
Added:
workoutPlan := anObject
12
51
]
src/MyFitnessTracker-Components/MFTRootComponent.class.st
@@ -47,15 +47,16 @@
47
47
]
48
48
49
49
{ #category : 'updating' }
50
Removed:
MFTRootComponent >> updateRoot: anHtmlRoot [
50
Added:
MFTRootComponent >> updateRoot: aRoot [
51
51
52
Removed:
super updateRoot: anHtmlRoot.
53
Removed:
anHtmlRoot beHtml5.
54
Removed:
anHtmlRoot meta
52
Added:
super updateRoot: aRoot.
53
Added:
aRoot beHtml5.
54
Added:
aRoot meta
55
55
name: 'viewport';
56
56
content: 'width=device-width, initial-scale=1'.
57
Removed:
anHtmlRoot title: 'My Fitness Tracker'.
58
Removed:
anHtmlRoot link
57
Added:
aRoot title: 'My Fitness Tracker'.
58
Added:
aRoot link
59
59
beShortcutIcon;
60
Removed:
url: MFTFileLibrary / #faviconPng
60
Added:
url: MFTFileLibrary / #faviconPng.
61
Added:
aRoot stylesheet url: MFTFileLibrary / #defaultCss
61
62
]
src/MyFitnessTracker-Components/MFTWorkoutComponent.class.st
@@ -0,0 +1,59 @@
1
Added:
Class {
2
Added:
#name : 'MFTWorkoutComponent',
3
Added:
#superclass : 'WAComponent',
4
Added:
#instVars : [
5
Added:
'workout'
6
Added:
],
7
Added:
#category : 'MyFitnessTracker-Components',
8
Added:
#package : 'MyFitnessTracker-Components'
9
Added:
}
10
Added:
11
Added:
{ #category : 'accessing' }
12
Added:
MFTWorkoutComponent class >> workout: aMFTWorkout [
13
Added:
14
Added:
^ self new
15
Added:
workout: aMFTWorkout;
16
Added:
yourself
17
Added:
]
18
Added:
19
Added:
{ #category : 'rendering' }
20
Added:
MFTWorkoutComponent >> renderContentOn: html [
21
Added:
22
Added:
html div
23
Added:
class: 'workout';
24
Added:
with: [
25
Added:
html heading
26
Added:
level: 3;
27
Added:
with: workout status capitalized.
28
Added:
self setGroupsAsTableOn: html ]
29
Added:
]
30
Added:
31
Added:
{ #category : 'rendering' }
32
Added:
MFTWorkoutComponent >> setGroupsAsTableOn: html [
33
Added:
34
Added:
html table: [
35
Added:
html tableHead: [
36
Added:
html
37
Added:
tableHeading: 'Set Group';
38
Added:
tableHeading: 'Reps';
39
Added:
tableHeading: 'Load' ].
40
Added:
workout setGroups collect: [ :setGroup |
41
Added:
html tableHead: [ html tableHeading: setGroup type ].
42
Added:
setGroup sets collect: [ :set |
43
Added:
html tableRow: (html
44
Added:
tableData: set exercise;
45
Added:
tableData: set reps;
46
Added:
tableData: set load) ] ] ]
47
Added:
]
48
Added:
49
Added:
{ #category : 'accessing' }
50
Added:
MFTWorkoutComponent >> workout [
51
Added:
52
Added:
^ workout
53
Added:
]
54
Added:
55
Added:
{ #category : 'accessing' }
56
Added:
MFTWorkoutComponent >> workout: aMFTWorkout [
57
Added:
58
Added:
workout := aMFTWorkout
59
Added:
]