[Pharo] Personal fitness tracker web app.
Begin great simplification.
Changed files
- src/BaselineOfMyFitnessTracker/BaselineOfMyFitnessTracker.class.st
- src/MyFitnessTracker-Components/MFTPublicLandingPage.class.st
- src/MyFitnessTracker-Components/MFTRootComponent.class.st
- src/MyFitnessTracker-Components/MFTScreenComponent.class.st
- src/MyFitnessTracker-Components/MFTWorkoutPlanCard.class.st
- src/MyFitnessTracker-Core/MFTWeight.class.st
src/BaselineOfMyFitnessTracker/BaselineOfMyFitnessTracker.class.st
@@ -36,12 +36,7 @@
36
36
37
37
spec
38
38
baseline: 'Bootstrap5';
39
Removed:
repository: 'github://astares/Seaside-Bootstrap5:master/src';
40
Removed:
load: [ :baselineSpec |
41
Removed:
baselineSpec project: 'Seaside3' with: [ :projectSpec |
42
Removed:
projectSpec
43
Removed:
repository: 'github://SeasideSt/Seaside:3.5.7/repository';
44
Removed:
versionString: '3.5.7' ] ].
39
Added:
repository: 'github://astares/Seaside-Bootstrap5:master/src'.
45
40
spec
46
41
baseline: 'SQLite3';
47
42
repository: 'github://pharo-rdbms/Pharo-SQLite3/src'
src/MyFitnessTracker-Components/MFTPublicLandingPage.class.st
@@ -11,8 +11,7 @@
11
11
12
12
^ {
13
13
MFTMainPublicCard new.
14
Removed:
MFTWorkoutPlanCard new.
15
Removed:
MFTWorkoutsCard new.
16
Removed:
MFTWeightsCard new.
14
Added:
"MFTWorkoutsCard new."
15
Added:
"MFTWeightsCard new."
17
16
MFTPromisesCard new }
18
17
]
src/MyFitnessTracker-Components/MFTRootComponent.class.st
@@ -2,7 +2,7 @@
2
2
#name : 'MFTRootComponent',
3
3
#superclass : 'SBSRootComponent',
4
4
#instVars : [
5
Removed:
'main'
5
Added:
'pageManager'
6
6
],
7
7
#category : 'MyFitnessTracker-Components',
8
8
#package : 'MyFitnessTracker-Components'
@@ -55,27 +55,30 @@
55
55
{ #category : 'rendering' }
56
56
MFTRootComponent >> children [
57
57
58
Removed:
^ { main }
58
Added:
^ {
59
Added:
pageManager header.
60
Added:
pageManager mainNavigationBar.
61
Added:
pageManager activePage.
62
Added:
pageManager footer }
59
63
]
60
64
61
65
{ #category : 'initialization' }
62
66
MFTRootComponent >> initialize [
63
67
64
68
super initialize.
65
Removed:
main := MFTScreenComponent new
69
Added:
pageManager := self session pageManager
66
70
]
67
71
68
Removed:
{ #category : 'initialization' }
69
Removed:
MFTRootComponent >> main: aComponent [
70
Removed:
71
Removed:
main := aComponent
72
Removed:
]
73
Removed:
74
72
{ #category : 'rendering' }
75
73
MFTRootComponent >> renderContentOn: html [
76
74
77
Removed:
html script url: 'https://cdn.jsdelivr.net/npm/chart.js'.
78
Removed:
html render: main.
75
Added:
(self session user isLoggedIn not and: [
76
Added:
MFTUtils isDevelopmentImage not ]) ifTrue: [
77
Added:
html render: pageManager header ].
78
Added:
html
79
Added:
render: pageManager mainNavigationBar;
80
Added:
render: pageManager activePage;
81
Added:
render: pageManager footer.
79
82
self addBootstrapJSScriptTo: html
80
83
]
81
84
@@ -88,7 +91,6 @@
88
91
name: 'viewport';
89
92
content: 'width=device-width, initial-scale=1'.
90
93
anHtmlRoot title: 'My Fitness Tracker'.
91
Removed:
anHtmlRoot javascript url: 'https://cdn.jsdelivr.net/npm/chart.js'.
92
94
anHtmlRoot link
93
95
beShortcutIcon;
94
96
url: MFTFileLibrary / #faviconPng
src/MyFitnessTracker-Components/MFTScreenComponent.class.st
@@ -1,38 +0,0 @@
1
Removed:
Class {
2
Removed:
#name : 'MFTScreenComponent',
3
Removed:
#superclass : 'SBSComponent',
4
Removed:
#instVars : [
5
Removed:
'pageManager'
6
Removed:
],
7
Removed:
#category : 'MyFitnessTracker-Components',
8
Removed:
#package : 'MyFitnessTracker-Components'
9
Removed:
}
10
Removed:
11
Removed:
{ #category : 'hooks' }
12
Removed:
MFTScreenComponent >> children [
13
Removed:
14
Removed:
^ {
15
Removed:
pageManager header.
16
Removed:
pageManager mainNavigationBar.
17
Removed:
pageManager activePage.
18
Removed:
pageManager footer }
19
Removed:
]
20
Removed:
21
Removed:
{ #category : 'initialization' }
22
Removed:
MFTScreenComponent >> initialize [
23
Removed:
24
Removed:
super initialize.
25
Removed:
pageManager := self session pageManager
26
Removed:
]
27
Removed:
28
Removed:
{ #category : 'rendering' }
29
Removed:
MFTScreenComponent >> renderContentOn: html [
30
Removed:
31
Removed:
(self session user isLoggedIn not and: [
32
Removed:
MFTUtils isDevelopmentImage not ]) ifTrue: [
33
Removed:
html render: pageManager header ].
34
Removed:
html
35
Removed:
render: pageManager mainNavigationBar;
36
Removed:
render: pageManager activePage;
37
Removed:
render: pageManager footer
38
Removed:
]
src/MyFitnessTracker-Components/MFTWorkoutPlanCard.class.st
@@ -1,33 +0,0 @@
1
Removed:
Class {
2
Removed:
#name : 'MFTWorkoutPlanCard',
3
Removed:
#superclass : 'MFTCard',
4
Removed:
#category : 'MyFitnessTracker-Components-Widgets',
5
Removed:
#package : 'MyFitnessTracker-Components',
6
Removed:
#tag : 'Widgets'
7
Removed:
}
8
Removed:
9
Removed:
{ #category : 'rendering' }
10
Removed:
MFTWorkoutPlanCard >> renderContentOn: html [
11
Removed:
12
Removed:
self renderCardOn: html with: [
13
Removed:
html cardHeader: 'Current Plan'.
14
Removed:
html cardBody: [
15
Removed:
html paragraph:
16
Removed:
'Great job completing ' , self session user currentPlan completion
17
Removed:
, ' workouts in your current plan!'.
18
Removed:
html form
19
Removed:
class: 'my-3';
20
Removed:
with: [
21
Removed:
html buttonGroup
22
Removed:
beSmall;
23
Removed:
with: [
24
Removed:
html outlineButton
25
Removed:
bePrimary;
26
Removed:
callback: [ self addWorkout ];
27
Removed:
with: 'Log workout'.
28
Removed:
html outlineButton
29
Removed:
beSecondary;
30
Removed:
callback: [ self viewAnalytics ];
31
Removed:
with: 'View progress' ] ].
32
Removed:
html render: MFTRepsDistributionGraph new ] ]
33
Removed:
]
src/MyFitnessTracker-Core/MFTWeight.class.st
@@ -33,18 +33,10 @@
33
33
MFTWeight class >> placeholderCollection [
34
34
35
35
^ OrderedCollection withAll: {
36
Removed:
(self new
37
Removed:
date: (Date year: 2024 month: 1 day: 1);
38
Removed:
value: 90).
39
Removed:
(self new
40
Removed:
date: (Date year: 2024 month: 1 day: 2);
41
Removed:
value: 91).
42
Removed:
(self new
43
Removed:
date: (Date year: 2024 month: 1 day: 3);
44
Removed:
value: 92).
45
Removed:
(self new
46
Removed:
date: (Date year: 2024 month: 1 day: 4);
47
Removed:
value: 93) }
36
Added:
(self kilograms: 90 date: (Date year: 2024 month: 1 day: 1)).
37
Added:
(self kilograms: 91 date: (Date year: 2024 month: 1 day: 2)).
38
Added:
(self kilograms: 92 date: (Date year: 2024 month: 1 day: 3)).
39
Added:
(self kilograms: 93 date: (Date year: 2024 month: 1 day: 4)) }
48
40
]
49
41
50
42
{ #category : 'accessing' }