Login, register, logout component.

Commit
7892b06622c876ab4d1f9a9819c800189911f8cb
Author
Marius Peter <marius.peter@tutanota.com>
Author date
Committer
Marius Peter <marius.peter@tutanota.com>
Committer date
Changed files
src/MyFitnessTracker/MFTLoginAndRegisterComponent.class.st
index a4b4bab3..00000000 100644..000000
@@ -1,173 +0,0 @@
1 Removed: Class {
2 Removed: #name : #MFTLoginAndRegisterComponent,
3 Removed: #superclass : #SBSComponent,
4 Removed: #instVars : [
5 Removed: 'user'
6 Removed: ],
7 Removed: #category : #'MyFitnessTracker-Components'
8 Removed: }
9 Removed:
10 Removed: { #category : #initialization }
11 Removed: MFTLoginAndRegisterComponent >> initialize [
12 Removed:
13 Removed: super initialize.
14 Removed: user := MFTUser new
15 Removed: ]
16 Removed:
17 Removed: { #category : #rendering }
18 Removed: MFTLoginAndRegisterComponent >> renderContentOn: html [
19 Removed: "MFTUser isLoggedIn"
20 Removed:
21 Removed: self session user
22 Removed: ifNil: [ self renderLoginAndRegisterModalsOn: html ]
23 Removed: ifNotNil: [ self renderLogoutButtonOn: html ]
24 Removed: ]
25 Removed:
26 Removed: { #category : #rendering }
27 Removed: MFTLoginAndRegisterComponent >> renderLoginAndRegisterModalsOn: html [
28 Removed: "Logging in and registering display modal components; they are not in a form."
29 Removed:
30 Removed: html buttonGroup: [
31 Removed: html formButton
32 Removed: beSecondary;
33 Removed: beSmall;
34 Removed: dataToggle: 'modal';
35 Removed: dataTarget: '#loginModal';
36 Removed: with: 'Login'.
37 Removed: html formButton
38 Removed: bePrimary;
39 Removed: beSmall;
40 Removed: dataToggle: 'modal';
41 Removed: dataTarget: '#registerModal';
42 Removed: with: 'Register' ].
43 Removed: self renderLoginModalOn: html.
44 Removed: self renderRegisterModalOn: html
45 Removed: ]
46 Removed:
47 Removed: { #category : #rendering }
48 Removed: MFTLoginAndRegisterComponent >> renderLoginModalBodyOn: html [
49 Removed:
50 Removed: html modalBody with: [
51 Removed: html text: 'Welcome!'.
52 Removed: html formGroup: [
53 Removed: html label: 'Username'.
54 Removed: html textInput formControl callback: [ :value |
55 Removed: user username: value ] ].
56 Removed: html formGroup: [
57 Removed: html label: 'Password'.
58 Removed: html passwordInput formControl callback: [ :value |
59 Removed: user passwordHash: value ] ] ]
60 Removed: ]
61 Removed:
62 Removed: { #category : #rendering }
63 Removed: MFTLoginAndRegisterComponent >> renderLoginModalFooterOn: html [
64 Removed:
65 Removed: html modalFooter: [
66 Removed: html formButton
67 Removed: beSecondary;
68 Removed: dataDismiss: 'modal';
69 Removed: with: 'Cancel'.
70 Removed: html formButton
71 Removed: bePrimary;
72 Removed: callback: [ MFTUser tryLoginUser: user ];
73 Removed: with: 'Login' ]
74 Removed: ]
75 Removed:
76 Removed: { #category : #rendering }
77 Removed: MFTLoginAndRegisterComponent >> renderLoginModalHeaderOn: html [
78 Removed:
79 Removed: html modalHeader: [
80 Removed: html modalTitle
81 Removed: level5;
82 Removed: with: 'Login'.
83 Removed: html modalCloseButton ]
84 Removed: ]
85 Removed:
86 Removed: { #category : #rendering }
87 Removed: MFTLoginAndRegisterComponent >> renderLoginModalOn: html [
88 Removed:
89 Removed: html modal
90 Removed: id: 'loginModal';
91 Removed: fade;
92 Removed: with: [
93 Removed: html modalDialog
94 Removed: beCentered;
95 Removed: with: [
96 Removed: html modalContent: [
97 Removed: html form: [
98 Removed: self renderLoginModalHeaderOn: html.
99 Removed: self renderLoginModalBodyOn: html.
100 Removed: self renderLoginModalFooterOn: html ] ] ] ]
101 Removed: ]
102 Removed:
103 Removed: { #category : #rendering }
104 Removed: MFTLoginAndRegisterComponent >> renderLogoutButtonOn: html [
105 Removed: "Logging out is an action; the button is in a form."
106 Removed:
107 Removed: html form: [
108 Removed: html formButton
109 Removed: beSecondary;
110 Removed: beSmall;
111 Removed: callback: [ MFTUser logout ];
112 Removed: with: 'Logout' ]
113 Removed: ]
114 Removed:
115 Removed: { #category : #rendering }
116 Removed: MFTLoginAndRegisterComponent >> renderRegisterModalBodyOn: html [
117 Removed:
118 Removed: html modalBody with: [
119 Removed: html text: 'Welcome!'.
120 Removed: html formGroup: [
121 Removed: html label: 'Username'.
122 Removed: html textInput formControl callback: [ :value |
123 Removed: user username: value ] ].
124 Removed: html formGroup: [
125 Removed: html label: 'Password'.
126 Removed: html passwordInput formControl callback: [ :value |
127 Removed: user passwordHash: (SHA256 new hashMessage: value) asString ] ].
128 Removed: html formGroup: [
129 Removed: html label: 'Date of Birth'.
130 Removed: html dateInput5 formControl callback: [ :date |
131 Removed: user dateOfBirth: (Date fromString: date) ] ] ]
132 Removed: ]
133 Removed:
134 Removed: { #category : #rendering }
135 Removed: MFTLoginAndRegisterComponent >> renderRegisterModalFooterOn: html [
136 Removed:
137 Removed: html modalFooter: [
138 Removed: html formButton
139 Removed: beSecondary;
140 Removed: dataDismiss: 'modal';
141 Removed: with: 'Cancel'.
142 Removed: html formButton
143 Removed: bePrimary;
144 Removed: callback: [ MFTUser tryLoginUser: user ];
145 Removed: with: 'Register' ]
146 Removed: ]
147 Removed:
148 Removed: { #category : #rendering }
149 Removed: MFTLoginAndRegisterComponent >> renderRegisterModalHeaderOn: html [
150 Removed:
151 Removed: html modalHeader: [
152 Removed: html modalTitle
153 Removed: level5;
154 Removed: with: 'Register'.
155 Removed: html modalCloseButton ]
156 Removed: ]
157 Removed:
158 Removed: { #category : #rendering }
159 Removed: MFTLoginAndRegisterComponent >> renderRegisterModalOn: html [
160 Removed:
161 Removed: html modal
162 Removed: id: 'registerModal';
163 Removed: fade;
164 Removed: with: [
165 Removed: html modalDialog
166 Removed: beCentered;
167 Removed: with: [
168 Removed: html modalContent: [
169 Removed: html form: [
170 Removed: self renderRegisterModalHeaderOn: html.
171 Removed: self renderRegisterModalBodyOn: html.
172 Removed: self renderRegisterModalFooterOn: html ] ] ] ]
173 Removed: ]
src/MyFitnessTracker/MFTLoginRegisterLogoutComponent.class.st
index 00000000..e473a69d 000000..100644
@@ -0,0 +1,130 @@
1 Added: Class {
2 Added: #name : #MFTLoginRegisterLogoutComponent,
3 Added: #superclass : #SBSComponent,
4 Added: #instVars : [
5 Added: 'user'
6 Added: ],
7 Added: #category : #'MyFitnessTracker-Components'
8 Added: }
9 Added:
10 Added: { #category : #initialization }
11 Added: MFTLoginRegisterLogoutComponent >> initialize [
12 Added:
13 Added: super initialize.
14 Added: user := MFTUser new
15 Added: ]
16 Added:
17 Added: { #category : #rendering }
18 Added: MFTLoginRegisterLogoutComponent >> renderContentOn: html [
19 Added:
20 Added: self session user isLoggedIn
21 Added: ifFalse: [ self renderLoginAndRegisterModalsOn: html ]
22 Added: ifTrue: [ self renderLogoutButtonOn: html ]
23 Added: ]
24 Added:
25 Added: { #category : #rendering }
26 Added: MFTLoginRegisterLogoutComponent >> renderLoginAndRegisterModalsOn: html [
27 Added: "Logging in and registering display modal components; they are not in a form."
28 Added:
29 Added: html buttonGroup: [
30 Added: html formButton
31 Added: beSecondary;
32 Added: beSmall;
33 Added: dataToggle: 'modal';
34 Added: dataTarget: '#loginModal';
35 Added: with: 'Login'.
36 Added: html formButton
37 Added: bePrimary;
38 Added: beSmall;
39 Added: dataToggle: 'modal';
40 Added: dataTarget: '#registerModal';
41 Added: with: 'Register' ].
42 Added: self renderLoginModalOn: html.
43 Added: self renderRegisterModalOn: html
44 Added: ]
45 Added:
46 Added: { #category : #rendering }
47 Added: MFTLoginRegisterLogoutComponent >> renderLoginModalOn: html [
48 Added:
49 Added: html modal
50 Added: id: 'loginModal';
51 Added: fade;
52 Added: with: [
53 Added: html modalDialog
54 Added: beCentered;
55 Added: with: [
56 Added: html modalContent: [
57 Added: html form: [
58 Added: html modalHeader: [
59 Added: html modalTitle
60 Added: level5;
61 Added: with: 'Welcome back!'.
62 Added: html modalCloseButton ].
63 Added: html modalBody with: [
64 Added: html formGroup: [
65 Added: html label: 'Username'.
66 Added: html textInput formControl callback: [ :value |
67 Added: user username: value ] ].
68 Added: html formGroup: [
69 Added: html label: 'Password'.
70 Added: html passwordInput formControl callback: [ :value |
71 Added: user passwordHashFromString: value ] ] ].
72 Added: html modalFooter: [
73 Added: html formButton
74 Added: beSecondary;
75 Added: dataDismiss: 'modal';
76 Added: with: 'Cancel'.
77 Added: html formButton
78 Added: bePrimary;
79 Added: callback: [ self session attemptLogin: user ];
80 Added: with: 'Login' ] ] ] ] ]
81 Added: ]
82 Added:
83 Added: { #category : #rendering }
84 Added: MFTLoginRegisterLogoutComponent >> renderLogoutButtonOn: html [
85 Added: "Logging out is an action; the button is in a form."
86 Added:
87 Added: html form: [
88 Added: html formButton
89 Added: beSecondary;
90 Added: beSmall;
91 Added: callback: [ self session logout ];
92 Added: with: 'Logout' ]
93 Added: ]
94 Added:
95 Added: { #category : #rendering }
96 Added: MFTLoginRegisterLogoutComponent >> renderRegisterModalOn: html [
97 Added:
98 Added: html modal
99 Added: id: 'registerModal';
100 Added: fade;
101 Added: with: [
102 Added: html modalDialog
103 Added: beCentered;
104 Added: with: [
105 Added: html modalContent: [
106 Added: html form: [
107 Added: html modalHeader: [
108 Added: html modalTitle
109 Added: level5;
110 Added: with: 'Welcome on board!'.
111 Added: html modalCloseButton ].
112 Added: html modalBody with: [
113 Added: html formGroup: [
114 Added: html label: 'Username'.
115 Added: html textInput formControl callback: [ :value |
116 Added: user username: value ] ].
117 Added: html formGroup: [
118 Added: html label: 'Password'.
119 Added: html passwordInput formControl callback: [ :value |
120 Added: user passwordHashFromString: value ] ] ].
121 Added: html modalFooter: [
122 Added: html formButton
123 Added: beSecondary;
124 Added: dataDismiss: 'modal';
125 Added: with: 'Cancel'.
126 Added: html formButton
127 Added: bePrimary;
128 Added: callback: [ self session registerNewUser: user ];
129 Added: with: 'Register' ] ] ] ] ]
130 Added: ]