]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/account/account.component.ts
Client: add more informations to watch video view
[github/Chocobozzz/PeerTube.git] / client / src / app / account / account.component.ts
index a22738d3f509a6ce011db8a7140ea923ff22c266..851eaf198e1ae73dc9b4d84e6d95c815a7d76e80 100644 (file)
@@ -1,44 +1,64 @@
 import {  } from '@angular/common';
 import { Component, OnInit } from '@angular/core';
-import { FormControl, FormGroup, Validators } from '@angular/forms';
+import { FormBuilder, FormGroup } from '@angular/forms';
 import { Router } from '@angular/router';
 
 import { AccountService } from './account.service';
+import { FormReactive, USER_PASSWORD } from '../shared';
 
 @Component({
   selector: 'my-account',
-  template: require('./account.component.html')
+  templateUrl: './account.component.html'
 })
 
-export class AccountComponent implements OnInit {
-  newPassword = '';
-  newConfirmedPassword = '';
-  changePasswordForm: FormGroup;
+export class AccountComponent extends FormReactive implements OnInit {
   information: string = null;
   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 formBuilder: FormBuilder,
     private router: Router
-  ) {}
+  ) {
+    super();
+  }
 
-  ngOnInit() {
-    this.changePasswordForm = new FormGroup({
-      'new-password': new FormControl('', [ <any>Validators.required, <any>Validators.minLength(6) ]),
-      'new-confirmed-password': new FormControl('', [ <any>Validators.required, <any>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));
+  }
+
+  ngOnInit() {
+    this.buildForm();
   }
 
   changePassword() {
+    const newPassword = this.form.value['new-password'];
+    const newConfirmedPassword = this.form.value['new-confirmed-password'];
+
     this.information = null;
     this.error = null;
 
-    if (this.newPassword !== this.newConfirmedPassword) {
+    if (newPassword !== newConfirmedPassword) {
       this.error = 'The new password and the confirmed password do not correspond.';
       return;
     }
 
-    this.accountService.changePassword(this.newPassword).subscribe(
+    this.accountService.changePassword(newPassword).subscribe(
       ok => this.information = 'Password updated.',
 
       err => this.error = err