Updated profile page and user profile form.

Commit
146899d833f243dfb68a9fe9f0b3a54e82148598
Author
Marius Peter <marius.peter@tutanota.com>
Author date
Committer
Marius Peter <marius.peter@tutanota.com>
Committer date
Changed files
src/MyFitnessTracker-Components/MFTProfilePage.class.st
index fd3aab7f..17f7b5d1 100644..100644
@@ -10,7 +10,8 @@
10 10 MFTProfilePage >> editProfile [
11 11
12 12 | updatedUser |
13 Removed: updatedUser := self call: (MFTUserTask edit: self session user).
13 Added: updatedUser := self session pageManager activePage call:
14 Added: (MFTUserForm new user: self session user).
14 15 updatedUser ifNil: [ ^ self ].
15 16 self session user: updatedUser.
16 17 self session user isLoggedIn ifTrue: [
@@ -31,10 +32,6 @@
31 32 user := self session user.
32 33
33 34 self renderPageOn: html with: [
34 Removed: html heading level1 with: [
35 Removed: html
36 Removed: code: self session user username;
37 Removed: text: '''s profile' ].
38 35 self renderProfileActionsOn: html.
39 36 html render: user ]
40 37 ]
src/MyFitnessTracker-Components/MFTUserForm.class.st
index cb0fff5c..35fa1b3d 100644..100644
@@ -1,45 +1,117 @@
1 1 Class {
2 2 #name : 'MFTUserForm',
3 3 #superclass : 'MFTForm',
4 Added: #instVars : [
5 Added: 'user'
6 Added: ],
4 7 #category : 'MyFitnessTracker-Components-Forms',
5 8 #package : 'MyFitnessTracker-Components',
6 9 #tag : 'Forms'
7 10 }
8 11
9 Removed: { #category : 'as yet unclassified' }
10 Removed: MFTUserForm class >> edit: aMFTWorkout [
11 Removed:
12 Removed: ^ self new
13 Removed: modelObject: aMFTWorkout;
14 Removed: yourself
15 Removed: ]
16 Removed:
17 12 { #category : 'initialization' }
18 13 MFTUserForm >> initialize [
19 14
20 15 super initialize.
21 Removed: modelObject := MFTWorkout new.
22 Removed: heading := 'Workout'
16 Added: heading := 'Profile'.
17 Added: user := MFTUser new
23 18 ]
24 19
25 20 { #category : 'rendering' }
26 21 MFTUserForm >> renderContentOn: html [
27 22
28 23 self renderFormOn: html with: [
29 Removed: html
30 Removed: render: (MFTFormComponent set: #date);
31 Removed: render: (MFTFormComponent set: #setGroups);
32 Removed: render: (MFTFormComponent set: #primaryMuscleGroup);
33 Removed: render: (MFTFormComponent set: #secondaryMuscleGroups) ]
24 Added: self renderUsernamePickerOn: html.
25 Added: self renderPasswordPickerOn: html.
26 Added: self renderDateOfBirthPickerOn: html.
27 Added: self renderRealFirstNamePickerOn: html.
28 Added: self renderRealLastNamePickerOn: html ]
34 29 ]
35 30
31 Added: { #category : 'rendering' }
32 Added: MFTUserForm >> renderDateOfBirthPickerOn: html [
33 Added:
34 Added: html formGroup: [
35 Added: html div
36 Added: class: 'form-floating';
37 Added: marginBottom: 3;
38 Added: with: [
39 Added: html dateInput5 formControl
40 Added: placeholder: 'RequiredEntry-PutItAndDoNotUse';
41 Added: callback: [ :input |
42 Added: user dateOfBirth: (Date readFrom: input pattern: 'yyyy-mm-dd') ];
43 Added: value: user dateOfBirth yyyymmdd.
44 Added: html label: 'Date' ] ]
45 Added: ]
46 Added:
47 Added: { #category : 'rendering' }
48 Added: MFTUserForm >> renderPasswordPickerOn: html [
49 Added:
50 Added: html formGroup: [
51 Added: html div
52 Added: class: 'form-floating';
53 Added: marginBottom: 3;
54 Added: with: [
55 Added: html formPasswordInput
56 Added: placeholder: 'RequiredEntry-PutItAndDoNotUse';
57 Added: callback: [ :input |
58 Added: input ifNotEmpty: [ user passwordHashFromString: input ] ].
59 Added: html label: 'Change password' ] ]
60 Added: ]
61 Added:
62 Added: { #category : 'rendering' }
63 Added: MFTUserForm >> renderRealFirstNamePickerOn: html [
64 Added:
65 Added: html formGroup: [
66 Added: html div
67 Added: class: 'form-floating';
68 Added: marginBottom: 3;
69 Added: with: [
70 Added: html formTextInput
71 Added: placeholder: 'RequiredEntry-PutItAndDoNotUse';
72 Added: callback: [ :input | user realFirstName: input ];
73 Added: value: user realFirstName.
74 Added: html label: 'Real first name' ] ]
75 Added: ]
76 Added:
77 Added: { #category : 'rendering' }
78 Added: MFTUserForm >> renderRealLastNamePickerOn: html [
79 Added:
80 Added: ^ html formGroup: [
81 Added: html div
82 Added: class: 'form-floating';
83 Added: marginBottom: 3;
84 Added: with: [
85 Added: html formTextInput
86 Added: placeholder: 'RequiredEntry-PutItAndDoNotUse';
87 Added: callback: [ :input | user realLastName: input ];
88 Added: value: user realLastName.
89 Added: html label: 'Real last name' ] ]
90 Added: ]
91 Added:
92 Added: { #category : 'rendering' }
93 Added: MFTUserForm >> renderUsernamePickerOn: html [
94 Added:
95 Added: html formGroup: [
96 Added: html div
97 Added: class: 'form-floating';
98 Added: marginBottom: 3;
99 Added: with: [
100 Added: html formTextInput
101 Added: placeholder: 'RequiredEntry-PutItAndDoNotUse';
102 Added: callback: [ :input | user username: input ];
103 Added: value: user username.
104 Added: html label: 'Username' ] ]
105 Added: ]
106 Added:
36 107 { #category : 'as yet unclassified' }
37 108 MFTUserForm >> submitForm [
38 109
39 Removed: modelObject setGroups ifEmpty: [
40 Removed: (self call:
41 Removed: (MFTConfirmForm new modelObject: 'No exercises were specified.'))
42 Removed: ifFalse: [ self answer: nil ] ].
110 Added: self answer: user
111 Added: ]
43 112
44 Removed: self answer: modelObject
113 Added: { #category : 'accessing' }
114 Added: MFTUserForm >> user: aMFTUser [
115 Added:
116 Added: user := aMFTUser
45 117 ]