aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/+my-account/my-account-settings
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/app/+my-account/my-account-settings')
-rw-r--r--client/src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.ts5
-rw-r--r--client/src/app/+my-account/my-account-settings/my-account-email-preferences/index.ts1
-rw-r--r--client/src/app/+my-account/my-account-settings/my-account-email-preferences/my-account-email-preferences.component.html15
-rw-r--r--client/src/app/+my-account/my-account-settings/my-account-email-preferences/my-account-email-preferences.component.scss0
-rw-r--r--client/src/app/+my-account/my-account-settings/my-account-email-preferences/my-account-email-preferences.component.ts51
-rw-r--r--client/src/app/+my-account/my-account-settings/my-account-settings.component.html4
6 files changed, 73 insertions, 3 deletions
diff --git a/client/src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.ts b/client/src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.ts
index 235fbec4a..ebb7ed2da 100644
--- a/client/src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.ts
+++ b/client/src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.ts
@@ -1,7 +1,7 @@
1import { forkJoin } from 'rxjs' 1import { forkJoin } from 'rxjs'
2import { tap } from 'rxjs/operators' 2import { tap } from 'rxjs/operators'
3import { Component, OnInit } from '@angular/core' 3import { Component, OnInit } from '@angular/core'
4import { AuthService, ServerService, UserService } from '@app/core' 4import { AuthService, Notifier, ServerService, UserService } from '@app/core'
5import { USER_EMAIL_VALIDATOR, USER_PASSWORD_VALIDATOR } from '@app/shared/form-validators/user-validators' 5import { USER_EMAIL_VALIDATOR, USER_PASSWORD_VALIDATOR } from '@app/shared/form-validators/user-validators'
6import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' 6import { FormReactive, FormReactiveService } from '@app/shared/shared-forms'
7import { HttpStatusCode, User } from '@shared/models' 7import { HttpStatusCode, User } from '@shared/models'
@@ -20,7 +20,8 @@ export class MyAccountChangeEmailComponent extends FormReactive implements OnIni
20 protected formReactiveService: FormReactiveService, 20 protected formReactiveService: FormReactiveService,
21 private authService: AuthService, 21 private authService: AuthService,
22 private userService: UserService, 22 private userService: UserService,
23 private serverService: ServerService 23 private serverService: ServerService,
24 private notifier: Notifier
24 ) { 25 ) {
25 super() 26 super()
26 } 27 }
diff --git a/client/src/app/+my-account/my-account-settings/my-account-email-preferences/index.ts b/client/src/app/+my-account/my-account-settings/my-account-email-preferences/index.ts
new file mode 100644
index 000000000..20b98e7d8
--- /dev/null
+++ b/client/src/app/+my-account/my-account-settings/my-account-email-preferences/index.ts
@@ -0,0 +1 @@
export * from './my-account-email-preferences.component'
diff --git a/client/src/app/+my-account/my-account-settings/my-account-email-preferences/my-account-email-preferences.component.html b/client/src/app/+my-account/my-account-settings/my-account-email-preferences/my-account-email-preferences.component.html
new file mode 100644
index 000000000..c4fe52743
--- /dev/null
+++ b/client/src/app/+my-account/my-account-settings/my-account-email-preferences/my-account-email-preferences.component.html
@@ -0,0 +1,15 @@
1<form role="form" (ngSubmit)="updateEmailPublic()" [formGroup]="form">
2
3 <div class="form-group">
4 <my-peertube-checkbox
5 inputName="email-public" formControlName="email-public"
6 i18n-labelText labelText="Allow email to be publicly displayed"
7 >
8 <ng-container ngProjectAs="description">
9 <span i18n>Necessary to claim podcast RSS feeds.</span>
10 </ng-container>
11 </my-peertube-checkbox>
12 </div>
13
14 <input class="peertube-button orange-button" type="submit" i18n-value value="Save" [disabled]="!form.valid">
15</form>
diff --git a/client/src/app/+my-account/my-account-settings/my-account-email-preferences/my-account-email-preferences.component.scss b/client/src/app/+my-account/my-account-settings/my-account-email-preferences/my-account-email-preferences.component.scss
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/client/src/app/+my-account/my-account-settings/my-account-email-preferences/my-account-email-preferences.component.scss
diff --git a/client/src/app/+my-account/my-account-settings/my-account-email-preferences/my-account-email-preferences.component.ts b/client/src/app/+my-account/my-account-settings/my-account-email-preferences/my-account-email-preferences.component.ts
new file mode 100644
index 000000000..7fd59d7c8
--- /dev/null
+++ b/client/src/app/+my-account/my-account-settings/my-account-email-preferences/my-account-email-preferences.component.ts
@@ -0,0 +1,51 @@
1import { Subject } from 'rxjs'
2import { Component, Input, OnInit } from '@angular/core'
3import { Notifier, UserService } from '@app/core'
4import { FormReactive, FormReactiveService } from '@app/shared/shared-forms'
5import { User, UserUpdateMe } from '@shared/models'
6
7@Component({
8 selector: 'my-account-email-preferences',
9 templateUrl: './my-account-email-preferences.component.html',
10 styleUrls: [ './my-account-email-preferences.component.scss' ]
11})
12export class MyAccountEmailPreferencesComponent extends FormReactive implements OnInit {
13 @Input() user: User = null
14 @Input() userInformationLoaded: Subject<any>
15
16 constructor (
17 protected formReactiveService: FormReactiveService,
18 private userService: UserService,
19 private notifier: Notifier
20 ) {
21 super()
22 }
23
24 ngOnInit () {
25 this.buildForm({
26 'email-public': null
27 })
28
29 this.userInformationLoaded.subscribe(() => {
30 this.form.patchValue({ 'email-public': this.user.emailPublic })
31 })
32 }
33
34 updateEmailPublic () {
35 const details: UserUpdateMe = {
36 emailPublic: this.form.value['email-public']
37 }
38
39 this.userService.updateMyProfile(details)
40 .subscribe({
41 next: () => {
42 if (details.emailPublic) this.notifier.success($localize`Email is now public`)
43 else this.notifier.success($localize`Email is now private`)
44
45 this.user.emailPublic = details.emailPublic
46 },
47
48 error: err => console.log(err.message)
49 })
50 }
51}
diff --git a/client/src/app/+my-account/my-account-settings/my-account-settings.component.html b/client/src/app/+my-account/my-account-settings/my-account-settings.component.html
index 666205de6..3986354c1 100644
--- a/client/src/app/+my-account/my-account-settings/my-account-settings.component.html
+++ b/client/src/app/+my-account/my-account-settings/my-account-settings.component.html
@@ -68,7 +68,7 @@
68 </div> 68 </div>
69 69
70 <div class="col-12 col-lg-8 col-xl-9"> 70 <div class="col-12 col-lg-8 col-xl-9">
71 <my-account-two-factor-button [user]="user" [userInformationLoaded]="userInformationLoaded"></my-account-two-factor-button> 71 <my-account-two-factor-button [user]="user" [userInformationLoaded]="userInformationLoaded"></my-account-two-factor-button>
72 </div> 72 </div>
73</div> 73</div>
74 74
@@ -78,6 +78,8 @@
78 </div> 78 </div>
79 79
80 <div class="col-12 col-lg-8 col-xl-9"> 80 <div class="col-12 col-lg-8 col-xl-9">
81 <my-account-email-preferences class="d-block mb-5" [user]="user" [userInformationLoaded]="userInformationLoaded"></my-account-email-preferences>
82
81 <my-account-change-email></my-account-change-email> 83 <my-account-change-email></my-account-change-email>
82 </div> 84 </div>
83</div> 85</div>