2017-08-15 15:59:43 +01:00
import { Component , OnInit } from '@angular/core' ;
import { Validators , FormBuilder , FormGroup } from '@angular/forms' ;
import { ApiService } from '../providers/api-service' ;
import { Router , ActivatedRoute } from '@angular/router' ;
2018-06-04 15:23:16 +01:00
2017-08-15 15:59:43 +01:00
@Component ( {
templateUrl : 'login.component.html' ,
} )
export class LoginComponent implements OnInit {
signin : FormGroup ;
returnUrl : string ;
2017-08-24 17:09:01 +01:00
loginStatus : any ;
2017-08-15 15:59:43 +01:00
constructor (
2017-08-16 16:10:32 +01:00
private route : ActivatedRoute ,
private formBuilder : FormBuilder ,
private router : Router ,
private api : ApiService
) {
this . signin = this . formBuilder . group ( {
email : [ '' , [ Validators . required ] ] ,
password : [ '' , [ Validators . required ] ] ,
} ) ;
2017-08-15 15:59:43 +01:00
}
ngOnInit() {
2017-08-16 16:10:32 +01:00
// reset login status
this . api
. logout ( )
. subscribe (
result = > {
console . log ( 'Logged out!' ) ;
2017-09-01 17:33:23 +01:00
localStorage . clear ( ) ;
2017-08-16 16:10:32 +01:00
}
) ;
2017-08-15 15:59:43 +01:00
2017-08-16 16:10:32 +01:00
// get return url from route parameters or default to '/'
this . returnUrl = this . route . snapshot . queryParams [ 'returnUrl' ] || '/' ;
2017-08-15 15:59:43 +01:00
}
onSubmit() {
console . log ( this . signin . value ) ;
2017-08-16 16:10:32 +01:00
this . api
. login ( this . signin . value )
. subscribe (
result = > {
console . log ( 'logged in!' ) ;
2017-09-08 14:49:57 +01:00
this . loginStatus = 'success' ;
2017-08-24 17:09:01 +01:00
console . log ( this . loginStatus ) ;
2017-08-16 16:10:32 +01:00
this . router . navigate ( [ this . returnUrl ] ) ;
} ,
error = > {
console . log ( error . _body ) ;
2017-09-08 14:49:57 +01:00
this . loginStatus = 'send_failed' ;
2017-08-24 17:09:01 +01:00
console . log ( this . loginStatus ) ;
2017-08-16 16:10:32 +01:00
}
) ;
2017-08-15 15:59:43 +01:00
}
}