X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Flogin%2Flogin.component.ts;h=e7c9c722632a3dfdb6504a7705ea5fe3c65a7513;hb=01de67b9a4fcdf01102ccc3cb7dc24beebf6c7ea;hp=bcfa021fab5a2e9fac85d2dfc8966a580cb9a5f7;hpb=00a446454d4721fc49517815655f6b4f8a17b554;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/login/login.component.ts b/client/src/app/login/login.component.ts index bcfa021fa..e7c9c7226 100644 --- a/client/src/app/login/login.component.ts +++ b/client/src/app/login/login.component.ts @@ -1,40 +1,63 @@ -import { Component } from '@angular/core'; -import { Router } from '@angular/router'; +import { Component, OnInit } from '@angular/core' +import { FormBuilder, FormGroup, Validators } from '@angular/forms' +import { Router } from '@angular/router' -import { AuthService, AuthStatus, User } from '../shared'; +import { AuthService } from '../core' +import { FormReactive } from '../shared' @Component({ selector: 'my-login', - template: require('./login.component.html') + templateUrl: './login.component.html', + styleUrls: [ './login.component.scss' ] }) -export class LoginComponent { - error: string = null; +export class LoginComponent extends FormReactive implements OnInit { + error: string = null - constructor( + form: FormGroup + formErrors = { + 'username': '', + 'password': '' + } + validationMessages = { + 'username': { + 'required': 'Username is required.' + }, + 'password': { + 'required': 'Password is required.' + } + } + + constructor ( private authService: AuthService, + private formBuilder: FormBuilder, private router: Router - ) {} + ) { + super() + } + + buildForm () { + this.form = this.formBuilder.group({ + username: [ '', Validators.required ], + password: [ '', Validators.required ] + }) + + this.form.valueChanges.subscribe(data => this.onValueChanged(data)) + } + + ngOnInit () { + this.buildForm() + } + + login () { + this.error = null + + const { username, password } = this.form.value - login(username: string, password: string) { this.authService.login(username, password).subscribe( - result => { - this.error = null; - - const user = new User(username, result); - user.save(); - - this.authService.setStatus(AuthStatus.LoggedIn); - - this.router.navigate(['/videos/list']); - }, - error => { - if (error.error === 'invalid_grant') { - this.error = 'Credentials are invalid.'; - } else { - this.error = `${error.error}: ${error.error_description}`; - } - } - ); + () => this.router.navigate(['/videos/list']), + + err => this.error = err.message + ) } }