Newer
Older
import {Component, OnDestroy, OnInit} from '@angular/core';
import {AccessObject, AuthAccessKeyType, AuthData, WorkspaceData} from '../../app.interfaces';
import {from, Subscription} from 'rxjs';
import {Router} from '@angular/router';
import {BackendService} from '../../backend.service';
import {MainDataService} from '../../maindata.service';
import {concatMap} from 'rxjs/operators';
import {CustomtextService} from 'iqb-components';
templateUrl: './monitor-starter.component.html',
styles: [
'mat-card {margin: 10px;}',
'.mat-card-gray {background-color: lightgray}'
]
})
export class MonitorStarterComponent implements OnInit, OnDestroy {
accessObjects: (WorkspaceData|AccessObject)[] = [];
isWorkspaceMonitor = false;
private getWorkspaceDataSubscription: Subscription = null;
constructor(
private router: Router,
private bs: BackendService,
public cts: CustomtextService,
private mds: MainDataService
) { }
ngOnInit() {
setTimeout(() => {
this.bs.getSessionData().subscribe(authDataUntyped => {
if (typeof authDataUntyped !== 'number') {
const authData = authDataUntyped as AuthData;
if (authData) {
if (authData.token) {
let scopeIdList = [];
if (authData.access[AuthAccessKeyType.TEST_GROUP_MONITOR]) {
scopeIdList = authData.access[AuthAccessKeyType.TEST_GROUP_MONITOR];
} else if (authData.access[AuthAccessKeyType.WORKSPACE_MONITOR]) {
scopeIdList = authData.access[AuthAccessKeyType.WORKSPACE_MONITOR];
if (this.getWorkspaceDataSubscription !== null) {
this.getWorkspaceDataSubscription.unsubscribe();
}
this.getWorkspaceDataSubscription = from(scopeIdList).pipe(
if (authData.access[AuthAccessKeyType.TEST_GROUP_MONITOR]) {
} else if (authData.access[AuthAccessKeyType.WORKSPACE_MONITOR]) {
wsData => this.accessObjects.push(wsData),
() => this.mds.setSpinnerOff(),
() => this.mds.setSpinnerOff()
);
this.mds.setAuthData(authData);
} else {
this.mds.setAuthData();
}
} else {
this.mds.setAuthData();
} else {
this.mds.setSpinnerOff();
buttonGotoMonitor(accessObject: AccessObject) {
this.router.navigateByUrl('/wm/' + accessObject.id.toString());
this.router.navigateByUrl('/gm/' + accessObject.id.toString());
}
}
resetLogin() {
this.mds.setAuthData();
this.router.navigate(['/']);
}
ngOnDestroy() {
if (this.getWorkspaceDataSubscription !== null) {
this.getWorkspaceDataSubscription.unsubscribe();