GNM-838 Möglichkeit zum Direktzugriff auf gridMeasure Komponente herstellen
diff --git a/src/app/common/globals.ts b/src/app/common/globals.ts
index ee238c8..29c76f6 100644
--- a/src/app/common/globals.ts
+++ b/src/app/common/globals.ts
@@ -19,6 +19,8 @@
static STATUSES = 'STATUSES';
static GRID_TERRITORIES = 'TERRITORIES';
static ACCESS_TOKEN = 'ACCESS_TOKEN';
+ static FORWARD_URL = 'FORWARD_URL';
+ static URL_PARAMS = 'URL_PARAMS';
static BRANCHES = class Branches {
static const power = 'S';
static const gas = 'G';
diff --git a/src/app/pages/login/login.component.spec.ts b/src/app/pages/login/login.component.spec.ts
index 673d4ef..d3d9f7d 100644
--- a/src/app/pages/login/login.component.spec.ts
+++ b/src/app/pages/login/login.component.spec.ts
@@ -11,7 +11,7 @@
*/
/* tslint:disable:no-unused-variable */
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-import { Router } from '@angular/router';
+import { Router, ActivatedRoute } from '@angular/router';
import { By } from '@angular/platform-browser';
import { DebugElement } from '@angular/core';
import { AbstractMockObservableService } from '../../common/abstract-mock-observable.service';
@@ -31,6 +31,7 @@
import { SessionContext } from '../../common/session-context';
import { JwtHelper } from 'angular2-jwt';
import { JWT_TOKEN_HUGO } from '../../testing/jwt-token';
+import { ActivatedRouteStub } from '../../testing';
class FakeRouter {
navigate(commands: any[]) {
@@ -43,6 +44,7 @@
let component: LoginComponent;
let fixture: ComponentFixture<LoginComponent>;
let spy: jasmine.Spy;
+ let activatedStub: ActivatedRouteStub;
const correctUser: User = {
id: 44, username: 'carlo', password: 'serverPwd'
@@ -91,16 +93,18 @@
mockDataService = new MockDataService();
sessionContext = new SessionContext();
router = new FakeRouter() as any as Router;
+ activatedStub = new ActivatedRouteStub();
TestBed.configureTestingModule({
declarations: [LoginComponent,
MockComponent({ selector: 'app-version-info' })
],
providers: [
- { provide: AuthenticationService, useValue: mockAuthService },
- { provide: Router, useValue: router },
- { provide: SessionContext, useValue: sessionContext },
- { provide: BaseDataService, useValue: mockDataService }]
+ { provide: AuthenticationService, useValue: mockAuthService },
+ { provide: Router, useValue: router },
+ { provide: ActivatedRoute, useValue: activatedStub },
+ { provide: SessionContext, useValue: sessionContext },
+ { provide: BaseDataService, useValue: mockDataService }]
})
.compileComponents();
}));
diff --git a/src/app/pages/login/login.component.ts b/src/app/pages/login/login.component.ts
index 997b5dc..5b8a076 100644
--- a/src/app/pages/login/login.component.ts
+++ b/src/app/pages/login/login.component.ts
@@ -10,7 +10,7 @@
******************************************************************************
*/
import { Component, OnInit, ViewChildren, AfterViewInit } from '@angular/core';
-import { Router } from '@angular/router';
+import { Router, ActivatedRoute, Params, ParamMap } from '@angular/router';
import { AuthenticationService } from '../../services/authentication.service';
import { BaseDataService } from '../../services/base-data.service';
import { SessionContext } from '../../common/session-context';
@@ -27,14 +27,18 @@
export class LoginComponent implements OnInit, AfterViewInit {
@ViewChildren('username') usernameInput;
+ private urlParamsMap: ParamMap;
+
constructor(
private router: Router,
private authService: AuthenticationService,
private baseDataService: BaseDataService,
- public sessionContext: SessionContext
+ public sessionContext: SessionContext,
+ private activatedRoute: ActivatedRoute
) { }
ngOnInit() {
+ this.urlParamsMap = this.activatedRoute.snapshot.queryParamMap;
localStorage.removeItem('authenticatedUserId');
}
@@ -44,10 +48,32 @@
private pastLogin() {
+ this.processDirectLinkToGridMeasureDetail();
this.initBaseData();
this.goToOverview();
}
+ private processDirectLinkToGridMeasureDetail() {
+ if (!this.urlParamsMap) {
+ return;
+ }
+ const fwdUrl = this.urlParamsMap.get('fwdUrl');
+ const fwdId = this.urlParamsMap.get('fwdId');
+ if (!fwdUrl) {
+ return;
+ }
+
+ const linkToOpen = fwdUrl + '?accessToken=' + this.sessionContext.getAccessToken() + '&fwdId=' + fwdId;
+ this.urlParamsMap = undefined;
+
+ this.authService.checkAuth().subscribe(res => {
+ window.open(linkToOpen, '_blank');
+ },
+ error => {
+ console.log(error);
+ });
+ }
+
private initBaseData() {
}
@@ -66,10 +92,10 @@
creds.password = pw;
this.authService.login(creds)
.subscribe(jwtToken => this.onLoggedInSuccessfully(jwtToken),
- error => {
- console.log(error);
- this.setError(true);
- });
+ error => {
+ console.log(error);
+ this.setError(true);
+ });
}
private onLoggedInSuccessfully(jwtToken: any) {