import {Component, ElementRef} from '@angular/core'; import {ActivatedRoute, Router} from '@angular/router'; import {Title, Meta} from '@angular/platform-browser'; import {Observable} from 'rxjs/Observable'; // import {LoginService} from './login.service'; import {User,Session} from './utils/helper.class'; import {RouterHelper} from '../utils/routerHelper.class'; import {EnvProperties} from '../utils/properties/env-properties'; @Component({ selector: 'user', templateUrl: 'user.component.html' }) export class UserComponent { public user: User; public loggedIn: boolean = false; public server: boolean = true; public errorMessage: string = ""; public username: string = ""; public password: string = ""; private sub:any;private sublogin:any; public errorCode: string = ""; public redirectUrl: string = ""; public routerHelper:RouterHelper = new RouterHelper(); public loginUrl; properties:EnvProperties; constructor( private router: Router, private route: ActivatedRoute, private _meta: Meta, private _title: Title) { var title = "OpenAIRE | Login"; this._title.setTitle(title); } ngOnInit() { this.route.data .subscribe((data: { envSpecific: EnvProperties }) => { this.properties = data.envSpecific; this.loginUrl = this.properties.loginUrl; }); if( typeof document !== 'undefined') { this.server = false; } this.loggedIn = Session.isLoggedIn(); this.user = Session.getUser(); this.errorMessage = ""; this.sub = this.route.queryParams.subscribe(params => { this.errorCode = params["errorCode"]; this.redirectUrl = params["redirectUrl"]; this.loggedIn = Session.isLoggedIn(); this.user = Session.getUser(); this.errorMessage = ""; if(this.loggedIn){ this.redirect(); } }); } ngOnDestroy(){ this.sub.unsubscribe(); if(this.sublogin){ this.sublogin.unsubscribe(); } } // logout(){ // if(Session.isLoggedIn()){ // Session.removeUser(); // } // this.loggedIn = false; // this.user = new User(); // this.username = ""; // this.password = ""; // this.redirect(); // // } redirect(){ if(this.redirectUrl && this.redirectUrl != null && this.redirectUrl != ""){ this.redirectUrl = decodeURIComponent(this.redirectUrl); var baseUrl = this.redirectUrl; var queryParams = ""; var paramsArray =[]; var valuesArray =[]; if(this.redirectUrl.indexOf('?') != -1){ baseUrl = this.redirectUrl.split('?')[0]; queryParams = this.redirectUrl.split('?')[1]; } if(queryParams != ""){ var queryParamsArray = queryParams.split('&'); for(var i = 0; i < queryParamsArray.length; i++){ paramsArray.push(queryParamsArray[i].split("=")[0]); valuesArray.push(queryParamsArray[i].split("=")[1]); } this.router.navigate([baseUrl], { queryParams: this.routerHelper.createQueryParams(paramsArray,valuesArray)}); }else{ this.router.navigate([baseUrl]); } }else{ this.router.navigate(['/']); } } logIn(){ if(this.redirectUrl && this.redirectUrl != null && this.redirectUrl != ""){ this.redirectUrl = decodeURIComponent(this.redirectUrl); var baseUrl = this.redirectUrl; var queryParams = ""; var paramsArray =[]; var valuesArray =[]; if(this.redirectUrl.indexOf('?') != -1){ var splits =this.redirectUrl.split('?'); if(splits.length>0){ baseUrl = splits[0]; } if(splits.length >1){ queryParams = splits[1]; } } Session.setReloadUrl(location.protocol +"//"+location.host, baseUrl, queryParams); } window.location.href = this.properties.loginUrl; } }