[Pharo] Personal fitness tracker web app.
Simplify page-level callbacks.
Changed files
src/MyFitnessTracker-Web/MFTHomePage.class.st
@@ -1,20 +1,11 @@
1
1
Class {
2
2
#name : 'MFTHomePage',
3
3
#superclass : 'MFTPage',
4
Removed:
#instVars : [
5
Removed:
'onLogWorkout'
6
Removed:
],
7
4
#category : 'MyFitnessTracker-Web-Components',
8
5
#package : 'MyFitnessTracker-Web',
9
6
#tag : 'Components'
10
7
}
11
8
12
Removed:
{ #category : 'accessing' }
13
Removed:
MFTHomePage >> onLogWorkout: aBlock [
14
Removed:
15
Removed:
onLogWorkout := aBlock
16
Removed:
]
17
Removed:
18
9
{ #category : 'rendering' }
19
10
MFTHomePage >> renderContentOn: html [
20
11
@@ -33,9 +24,17 @@
33
24
{ #category : 'rendering' }
34
25
MFTHomePage >> renderMainActionsOn: html [
35
26
27
Added:
| trainee |
28
Added:
trainee := self session user trainee.
29
Added:
36
30
html div: [
37
31
html anchor
38
Removed:
callback: [ onLogWorkout value ];
32
Added:
callback: [
33
Added:
| workoutLog |
34
Added:
workoutLog := self call:
35
Added:
(MFTWorkoutLogEditorPage forWorkoutPrescription:
36
Added:
trainee nextWorkoutPrescription).
37
Added:
workoutLog ifNotNil: [ trainee logWorkout: workoutLog ] ];
39
38
with: 'Log workout' ]
40
39
]
41
40
src/MyFitnessTracker-Web/MFTPlanPage.class.st
@@ -1,28 +1,22 @@
1
1
Class {
2
2
#name : 'MFTPlanPage',
3
3
#superclass : 'MFTPage',
4
Removed:
#instVars : [
5
Removed:
'onChangePlan'
6
Removed:
],
7
4
#category : 'MyFitnessTracker-Web-Components',
8
5
#package : 'MyFitnessTracker-Web',
9
6
#tag : 'Components'
10
7
}
11
8
12
9
{ #category : 'rendering' }
13
Removed:
MFTPlanPage >> onChangePlan: aBlock [
14
Removed:
15
Removed:
onChangePlan := aBlock
16
Removed:
]
17
Removed:
18
Removed:
{ #category : 'rendering' }
19
10
MFTPlanPage >> renderContentOn: html [
20
11
21
12
self renderPageOn: html with: [
22
Removed:
html heading: 'Current plan'.
13
Added:
html heading: 'Plan'.
14
Added:
self renderPlanActionsOn: html.
15
Added:
html heading
16
Added:
level: 2;
17
Added:
with: 'Current plan'.
23
18
self
24
19
renderCurrentPlanInfoOn: html;
25
Removed:
renderPlanActionsOn: html;
26
20
renderPlanWorkoutsOn: html ]
27
21
]
28
22
@@ -44,10 +38,19 @@
44
38
{ #category : 'rendering' }
45
39
MFTPlanPage >> renderPlanActionsOn: html [
46
40
47
Removed:
html div: [
48
Removed:
html anchor
49
Removed:
callback: [ onChangePlan value ];
50
Removed:
with: 'Change plan' ]
41
Added:
html unorderedList: [
42
Added:
html
43
Added:
listItem: [
44
Added:
html anchor
45
Added:
callback: [ self ];
46
Added:
with: 'View current plan' ];
47
Added:
listItem: [
48
Added:
html anchor
49
Added:
callback: [
50
Added:
self call:
51
Added:
(MFTPlanEditorPage forRoutine:
52
Added:
self session user trainee routine) ];
53
Added:
with: 'Edit plan' ] ]
51
54
]
52
55
53
56
{ #category : 'rendering' }
src/MyFitnessTracker-Web/MFTScreenComponent.class.st
@@ -60,17 +60,8 @@
60
60
trainee := self session user trainee.
61
61
62
62
mainPages := OrderedDictionary newFrom: {
63
Removed:
(#home -> (MFTHomePage new onLogWorkout: [
64
Removed:
| workoutLog |
65
Removed:
workoutLog := activePage call:
66
Removed:
(MFTWorkoutLogEditorPage
67
Removed:
forWorkoutPrescription:
68
Removed:
trainee nextWorkoutPrescription).
69
Removed:
workoutLog ifNotNil: [
70
Removed:
trainee logWorkout: workoutLog ] ])).
71
Removed:
(#plan -> (MFTPlanPage new onChangePlan: [
72
Removed:
activePage call:
73
Removed:
(MFTPlanEditorPage forRoutine: trainee routine) ])).
63
Added:
(#home -> MFTHomePage new).
64
Added:
(#plan -> MFTPlanPage new).
74
65
(#profile -> MFTProfilePage new) }
75
66
]
76
67