[Pharo] Personal fitness tracker web app.
Remove optional form components, for now.
Changed files
src/MyFitnessTracker/MFTFormComponent.class.st
@@ -6,9 +6,7 @@
6
6
#superclass : 'SBSComponent',
7
7
#instVars : [
8
8
'heading',
9
Removed:
'modelObject',
10
Removed:
'isOptional',
11
Removed:
'displayOptional'
9
Added:
'modelObject'
12
10
],
13
11
#category : 'MyFitnessTracker-Forms',
14
12
#package : 'MyFitnessTracker',
@@ -45,19 +43,6 @@
45
43
yourself
46
44
]
47
45
48
Removed:
{ #category : 'initialization' }
49
Removed:
MFTFormComponent >> beMandatory [
50
Removed:
51
Removed:
isOptional := false
52
Removed:
]
53
Removed:
54
Removed:
{ #category : 'initialization' }
55
Removed:
MFTFormComponent >> beOptional [
56
Removed:
57
Removed:
isOptional := true
58
Removed:
59
Removed:
]
60
Removed:
61
46
{ #category : 'accessing' }
62
47
MFTFormComponent >> heading [
63
48
@@ -73,9 +58,7 @@
73
58
{ #category : 'initialization' }
74
59
MFTFormComponent >> initialize [
75
60
76
Removed:
super initialize.
77
Removed:
isOptional := false.
78
Removed:
displayOptional := false
61
Added:
super initialize
79
62
]
80
63
81
64
{ #category : 'accessing' }
@@ -105,20 +88,5 @@
105
88
html paragraph
106
89
heading: 3;
107
90
with: [ html text: heading ].
108
Removed:
isOptional
109
Removed:
ifFalse: [ aBlock value ]
110
Removed:
ifTrue: [ self renderOptionalOn: html with: aBlock ] ]
111
Removed:
]
112
Removed:
113
Removed:
{ #category : 'rendering' }
114
Removed:
MFTFormComponent >> renderOptionalOn: html with: aBlock [
115
Removed:
116
Removed:
displayOptional
117
Removed:
ifFalse: [
118
Removed:
html outlineButton
119
Removed:
beSecondary;
120
Removed:
beSmall;
121
Removed:
callback: [ displayOptional := true ];
122
Removed:
with: 'Add' ]
123
Removed:
ifTrue: [ aBlock value ]
91
Added:
aBlock value ]
124
92
]
src/MyFitnessTracker/MFTSetDialog.class.st
@@ -8,102 +8,3 @@
8
8
#package : 'MyFitnessTracker',
9
9
#tag : 'Dialogs'
10
10
}
11
Removed:
12
Removed:
{ #category : 'actions' }
13
Removed:
MFTSetDialog class >> edit: aMFTSet [
14
Removed:
15
Removed:
^ self new
16
Removed:
set: aMFTSet;
17
Removed:
action: #edit;
18
Removed:
yourself
19
Removed:
]
20
Removed:
21
Removed:
{ #category : 'actions' }
22
Removed:
MFTSetDialog class >> edit: aMFTSet withExercise: aMFTExercise [
23
Removed:
24
Removed:
^ self new
25
Removed:
set: (aMFTSet exercise: aMFTExercise);
26
Removed:
action: #edit;
27
Removed:
yourself
28
Removed:
]
29
Removed:
30
Removed:
{ #category : 'instance creation' }
31
Removed:
MFTSetDialog class >> newForExercise: aMFTExercise [
32
Removed:
33
Removed:
^ self new
34
Removed:
set: (MFTSet new exercise: aMFTExercise);
35
Removed:
subheading: aMFTExercise englishName;
36
Removed:
yourself
37
Removed:
]
38
Removed:
39
Removed:
{ #category : 'initialization' }
40
Removed:
MFTSetDialog >> initialize [
41
Removed:
42
Removed:
super initialize.
43
Removed:
set := MFTSet new reps: 8
44
Removed:
]
45
Removed:
46
Removed:
{ #category : 'rendering' }
47
Removed:
MFTSetDialog >> renderContentOn: html [
48
Removed:
49
Removed:
self renderDialogOn: html with: [
50
Removed:
html table: [
51
Removed:
html tableRow: [
52
Removed:
html tableHeading: 'Reps'.
53
Removed:
html tableData: [
54
Removed:
html numberInput formControl
55
Removed:
value: set reps;
56
Removed:
callback: [ :value | set reps: value asInteger ] ] ].
57
Removed:
html tableRow: [
58
Removed:
html tableHeading: 'Load'.
59
Removed:
html tableData: [
60
Removed:
html numberInput formControl
61
Removed:
value: set load;
62
Removed:
callback: [ :value |
63
Removed:
set load:
64
Removed:
(value ifNotEmpty: [ value asNumber ] ifEmpty: [ nil ]) ] ] ].
65
Removed:
html tableRow: [
66
Removed:
html tableHeading: 'RPE'.
67
Removed:
html tableData: [
68
Removed:
html numberInput formControl
69
Removed:
value: set rpe;
70
Removed:
callback: [ :value |
71
Removed:
set rpe:
72
Removed:
(value ifNotEmpty: [ value asInteger ] ifEmpty: [ nil ]) ] ] ].
73
Removed:
html tableRow: [
74
Removed:
html tableHeading: 'Rest after (s)'.
75
Removed:
html tableData: [
76
Removed:
html numberInput formControl
77
Removed:
value: set restAfter;
78
Removed:
callback: [ :value |
79
Removed:
set restAfter:
80
Removed:
(value ifNotEmpty: [ value asNumber ] ifEmpty: [ nil ]) ] ] ] ] ]
81
Removed:
]
82
Removed:
83
Removed:
{ #category : 'delegation' }
84
Removed:
MFTSetDialog >> renderSubmitOn: html [
85
Removed:
86
Removed:
html buttonGroup: [
87
Removed:
html formButton
88
Removed:
beSubmit;
89
Removed:
bePrimary;
90
Removed:
callback: [ self answer: (set reps ifNotNil: [ set ]) ];
91
Removed:
with: (completion ifNil: [ 'Submit' ] ifNotNil: [ 'Next' ]).
92
Removed:
html formButton
93
Removed:
beSubmit;
94
Removed:
beSecondary;
95
Removed:
callback: [ self answer: nil ];
96
Removed:
with: (completion ifNil: [ 'Cancel' ] ifNotNil: [ 'Skip' ]) ]
97
Removed:
]
98
Removed:
99
Removed:
{ #category : 'accessing' }
100
Removed:
MFTSetDialog >> set [
101
Removed:
102
Removed:
^ set
103
Removed:
]
104
Removed:
105
Removed:
{ #category : 'accessing' }
106
Removed:
MFTSetDialog >> set: anObject [
107
Removed:
108
Removed:
set := anObject
109
Removed:
]
src/MyFitnessTracker/MFTSetGroupDialog.class.st
@@ -12,27 +12,6 @@
12
12
}
13
13
14
14
{ #category : 'as yet unclassified' }
15
Removed:
MFTSetGroupDialog class >> edit: aMFTSetGroup [
16
Removed:
17
Removed:
^ self new
18
Removed:
setGroup: aMFTSetGroup;
19
Removed:
selectedExercises:
20
Removed:
(aMFTSetGroup sets collect: #exercise) asSet asOrderedCollection;
21
Removed:
action: #edit;
22
Removed:
yourself
23
Removed:
]
24
Removed:
25
Removed:
{ #category : 'as yet unclassified' }
26
Removed:
MFTSetGroupDialog class >> edit: aMFTSetGroup withExercises: aMFTExerciseCollection [
27
Removed:
28
Removed:
^ self new
29
Removed:
setGroup: aMFTSetGroup;
30
Removed:
selectedExercises: aMFTExerciseCollection;
31
Removed:
action: #edit;
32
Removed:
yourself
33
Removed:
]
34
Removed:
35
Removed:
{ #category : 'as yet unclassified' }
36
15
MFTSetGroupDialog >> addSet [
37
16
38
17
| set |
src/MyFitnessTracker/MFTSetsDialog.class.st
@@ -8,107 +8,3 @@
8
8
#package : 'MyFitnessTracker',
9
9
#tag : 'Dialogs'
10
10
}
11
Removed:
12
Removed:
{ #category : 'actions' }
13
Removed:
MFTSetsDialog class >> edit: aMFTSetCollection [
14
Removed:
15
Removed:
^ self new
16
Removed:
sets: aMFTSetCollection;
17
Removed:
action: #edit;
18
Removed:
yourself
19
Removed:
]
20
Removed:
21
Removed:
{ #category : 'actions' }
22
Removed:
MFTSetsDialog class >> edit: aMFTSetCollection withExercises: aMFTExerciseCollection [
23
Removed:
24
Removed:
^ self new
25
Removed:
sets: (aMFTSetCollection
26
Removed:
with: aMFTExerciseCollection
27
Removed:
do: [ :set :exercise | set exercise: exercise ]);
28
Removed:
action: #edit;
29
Removed:
yourself
30
Removed:
]
31
Removed:
32
Removed:
{ #category : 'actions' }
33
Removed:
MFTSetsDialog class >> newForExercises: aMFTExerciseCollection [
34
Removed:
35
Removed:
^ self new
36
Removed:
sets: (aMFTExerciseCollection collect: [ :exercise |
37
Removed:
MFTSet new
38
Removed:
reps: 8;
39
Removed:
exercise: exercise ]);
40
Removed:
yourself
41
Removed:
]
42
Removed:
43
Removed:
{ #category : 'initialization' }
44
Removed:
MFTSetsDialog >> initialize [
45
Removed:
46
Removed:
super initialize.
47
Removed:
sets := OrderedCollection new
48
Removed:
]
49
Removed:
50
Removed:
{ #category : 'rendering' }
51
Removed:
MFTSetsDialog >> renderContentOn: html [
52
Removed:
53
Removed:
self renderDialogOn: html with: [
54
Removed:
html table
55
Removed:
class: 'table table-bordered';
56
Removed:
with: [
57
Removed:
html tableRow: [
58
Removed:
html
59
Removed:
tableHeading: 'Exercise';
60
Removed:
tableHeading: 'Reps';
61
Removed:
tableHeading: 'Load';
62
Removed:
tableHeading: 'RPE';
63
Removed:
tableHeading: 'Rest after (s)' ].
64
Removed:
sets do: [ :set |
65
Removed:
html tableRow: [
66
Removed:
html tableData: set exercise englishName.
67
Removed:
html tableData: [
68
Removed:
html numberInput formControl
69
Removed:
value: set reps;
70
Removed:
callback: [ :value | set reps: value asInteger ] ].
71
Removed:
html tableData: [
72
Removed:
html numberInput formControl
73
Removed:
value: set load;
74
Removed:
callback: [ :value |
75
Removed:
value ifNotEmpty: [ set load: value asNumber ] ] ].
76
Removed:
html tableData: [
77
Removed:
html numberInput formControl
78
Removed:
value: set rpe;
79
Removed:
callback: [ :value |
80
Removed:
value ifNotEmpty: [ set rpe: value asInteger ] ] ].
81
Removed:
html tableData: [
82
Removed:
html numberInput formControl
83
Removed:
value: set restAfter;
84
Removed:
callback: [ :value |
85
Removed:
value ifNotEmpty: [ set restAfter: value asNumber ] ] ] ] ] ] ]
86
Removed:
]
87
Removed:
88
Removed:
{ #category : 'delegation' }
89
Removed:
MFTSetsDialog >> renderSubmitOn: html [
90
Removed:
91
Removed:
html buttonGroup: [
92
Removed:
html formButton
93
Removed:
beSubmit;
94
Removed:
bePrimary;
95
Removed:
callback: [ self answer: sets ];
96
Removed:
with: (completion ifNil: [ 'Submit' ] ifNotNil: [ 'Next' ]).
97
Removed:
html formButton
98
Removed:
beSubmit;
99
Removed:
beSecondary;
100
Removed:
callback: [ self answer: OrderedCollection new ];
101
Removed:
with: (completion ifNil: [ 'Cancel' ] ifNotNil: [ 'Skip' ]) ]
102
Removed:
]
103
Removed:
104
Removed:
{ #category : 'accessing' }
105
Removed:
MFTSetsDialog >> sets [
106
Removed:
107
Removed:
^ sets
108
Removed:
]
109
Removed:
110
Removed:
{ #category : 'accessing' }
111
Removed:
MFTSetsDialog >> sets: anObject [
112
Removed:
113
Removed:
sets := anObject
114
Removed:
]
src/MyFitnessTracker/MFTWorkoutForm.class.st
@@ -19,12 +19,18 @@
19
19
20
20
super initialize.
21
21
modelObject := MFTWorkout new.
22
Removed:
heading := 'Workout'.
23
Removed:
body := {
24
Removed:
(MFTFormComponent set: #date) beMandatory.
25
Removed:
(MFTFormComponent set: #setGroups) beMandatory.
26
Removed:
(MFTFormComponent set: #primaryMuscleGroup) beOptional.
27
Removed:
(MFTFormComponent set: #secondaryMuscleGroups) beOptional }
22
Added:
heading := 'Workout'
23
Added:
]
24
Added:
25
Added:
{ #category : 'rendering' }
26
Added:
MFTWorkoutForm >> renderContentOn: html [
27
Added:
28
Added:
self renderFormOn: html with: [
29
Added:
html
30
Added:
render: (MFTFormComponent set: #date);
31
Added:
render: (MFTFormComponent set: #setGroups);
32
Added:
render: (MFTFormComponent set: #primaryMuscleGroup);
33
Added:
render: (MFTFormComponent set: #secondaryMuscleGroups) ]
28
34
]
29
35
30
36
{ #category : 'as yet unclassified' }