a76c73b671a237be2bc7a9e2c9bc960572d05bbc
[usecase-ui.git] /
1 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
2 import { Util } from '../../../shared/utils/utils';
3
4 @Component({
5   selector: 'app-input-intent-expectation',
6   templateUrl: './input-intent-expectation.component.html',
7   styleUrls: ['../intent-management.component.less']
8 })
9 export class InputIntentExpectationComponent implements OnInit {
10
11   constructor(
12     private Util: Util
13   ) { }
14
15   @Input() showModel: boolean;
16   @Output() modalOpreation = new EventEmitter();
17   @Input() editExpectationTableData;
18
19   defaultParams:Object={
20     expectationId:'',
21     expectationName:'',
22     expectationType:'DELIVERY',
23     expectationObject:{
24       objectType:'CCVPN',
25       objectInstance:'',
26     },
27     expectationTargets:[]
28   };
29   currentIndex:number = -1;
30
31   listOfData: any[] = [];
32
33   intentTargetShow: boolean = false;
34   editTargetTableList: Object={};
35
36   expectationTypeList: any[] = [];
37   expectationObjectTypeList: any[] = [];
38
39   ngOnInit() {
40     this.expectationTypeList = [
41       { label:'DELIVERY', value:'DELIVERY' },
42       { label:'ASSURANCE', value:'ASSURANCE' }
43     ]
44     this.expectationObjectTypeList = [
45       { label:'CCVPN', value:'CCVPN' },
46       { label:'SLICING', value:'SLICING' }
47     ]
48   }
49
50   ngOnChanges() {
51     if (this.showModel) {
52       if (JSON.stringify(this.editExpectationTableData)!=='{}') {
53         this.defaultParams=this.editExpectationTableData
54         this.listOfData=this.defaultParams['expectationTargets']
55       }
56     }
57         }
58
59   handleCancel(): void {
60     this.modalOpreation.emit({ "cancel": true });
61     this.clearExpectationData()
62   }
63   handleOk(): void {
64     if(JSON.stringify(this.editExpectationTableData)==='{}'){
65       this.defaultParams['expectationId']=this.Util.getUuid()
66     }
67     this.modalOpreation.emit({ "cancel": false, "param": this.defaultParams });
68     this.clearExpectationData()
69   }
70   editTargetList(data,i): void {
71     this.editTargetTableList=JSON.parse(JSON.stringify(data))
72     this.currentIndex=i
73     this.intentTargetShow = true
74   }
75   deleteTargetList(i): void{
76     this.listOfData.splice(i,1)
77   }
78   clearExpectationData(): void{
79     this.showModel = false;
80     this.defaultParams = {
81       expectationId:'',
82       expectationName:'',
83       expectationType:'DELIVERY',
84       expectationObject:{
85         objectType:'CCVPN',
86         objectInstance:'',
87       },
88       expectationTargets:[]
89     };
90     this.listOfData=[]
91   }
92   inputIntentTargetShow(): void {
93     this.intentTargetShow = true;
94   }
95   inputIntentStateClose($event: any): void {
96     this.intentTargetShow = false;
97     this.editTargetTableList={}
98     if ($event.cancel) {
99         return;
100     }
101     if(this.currentIndex>-1){
102       this.listOfData[this.currentIndex]=$event.param
103       this.currentIndex=-1
104     }else{
105       this.listOfData.push($event.param)
106     }
107     this.defaultParams['expectationTargets']=this.listOfData
108   }
109
110 }