Merge "Send logs to logstash"
[vid.git] / vid-webpack-master / src / app / shared / components / searchMembersModal / search-members-modal.component.ts
1 import {Component, OnDestroy, OnInit, ViewChild} from '@angular/core';
2 import {DialogComponent, DialogService} from "ng2-bootstrap-modal";
3 import {IframeService} from "../../utils/iframe.service";
4 import {AaiService} from "../../services/aaiService/aai.service";
5 import {VnfMember} from "../../models/VnfMember";
6 import {VnfGroupModel} from "../../models/vnfGroupModel";
7 import {MembersTableService} from "./members-table/members-table.service";
8 import {VnfGroupInstance} from "../../models/vnfGroupInstance";
9
10
11 export interface PopupModel {
12   title: string;
13   serviceModelId : string;
14   searchFields: ISearchField[];
15   description : string;
16   subscriberId: string,
17   serviceType: string,
18   node: VnfGroupInstance,
19   vnfGroupModel: VnfGroupModel;
20
21 }
22
23 export interface ISearchField {
24   title: string;
25   value: any;
26   dataTestId: string;
27 }
28
29 @Component({
30   selector : 'search-members-modal',
31   templateUrl : 'search-members-modal.component.html',
32   styleUrls : ['search-members-modal.component.scss']
33 })
34
35 export class SearchMembersModalComponent extends DialogComponent<PopupModel, boolean> implements OnInit, OnDestroy {
36   title: string;
37   serviceModelId : string;
38   parentElementClassName = 'content';
39   membersData: VnfMember[];
40   description : string;
41   searchFields: ISearchField[];
42   vnfGroupModel: VnfGroupModel;
43   subscriberId: string;
44   serviceType: string;
45   node: VnfGroupInstance;
46   disableSetMembers: boolean = true;
47     constructor(dialogService:  DialogService ,
48               private _iframeService : IframeService,
49               private _aaiService : AaiService,
50               private _membersTableService: MembersTableService){
51     super(dialogService);
52
53   }
54   @ViewChild('MembersTableComponent') membersTable;
55
56    ngOnInit() : void{
57     this._aaiService.getOptionalGroupMembers(this.serviceModelId, this.subscriberId, this.serviceType, (Object.values(this.vnfGroupModel.members))[0].sourceModelInvariant, this.vnfGroupModel.properties.type, this.vnfGroupModel.properties.role)
58       .subscribe((result: VnfMember[])=>{
59         this.membersData = this._membersTableService.filterUsedVnfMembers(this.serviceModelId, result);
60       });
61     };
62
63
64   closeDialog() : void{
65     this._iframeService.removeClassCloseModal(this.parentElementClassName);
66     this.dialogService.removeDialog(this);
67     setTimeout(() => {
68       window.parent.postMessage("closeIframe", "*");
69     }, 15);
70   }
71   selectedMembersAmountChange(selectedMembersAmount: number) : void {
72     this.disableSetMembers = selectedMembersAmount==0;
73   }
74
75
76   setMembers() : void {
77     this._membersTableService.setMembers({serviceId : this.serviceModelId, vnfGroupStoreKey : this.node.vnfGroupStoreKey});
78     this.closeDialog();
79   }
80 }
81
82