[Pharo] Personal fitness tracker web app.
Clean up all components accessing, adding, or deleting session user workouts and weights.
Changed files
src/MyFitnessTracker/MFTMainPublicCard.class.st
@@ -4,6 +4,19 @@
4
4
#category : #'MyFitnessTracker-Components'
5
5
}
6
6
7
Added:
{ #category : #adding }
8
Added:
MFTMainPublicCard >> addWorkout [
9
Added:
10
Added:
| newWorkout |
11
Added:
newWorkout := self session pageManager activePage call:
12
Added:
MFTWorkoutTask new.
13
Added:
newWorkout ifNil: [ ^ self ].
14
Added:
15
Added:
self session user isLoggedIn
16
Added:
ifTrue: [ self session db insert: newWorkout ]
17
Added:
ifFalse: [ self session user workouts add: newWorkout ]
18
Added:
]
19
Added:
7
20
{ #category : #rendering }
8
21
MFTMainPublicCard >> renderContentOn: html [
9
22
@@ -23,6 +36,6 @@
23
36
bePrimary;
24
37
beLarge;
25
38
class: 'mt-3';
26
Removed:
callback: [ self session pageManager activePage call: MFTWorkoutTask new ];
39
Added:
callback: [ self addWorkout ];
27
40
with: 'Log a workout' ] ] ]
28
41
]
src/MyFitnessTracker/MFTWeightsCard.class.st
@@ -5,14 +5,18 @@
5
5
}
6
6
7
7
{ #category : #adding }
8
Removed:
MFTWeightsCard >> addWeightDialog [
8
Added:
MFTWeightsCard >> addWeight [
9
9
10
10
| newWeight |
11
11
newWeight := self session pageManager activePage call:
12
12
MFTWeightDialog new.
13
Removed:
(newWeight isNotNil and: [
14
Removed:
(#( '' '0' nil ) includes: newWeight value) not ]) ifTrue: [
15
Removed:
self session user weights add: newWeight ]
13
Added:
(self session user weights anySatisfy: [ :existingWeight |
14
Added:
newWeight date = existingWeight date and: [
15
Added:
newWeight value = existingWeight value ] ]) ifTrue: [ ^ self ].
16
Added:
17
Added:
self session user isLoggedIn
18
Added:
ifTrue: [ self session db insert: newWeight ]
19
Added:
ifFalse: [ self session user weights add: newWeight ]
16
20
]
17
21
18
22
{ #category : #rendering }
@@ -31,7 +35,7 @@
31
35
with: [
32
36
html outlineButton
33
37
bePrimary;
34
Removed:
callback: [ self addWeightDialog ];
38
Added:
callback: [ self addWeight ];
35
39
with: 'Log weight'.
36
40
html outlineButton
37
41
beSecondary;
src/MyFitnessTracker/MFTWeightsListPage.class.st
@@ -12,27 +12,29 @@
12
12
13
13
| newWeight |
14
14
newWeight := self call: MFTWeightDialog new.
15
Removed:
newWeight value = 0 ifTrue: [ ^ self ].
16
15
(weights anySatisfy: [ :existingWeight |
17
16
newWeight date = existingWeight date and: [
18
17
newWeight value = existingWeight value ] ]) ifTrue: [ ^ self ].
19
18
20
Removed:
self session user weights add: newWeight.
21
Removed:
self session user isLoggedIn ifTrue: [
22
Removed:
self session db insert: newWeight ]
19
Added:
self session user isLoggedIn
20
Added:
ifTrue: [ self session db insert: newWeight ]
21
Added:
ifFalse: [ weights add: newWeight ]
23
22
]
24
23
25
24
{ #category : #accessing }
26
25
MFTWeightsListPage >> editWeight: oldWeight [
27
26
28
27
| newWeight |
29
Removed:
newWeight := self call: (MFTWeightDialog edit: oldWeight).
30
Removed:
(newWeight isNil or: [ newWeight value = 0 ]) ifTrue: [ ^ self ].
31
Removed:
self session user weights
32
Removed:
remove: oldWeight;
33
Removed:
add: newWeight.
34
Removed:
self session user isLoggedIn ifTrue: [
35
Removed:
self session db update: oldWeight with: newWeight ]
28
Added:
newWeight := self call: (MFTWeightDialog edit: oldWeight copy).
29
Added:
(oldWeight value = newWeight value and: [
30
Added:
oldWeight date = newWeight date ]) ifTrue: [ ^ self ].
31
Added:
32
Added:
self session user isLoggedIn
33
Added:
ifTrue: [ self session db update: oldWeight with: newWeight ]
34
Added:
ifFalse: [
35
Added:
weights
36
Added:
remove: oldWeight;
37
Added:
add: newWeight ]
36
38
]
37
39
38
40
{ #category : #initialization }
@@ -56,9 +58,9 @@
56
58
{ #category : #accessing }
57
59
MFTWeightsListPage >> removeWeight: aMFTWeight [
58
60
59
Removed:
self session user weights remove: aMFTWeight.
60
Removed:
self session user isLoggedIn ifTrue: [
61
Removed:
self session db delete: aMFTWeight ]
61
Added:
self session user isLoggedIn
62
Added:
ifTrue: [ self session db delete: aMFTWeight ]
63
Added:
ifFalse: [ weights remove: aMFTWeight ]
62
64
]
63
65
64
66
{ #category : #rendering }
src/MyFitnessTracker/MFTWorkoutsListPage.class.st
@@ -82,12 +82,13 @@
82
82
{ #category : #adding }
83
83
MFTWorkoutsListPage >> addWorkout [
84
84
85
Removed:
| workout |
86
Removed:
workout := self call: MFTWorkoutTask new.
87
Removed:
workout ifNotNil: [
88
Removed:
self session user workouts add: workout.
89
Removed:
self session user isLoggedIn ifTrue: [
90
Removed:
self session db insert: workout ] ]
85
Added:
| newWorkout |
86
Added:
newWorkout := self call: MFTWorkoutTask new.
87
Added:
newWorkout ifNil: [ ^ self ].
88
Added:
89
Added:
self session user isLoggedIn
90
Added:
ifTrue: [ self session db insert: newWorkout ]
91
Added:
ifFalse: [ workouts add: newWorkout ]
91
92
]
92
93
93
94
{ #category : #hooks }
@@ -99,21 +100,25 @@
99
100
{ #category : #accessing }
100
101
MFTWorkoutsListPage >> confirmDelete: workout [
101
102
102
Removed:
(self call: (MFTConfirmDialog delete: workout)) ifTrue: [
103
Removed:
self session user workouts remove: workout ]
103
Added:
(self call: (MFTConfirmDialog delete: workout)) ifFalse: [ ^ self ].
104
Added:
self session user isLoggedIn
105
Added:
ifTrue: [ self session db delete: workout ]
106
Added:
ifFalse: [ workouts remove: workout ]
104
107
]
105
108
106
109
{ #category : #'as yet unclassified' }
107
110
MFTWorkoutsListPage >> editWorkout: oldWorkout [
108
111
109
112
| newWorkout |
110
Removed:
newWorkout := self call: (MFTWorkoutTask edit: oldWorkout).
113
Added:
newWorkout := self call: (MFTWorkoutTask edit: oldWorkout copy).
111
114
newWorkout ifNil: [ ^ self ].
112
Removed:
self session user workouts
113
Removed:
remove: oldWorkout;
114
Removed:
add: newWorkout.
115
Removed:
self session user isLoggedIn ifTrue: [
116
Removed:
self session db update: oldWorkout with: newWorkout ]
115
Added:
116
Added:
self session user isLoggedIn
117
Added:
ifTrue: [ self session db update: oldWorkout with: newWorkout ]
118
Added:
ifFalse: [
119
Added:
workouts
120
Added:
remove: oldWorkout;
121
Added:
add: newWorkout ]
117
122
]
118
123
119
124
{ #category : #initialization }
@@ -204,7 +209,7 @@
204
209
with: [
205
210
html accordionBody with: [
206
211
html render: workout.
207
Removed:
self renderWorkoutActionsButtonGroup: html for: workout ] ] ] ] ]
212
Added:
self renderWorkoutActionsButtonGroup: html for: workout ] ] ] ] ]
208
213
]
209
214
210
215
{ #category : #adding }