X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2F%2Bmy-account%2Fmy-account-settings%2Fmy-account-change-password%2Fmy-account-change-password.component.ts;h=0707d8f9ae62d15bcdca64c3969f0ff7732417c4;hb=4c8e4e04d1b3f0f207e9155df393ceeb23dc2172;hp=1a88aa82e38afaef4f87386943fe80c51346cd87;hpb=b1d40cff89f7cff565a98cdbcea9a624196a169a;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/+my-account/my-account-settings/my-account-change-password/my-account-change-password.component.ts b/client/src/app/+my-account/my-account-settings/my-account-change-password/my-account-change-password.component.ts index 1a88aa82e..0707d8f9a 100644 --- a/client/src/app/+my-account/my-account-settings/my-account-change-password/my-account-change-password.component.ts +++ b/client/src/app/+my-account/my-account-settings/my-account-change-password/my-account-change-password.component.ts @@ -1,8 +1,9 @@ import { Component, OnInit } from '@angular/core' -import { FormBuilder, FormGroup } from '@angular/forms' import { NotificationsService } from 'angular2-notifications' -import { FormReactive, USER_PASSWORD, UserService } from '../../../shared' +import { FormReactive, UserService } from '../../../shared' import { I18n } from '@ngx-translate/i18n-polyfill' +import { FormValidatorService } from '@app/shared/forms/form-validators/form-validator.service' +import { UserValidatorsService } from '@app/shared/forms/form-validators/user-validators.service' @Component({ selector: 'my-account-change-password', @@ -11,19 +12,11 @@ import { I18n } from '@ngx-translate/i18n-polyfill' }) export class MyAccountChangePasswordComponent 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 - } + unsendable = true // default to true to not have to not the if in change password constructor ( - private formBuilder: FormBuilder, + protected formValidatorService: FormValidatorService, + private userValidatorsService: UserValidatorsService, private notificationsService: NotificationsService, private userService: UserService, private i18n: I18n @@ -31,31 +24,38 @@ export class MyAccountChangePasswordComponent extends FormReactive implements On super() } - buildForm () { - this.form = this.formBuilder.group({ - 'new-password': [ '', USER_PASSWORD.VALIDATORS ], - 'new-confirmed-password': [ '', USER_PASSWORD.VALIDATORS ] + ngOnInit () { + this.buildForm({ + 'new-password': this.userValidatorsService.USER_PASSWORD, + 'new-confirmed-password': this.userValidatorsService.USER_PASSWORD }) + } - this.form.valueChanges.subscribe(data => this.onValueChanged(data)) + validateNewPassword () { + if (this.form.value['new-password'] && this.form.value['new-confirmed-password']) { + if (this.form.value['new-password'] === this.form.value['new-confirmed-password']) { + this.error = null + this.unsendable = false + return + } + } + this.unsendable = true } - ngOnInit () { - this.buildForm() + printAnError () { + console.log(this.unsendable) + this.validateNewPassword() + if (this.unsendable) { + this.error = this.i18n('The new password and the confirmed password do not correspond.') + } } changePassword () { - const newPassword = this.form.value['new-password'] - const newConfirmedPassword = this.form.value['new-confirmed-password'] - - this.error = null - - if (newPassword !== newConfirmedPassword) { - this.error = this.i18n('The new password and the confirmed password do not correspond.') + if (this.unsendable) { return } - this.userService.changePassword(newPassword).subscribe( + this.userService.changePassword(this.form.value['new-password']).subscribe( () => this.notificationsService.success(this.i18n('Success'), this.i18n('Password updated.')), err => this.error = err.message