View raw

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