| /** |
| ****************************************************************************** |
| * Copyright © 2017-2018 PTA GmbH. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| ****************************************************************************** |
| */ |
| import { Component, OnInit, ViewChildren, AfterViewInit } from '@angular/core'; |
| import { Router } from '@angular/router'; |
| import { AuthenticationService } from '../../services/authentication.service'; |
| import { BaseDataService } from '../../services/base-data.service'; |
| import { SessionContext } from '../../common/session-context'; |
| import { Globals } from '../../common/globals'; |
| import { LoginCredentials } from '../../model/login-credentials'; |
| import { User } from '../../model/user'; |
| |
| @Component({ |
| selector: 'app-login', |
| templateUrl: './login.component.html', |
| styleUrls: ['./login.component.css'] |
| }) |
| |
| export class LoginComponent implements OnInit, AfterViewInit { |
| @ViewChildren('username') usernameInput; |
| |
| constructor( |
| private router: Router, |
| private authService: AuthenticationService, |
| private baseDataService: BaseDataService, |
| public sessionContext: SessionContext |
| ) { } |
| |
| ngOnInit() { |
| localStorage.removeItem('authenticatedUserId'); |
| } |
| |
| ngAfterViewInit() { |
| this.usernameInput.first.nativeElement.focus(); |
| } |
| |
| |
| private pastLogin() { |
| this.initBaseData(); |
| this.goToOverview(); |
| } |
| |
| private initBaseData() { |
| } |
| |
| private setError(showErr: boolean) { |
| if (showErr) { |
| document.getElementById('error-message').classList.remove('hidden'); |
| } else { |
| document.getElementById('error-message').classList.add('hidden'); |
| } |
| } |
| |
| public login(name: string, pw: string) { |
| this.setError(false); |
| const creds = new LoginCredentials(); |
| creds.userName = name; |
| creds.password = pw; |
| this.authService.login(creds) |
| .subscribe(jwtToken => this.onLoggedInSuccessfully(jwtToken), |
| error => { |
| console.log(error); |
| this.setError(true); |
| }); |
| } |
| |
| private onLoggedInSuccessfully(jwtToken: any) { |
| this.sessionContext.setAccessToken(jwtToken.access_token); |
| this.pastLogin(); |
| } |
| |
| public goToOverview() { |
| this.router.navigate(['/overview']); |
| } |
| } |