[Pharo] Personal fitness tracker web app.
1
Class {
2
#name : 'MFTWorkoutLogEditorPage',
3
#superclass : 'MFTPage',
4
#instVars : [
5
'workoutLogEditorComponent',
6
'workoutLog'
7
],
8
#category : 'MyFitnessTracker-Web-Components',
9
#package : 'MyFitnessTracker-Web',
10
#tag : 'Components'
11
}
12
13
{ #category : 'as yet unclassified' }
14
MFTWorkoutLogEditorPage class >> forWorkoutLog: aMFTWorkoutLog [
15
16
^ self new
17
workoutLog: aMFTWorkoutLog;
18
workoutLogEditorComponent:
19
(MFTWorkoutLogEditorComponent forWorkoutLog: aMFTWorkoutLog);
20
yourself
21
]
22
23
{ #category : 'as yet unclassified' }
24
MFTWorkoutLogEditorPage class >> forWorkoutPrescription: aMFTWorkoutPrescription [
25
26
| workoutLog |
27
workoutLog := MFTWorkoutLog forPrescription: aMFTWorkoutPrescription.
28
workoutLog start ifNil: [ workoutLog startNow ].
29
workoutLog finish ifNil: [ workoutLog finish: workoutLog start ].
30
31
^ self forWorkoutLog: workoutLog
32
]
33
34
{ #category : 'as yet unclassified' }
35
MFTWorkoutLogEditorPage >> children [
36
37
^ { workoutLogEditorComponent }
38
]
39
40
{ #category : 'rendering' }
41
MFTWorkoutLogEditorPage >> renderContentOn: html [
42
43
html heading
44
level: 1;
45
with: 'Log Workout'.
46
html heading
47
level: 2;
48
with: workoutLog prescription canonicalName.
49
html horizontalRule.
50
html render: workoutLogEditorComponent
51
]
52
53
{ #category : 'accessing' }
54
MFTWorkoutLogEditorPage >> title [
55
56
^ 'Log workout'
57
]
58
59
{ #category : 'accessing' }
60
MFTWorkoutLogEditorPage >> workoutLog: aMFTWorkoutLog [
61
62
workoutLog := aMFTWorkoutLog
63
]
64
65
{ #category : 'as yet unclassified' }
66
MFTWorkoutLogEditorPage >> workoutLogEditorComponent: aMFTWorkoutLogEditorComponent [
67
68
workoutLogEditorComponent := aMFTWorkoutLogEditorComponent
69
onSaveWorkout: [
70
self answer: workoutLog ];
71
onDiscardWorkout: [ self answer: nil ]
72
]
73