apt-maintenance-account
Version:
Apartment Maintenance Account Tracking Application - Client Side in Angular
99 lines (84 loc) • 2.54 kB
text/typescript
import { Component } from '@angular/core';
import { NgForm } from '@angular/forms';
import {
Router,
NavigationExtras,
ActivatedRoute } from '@angular/router';
import { User } from '../users/model';
import { Message } from '../shared';
import { environment } from '../../environments/environment';
import { Logger } from '../logger/default-log.service';
import { AuthService } from './auth.service';
declare const hello: any;
({
selector: 'login',
templateUrl: './login.component.html',
styles: [`
.login {
width: 40%;
};
`
]
})
export class LoginComponent {
email: String;
message: Message = new Message();
user: User;
constructor(
public authService: AuthService,
public route: ActivatedRoute,
public router: Router,
public logger: Logger
) { }
login(event: String, email: String, password: String) {
let auth = this.authService;
auth.login(event, email, password).subscribe(() => {
this.redirect(auth);
});
}
redirect(auth: AuthService) {
if (auth.isLoggedIn) {
console.log('User data: ...'); console.log(auth.user);
this.user = auth.user;
console.log(this.residentTypeExist());
// Get the redirect URL from our auth service
// If no redirect is set, use the default
// let redirect = auth.redirectUrl ? auth.redirectUrl : '/home';
let redirect = '/home';
if (this.residentTypeExist())
redirect = '/home';
else
redirect = '/userprofile';
/*
// Set our navigation extras object
// that passes on our global query params and fragment
let navigationExtras: NavigationExtras = {
queryParamsHandling: "merge", // "merge", "preserve", "default or /"
preserveFragment: true
};
// Redirect the user
this.router.navigate([redirect], navigationExtras); */
this.router.navigate([redirect]);
} else { // login failed
this.message = auth.message;
}
}
exist(key: string): boolean {
let elemArray = [];
let infos = this.user.infos;
if (infos) elemArray = infos.filter(each => each.key === key);
return elemArray.length > 0;
}
residentTypeExist(): boolean {
return this.exist('residentType');
}
cancel() {
this.router.navigate(['/home']);
}
signup() {
this.router.navigate(['/signup']);
}
forgot() {
this.router.navigate(['forgot'], { relativeTo: this.route });
}
}