1 import {Component, OnDestroy, OnInit} from "@angular/core";
2 import {DialogComponent, DialogService} from "ng2-bootstrap-modal";
3 import {IframeService} from "../../../utils/iframe.service";
4 import {ActivatedRoute} from "@angular/router";
5 import {ServiceInfoService} from "../../../server/serviceInfo/serviceInfo.service";
6 import {InstantiationTemplatesModalService} from "./instantiation.templates.modal.service";
7 import {InstantiationTemplatesRowModel} from "./instantiation.templates.row.model";
8 import {DrawingBoardModes} from "../../../../drawingBoard/service-planning/drawing-board.modes";
9 import {InstantiationStatusComponentService} from "../../../../instantiationStatus/instantiationStatus.component.service";
10 import {AaiService} from "../../../services/aaiService/aai.service";
11 import {NgRedux} from "@angular-redux/store";
12 import {AppState} from "../../../store/reducers";
13 import * as _ from 'lodash';
14 import {forkJoin} from "rxjs";
16 selector: 'template-modal',
17 templateUrl: 'instantiation.templates.modal.component.html',
18 styleUrls: ['instantiation.templates.modal.component.scss']
21 export class InstantiationTemplatesModalComponent extends DialogComponent<string, boolean> implements OnInit, OnDestroy {
23 selectedInstantiation: InstantiationTemplatesRowModel = null;
24 templateModalComponentService: InstantiationTemplatesModalService;
25 originalTableData: InstantiationTemplatesRowModel[] = [];
26 filterTableData : InstantiationTemplatesRowModel[] = [];
28 filterByUserId: boolean = false;
30 constructor(dialogService: DialogService,
31 private _iframeService: IframeService,
32 private _serviceInfoService: ServiceInfoService,
33 private _templateModalComponentService: InstantiationTemplatesModalService,
34 private _instantiationStatusComponentService: InstantiationStatusComponentService,
35 private _aaiService: AaiService,
36 private _store : NgRedux<AppState>,
37 private _route: ActivatedRoute) {
39 this.templateModalComponentService = _templateModalComponentService;
46 .subscribe(params => {
48 const getServiceJobInfoRoute = this._serviceInfoService.getTemplatesInfo(true, params['serviceModelId']);
49 const getUserIdRoute = this._aaiService.getUserId();
51 forkJoin([getServiceJobInfoRoute, getUserIdRoute]).subscribe(([jobs]) => {
52 this.originalTableData = this._templateModalComponentService.convertResponseToUI(jobs);
53 this.filterTableData = this.originalTableData;
58 loadTemplate = () => {
59 this._instantiationStatusComponentService.navigateToNewViewEdit(this.selectedInstantiation, DrawingBoardModes.RECREATE)
62 filterByUserIdChanged = (value : boolean) : void => {
63 this.filterByUserId = value;
64 const userId: string = this._store.getState().service['userId'];
66 this.filterTableData = this.filterByUserId ? this._templateModalComponentService.filterByUserId(userId, this.originalTableData) : this.originalTableData;
71 this._iframeService.closeIframe(this.dialogService, this);