]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/account/account.component.ts
Server: add config endpoint
[github/Chocobozzz/PeerTube.git] / client / src / app / account / account.component.ts
index 5c42103f878643dc171e1daba7d6be22cc91d72a..14452a73eccbdeacb406c1ab6eb87d7f667bc40d 100644 (file)
@@ -1,34 +1,55 @@
-import { Control, ControlGroup, Validators } from '@angular/common';
 import { Component, OnInit } from '@angular/core';
+import { FormBuilder, FormGroup } from '@angular/forms';
 import { Router } from '@angular/router';
 
-import { AccountService } from './account.service';
+import { NotificationsService } from 'angular2-notifications';
+
+import { FormReactive, UserService, USER_PASSWORD } from '../shared';
 
 @Component({
   selector: 'my-account',
-  template: require('./account.component.html'),
-  providers: [ AccountService ]
+  templateUrl: './account.component.html'
 })
 
-export class AccountComponent implements OnInit {
-  changePasswordForm: ControlGroup;
-  information: string = null;
+export class AccountComponent extends FormReactive implements OnInit {
   error: string = null;
 
+  form: FormGroup;
+  formErrors = {
+    'new-password': '',
+    'new-confirmed-password': ''
+  };
+  validationMessages = {
+    'new-password': USER_PASSWORD.MESSAGES,
+    'new-confirmed-password': USER_PASSWORD.MESSAGES
+  };
+
   constructor(
-    private accountService: AccountService,
-    private router: Router
-  ) {}
+    private formBuilder: FormBuilder,
+    private router: Router,
+    private notificationsService: NotificationsService,
+    private userService: UserService
+  ) {
+    super();
+  }
 
-  ngOnInit() {
-    this.changePasswordForm = new ControlGroup({
-      newPassword: new Control('', Validators.compose([ Validators.required, Validators.minLength(6) ])),
-      newConfirmedPassword: new Control('', Validators.compose([ Validators.required, Validators.minLength(6) ])),
+  buildForm() {
+    this.form = this.formBuilder.group({
+      'new-password': [ '', USER_PASSWORD.VALIDATORS ],
+      'new-confirmed-password': [ '', USER_PASSWORD.VALIDATORS ],
     });
+
+    this.form.valueChanges.subscribe(data => this.onValueChanged(data));
   }
 
-  changePassword(newPassword: string, newConfirmedPassword: string) {
-    this.information = null;
+  ngOnInit() {
+    this.buildForm();
+  }
+
+  changePassword() {
+    const newPassword = this.form.value['new-password'];
+    const newConfirmedPassword = this.form.value['new-confirmed-password'];
+
     this.error = null;
 
     if (newPassword !== newConfirmedPassword) {
@@ -36,8 +57,8 @@ export class AccountComponent implements OnInit {
       return;
     }
 
-    this.accountService.changePassword(newPassword).subscribe(
-      ok => this.information = 'Password updated.',
+    this.userService.changePassword(newPassword).subscribe(
+      () => this.notificationsService.success('Success', 'Password updated.'),
 
       err => this.error = err
     );