[Pharo] Personal fitness tracker web app.
Tidy up package organization.
Each package should have a minimal amount of dependencies.
Changed files
src/MyFitnessTracker-Components/MFTMuscleComponent.class.st
@@ -0,0 +1,42 @@
1
Added:
Class {
2
Added:
#name : 'MFTMuscleComponent',
3
Added:
#superclass : 'SBSComponent',
4
Added:
#instVars : [
5
Added:
'muscle'
6
Added:
],
7
Added:
#category : 'MyFitnessTracker-Components',
8
Added:
#package : 'MyFitnessTracker-Components'
9
Added:
}
10
Added:
11
Added:
{ #category : 'as yet unclassified' }
12
Added:
MFTMuscleComponent class >> muscle: aMFTMuscle [
13
Added:
14
Added:
^ self new
15
Added:
muscle: aMFTMuscle;
16
Added:
yourself
17
Added:
]
18
Added:
19
Added:
{ #category : 'accessing' }
20
Added:
MFTMuscleComponent >> muscle [
21
Added:
22
Added:
^ muscle
23
Added:
]
24
Added:
25
Added:
{ #category : 'as yet unclassified' }
26
Added:
MFTMuscleComponent >> renderContentOn: html [
27
Added:
28
Added:
html table
29
Added:
class: 'table table-striped';
30
Added:
with: [
31
Added:
html tableHead: [
32
Added:
html
33
Added:
tableHeading: 'Property';
34
Added:
tableHeading: 'Value' ].
35
Added:
html tableRow: [
36
Added:
html tableData: 'Latin name'.
37
Added:
html tableData: muscle latinName ].
38
Added:
muscle function ifNotNil: [
39
Added:
html tableRow: [
40
Added:
html tableData: 'Function'.
41
Added:
html tableData: ('This muscle {1}.' format: { muscle function }) ] ] ]
42
Added:
]
src/MyFitnessTracker-Components/MFTPageManager.class.st
@@ -0,0 +1,114 @@
1
Added:
Class {
2
Added:
#name : 'MFTPageManager',
3
Added:
#superclass : 'Object',
4
Added:
#instVars : [
5
Added:
'mainNavigationBar',
6
Added:
'mainPages',
7
Added:
'header',
8
Added:
'footer',
9
Added:
'activePage'
10
Added:
],
11
Added:
#category : 'MyFitnessTracker-Components',
12
Added:
#package : 'MyFitnessTracker-Components'
13
Added:
}
14
Added:
15
Added:
{ #category : 'accessing' }
16
Added:
MFTPageManager >> activePage [
17
Added:
18
Added:
^ activePage
19
Added:
]
20
Added:
21
Added:
{ #category : 'accessing' }
22
Added:
MFTPageManager >> activePage: aMFTPage [
23
Added:
24
Added:
activePage := aMFTPage
25
Added:
]
26
Added:
27
Added:
{ #category : 'as yet unclassified' }
28
Added:
MFTPageManager >> defaultPublicPages [
29
Added:
30
Added:
^ OrderedDictionary newFrom: {
31
Added:
(#home -> MFTPublicLandingPage new).
32
Added:
(#logs -> MFTLogsPage new).
33
Added:
(#learn -> MFTLearnPage new).
34
Added:
(#about -> MFTAboutPage new).
35
Added:
(#profile -> MFTProfilePage new) }
36
Added:
]
37
Added:
38
Added:
{ #category : 'accessing' }
39
Added:
MFTPageManager >> footer [
40
Added:
41
Added:
^ footer
42
Added:
]
43
Added:
44
Added:
{ #category : 'accessing' }
45
Added:
MFTPageManager >> footer: anObject [
46
Added:
47
Added:
footer := anObject
48
Added:
]
49
Added:
50
Added:
{ #category : 'accessing' }
51
Added:
MFTPageManager >> header [
52
Added:
53
Added:
^ header
54
Added:
]
55
Added:
56
Added:
{ #category : 'accessing' }
57
Added:
MFTPageManager >> header: anObject [
58
Added:
59
Added:
header := anObject
60
Added:
]
61
Added:
62
Added:
{ #category : 'initialization' }
63
Added:
MFTPageManager >> initialize [
64
Added:
65
Added:
mainPages := self defaultPublicPages.
66
Added:
activePage := mainPages at: #home.
67
Added:
mainNavigationBar := MFTMainNavigationBar new.
68
Added:
header := MFTRegisterProspectEmailHeader new.
69
Added:
footer := MFTDefaultFooter new
70
Added:
]
71
Added:
72
Added:
{ #category : 'as yet unclassified' }
73
Added:
MFTPageManager >> loadPublicPages [
74
Added:
75
Added:
mainPages := self defaultPublicPages.
76
Added:
self setActivePageAt: #home
77
Added:
]
78
Added:
79
Added:
{ #category : 'as yet unclassified' }
80
Added:
MFTPageManager >> loadUserPages [
81
Added:
82
Added:
mainPages at: #home put: MFTUserLandingPage new.
83
Added:
self setActivePageAt: #home
84
Added:
]
85
Added:
86
Added:
{ #category : 'accessing' }
87
Added:
MFTPageManager >> mainNavigationBar [
88
Added:
89
Added:
^ mainNavigationBar
90
Added:
]
91
Added:
92
Added:
{ #category : 'accessing' }
93
Added:
MFTPageManager >> mainNavigationBar: anObject [
94
Added:
95
Added:
mainNavigationBar := anObject
96
Added:
]
97
Added:
98
Added:
{ #category : 'accessing' }
99
Added:
MFTPageManager >> mainPages [
100
Added:
101
Added:
^ mainPages
102
Added:
]
103
Added:
104
Added:
{ #category : 'accessing' }
105
Added:
MFTPageManager >> mainPages: aCollection [
106
Added:
107
Added:
mainPages := aCollection
108
Added:
]
109
Added:
110
Added:
{ #category : 'accessing' }
111
Added:
MFTPageManager >> setActivePageAt: aKey [
112
Added:
113
Added:
activePage := mainPages at: aKey
114
Added:
]