{{'password.error.' + error.key | i18n}}
@@ -36,12 +26,26 @@
+ [(ngModel)]="model.password2" required>
{{'password.not-match' | i18n}}
+
+ {{'email.primary' | i18n}} info
+
+
+
+
+
+ {{'email.invalid' | i18n}}
+
+
+
plus_one
diff --git a/src/app/pages/register/register.component.scss b/src/app/pages/register/register.component.scss
index 720774d..fac5333 100644
--- a/src/app/pages/register/register.component.scss
+++ b/src/app/pages/register/register.component.scss
@@ -1,3 +1,7 @@
mat-form-field {
display: block;
+}
+
+mat-hint {
+ white-space: normal;
}
\ No newline at end of file
diff --git a/src/app/pages/register/register.component.ts b/src/app/pages/register/register.component.ts
index f9540f4..cf4bbab 100644
--- a/src/app/pages/register/register.component.ts
+++ b/src/app/pages/register/register.component.ts
@@ -46,7 +46,7 @@ export class RegisterComponent implements OnInit {
username: ['', Validators.required],
email: ['', Validators.email],
primaryEmail: [false, Validators.nullValidator],
- password: ['', Validators.required],
+ password: ['', Validators.nullValidator],
password2: ['', Validators.required]
}, {
validator: MatchingValidator('password', 'password2')
@@ -57,6 +57,16 @@ export class RegisterComponent implements OnInit {
});
}
+ onPrimaryChange() {
+ let mailControl = this.form.get('email');
+ mailControl.clearAsyncValidators();
+ mailControl.clearValidators();
+ if(this.model.primaryEmail) {
+ mailControl.setValidators([Validators.email, Validators.required]);
+ }
+ mailControl.updateValueAndValidity();
+ }
+
genUsername() {
const config: Config = {
@@ -87,10 +97,8 @@ export class RegisterComponent implements OnInit {
{"name": "publicKey", "type": "BLOB", "visibility": "PROTECTED", "blob": pubKey}
]
- if(this.model.email) {
- this.model.profileFields.push({"name": "email", "type": "EMAIL", "visibility": "PRIVATE", "value": this.model.email});
- }
if(this.model.primaryEmail) {
+ this.model.profileFields.push({"name": "email", "type": "EMAIL", "visibility": "PRIVATE", "value": this.model.email});
this.model.profileFields.push({"name": "primaryEmail", "type": "BOOL", "visibility": "PRIVATE", "value": this.model.primaryEmail});
}
diff --git a/src/app/ui/profilefields/profilefield.dialog.html b/src/app/ui/profilefields/profilefield.dialog.html
index 96e4ce9..5c57ed0 100644
--- a/src/app/ui/profilefields/profilefield.dialog.html
+++ b/src/app/ui/profilefields/profilefield.dialog.html
@@ -34,6 +34,9 @@
+
+ {{'profileField.value' | i18n}}
+
@@ -62,5 +65,6 @@
-
+
\ No newline at end of file
diff --git a/src/app/ui/profilefields/profilefield.dialog.scss b/src/app/ui/profilefields/profilefield.dialog.scss
index 720774d..03bec19 100644
--- a/src/app/ui/profilefields/profilefield.dialog.scss
+++ b/src/app/ui/profilefields/profilefield.dialog.scss
@@ -1,3 +1,7 @@
mat-form-field {
display: block;
+}
+
+mat-slide-toggle {
+ margin-bottom: 24px;
}
\ No newline at end of file
diff --git a/src/app/ui/profilefields/profilefields.component.html b/src/app/ui/profilefields/profilefields.component.html
index b4dab05..67d9f4b 100644
--- a/src/app/ui/profilefields/profilefields.component.html
+++ b/src/app/ui/profilefields/profilefields.component.html
@@ -17,6 +17,8 @@
{{profileField.value}}
+
+