[Pharo] Personal fitness tracker web app.
Public and user homepages.
Changed files
src/MyFitnessTracker/MFTPublicHomepage.class.st
@@ -1,55 +0,0 @@
1
Removed:
Class {
2
Removed:
#name : #MFTPublicHomepage,
3
Removed:
#superclass : #MFTTab,
4
Removed:
#category : #'MyFitnessTracker-Components'
5
Removed:
}
6
Removed:
7
Removed:
{ #category : #initialization }
8
Removed:
MFTPublicHomepage >> initialize [
9
Removed:
10
Removed:
super initialize.
11
Removed:
title := 'home'
12
Removed:
]
13
Removed:
14
Removed:
{ #category : #rendering }
15
Removed:
MFTPublicHomepage >> renderContentOn: html [
16
Removed:
17
Removed:
html container: [
18
Removed:
html column smallVariableWidth with: [
19
Removed:
self renderMainCardOn: html.
20
Removed:
self renderPromisesCardOn: html ] ]
21
Removed:
]
22
Removed:
23
Removed:
{ #category : #rendering }
24
Removed:
MFTPublicHomepage >> renderMainCardOn: html [
25
Removed:
26
Removed:
html card: [
27
Removed:
html jumbotron
28
Removed:
class: 'p-3 bg-light';
29
Removed:
with: [
30
Removed:
html displayHeading
31
Removed:
level: 1;
32
Removed:
with: 'Welcome to My Fitness Tracker!'.
33
Removed:
html big textMuted with: 'Free Software never looked so fit.'.
34
Removed:
html form: [ "TODO"
35
Removed:
html formButton
36
Removed:
bePrimary;
37
Removed:
beLarge;
38
Removed:
class: 'mt-3';
39
Removed:
callback: [ self call: MFTWorkoutDialog ];
40
Removed:
with: 'Log a workout' ] ] ]
41
Removed:
]
42
Removed:
43
Removed:
{ #category : #rendering }
44
Removed:
MFTPublicHomepage >> renderPromisesCardOn: html [
45
Removed:
46
Removed:
html card
47
Removed:
marginTopAndBottom: 3;
48
Removed:
with: [
49
Removed:
html cardHeader: 'We promise you...'.
50
Removed:
html cardBody: [
51
Removed:
html unorderedList: [
52
Removed:
html listItem: 'All features shall always be entirely free.'.
53
Removed:
html listItem: 'No user data shall ever be sold.'.
54
Removed:
html listItem: '.' ] ] ]
55
Removed:
]
src/MyFitnessTracker/MFTPublicHomepageTab.class.st
@@ -0,0 +1,60 @@
1
Added:
Class {
2
Added:
#name : #MFTPublicHomepageTab,
3
Added:
#superclass : #MFTTab,
4
Added:
#category : #'MyFitnessTracker-Components'
5
Added:
}
6
Added:
7
Added:
{ #category : #initialization }
8
Added:
MFTPublicHomepageTab >> initialize [
9
Added:
10
Added:
super initialize.
11
Added:
title := 'home'
12
Added:
]
13
Added:
14
Added:
{ #category : #rendering }
15
Added:
MFTPublicHomepageTab >> renderContentOn: html [
16
Added:
17
Added:
html container: [
18
Added:
self renderMainCardOn: html.
19
Added:
self renderPromisesCardOn: html ]
20
Added:
]
21
Added:
22
Added:
{ #category : #rendering }
23
Added:
MFTPublicHomepageTab >> renderMainCardOn: html [
24
Added:
25
Added:
self session user isLoggedIn ifTrue: [
26
Added:
(self session db select: '*' from: 'users') do: [ :each |
27
Added:
html listItem: each asArray ] ].
28
Added:
html card: [
29
Added:
html jumbotron
30
Added:
class: 'p-3 bg-light';
31
Added:
with: [
32
Added:
html displayHeading
33
Added:
level: 1;
34
Added:
with: 'Welcome to My Fitness Tracker!'.
35
Added:
html big textMuted with: 'Free Software never looked so fit.'.
36
Added:
html paragraph: (self session user isLoggedIn
37
Added:
ifTrue: [ 'User ' , self session user , ' is logged in.' ]
38
Added:
ifFalse: [ 'No user is currently logged in.' ]).
39
Added:
html form: [ "TODO"
40
Added:
html formButton
41
Added:
bePrimary;
42
Added:
beLarge;
43
Added:
class: 'mt-3';
44
Added:
callback: [ self call: MFTWorkoutDialog ];
45
Added:
with: 'Log a workout' ] ] ]
46
Added:
]
47
Added:
48
Added:
{ #category : #rendering }
49
Added:
MFTPublicHomepageTab >> renderPromisesCardOn: html [
50
Added:
51
Added:
html card
52
Added:
marginTopAndBottom: 3;
53
Added:
with: [
54
Added:
html cardHeader: 'We promise you...'.
55
Added:
html cardBody: [
56
Added:
html unorderedList: [
57
Added:
html listItem: 'All features shall always be entirely free.'.
58
Added:
html listItem: 'No user data shall ever be sold.'.
59
Added:
html listItem: '.' ] ] ]
60
Added:
]
src/MyFitnessTracker/MFTUserHomepage.class.st
@@ -1,23 +0,0 @@
1
Removed:
Class {
2
Removed:
#name : #MFTUserHomepage,
3
Removed:
#superclass : #MFTTab,
4
Removed:
#category : #'MyFitnessTracker-Components'
5
Removed:
}
6
Removed:
7
Removed:
{ #category : #initialization }
8
Removed:
MFTUserHomepage >> initialize [
9
Removed:
10
Removed:
super initialize.
11
Removed:
title := self session user capitalized
12
Removed:
]
13
Removed:
14
Removed:
{ #category : #rendering }
15
Removed:
MFTUserHomepage >> renderContentOn: html [
16
Removed:
17
Removed:
html container: [
18
Removed:
html displayHeading
19
Removed:
level: 1;
20
Removed:
with: 'Welcome, ' , self session user , '!'.
21
Removed:
html unorderedList: [
22
Removed:
self session allProspects do: [ :each | html listItem: each ] ] ]
23
Removed:
]
src/MyFitnessTracker/MFTUserHomepageTab.class.st
@@ -0,0 +1,25 @@
1
Added:
Class {
2
Added:
#name : #MFTUserHomepageTab,
3
Added:
#superclass : #MFTTab,
4
Added:
#category : #'MyFitnessTracker-Components'
5
Added:
}
6
Added:
7
Added:
{ #category : #initialization }
8
Added:
MFTUserHomepageTab >> initialize [
9
Added:
10
Added:
super initialize.
11
Added:
title := self session user ifNotNil: [
12
Added:
self session user username capitalized ]
13
Added:
]
14
Added:
15
Added:
{ #category : #rendering }
16
Added:
MFTUserHomepageTab >> renderContentOn: html [
17
Added:
18
Added:
" html container: [
19
Added:
" "html displayHeading
20
Added:
level: 1;
21
Added:
with: 'Welcome, ' , self session user username , '!'."
22
Added:
"html unorderedList: [
23
Added:
(self session db selectAll: 'prospects') do: [ :prospect |
24
Added:
html listItem: prospect ] ] ]"
25
Added:
]