Initial OpenECOMP policy/engine commit
[policy/engine.git] / ecomp-sdk-app / src / main / webapp / app / policyApp / policy-models / Editor / PolicyTemplateController / ClosedLoopFaultController.js
1 /*-
2  * ============LICENSE_START=======================================================
3  * ECOMP Policy Engine
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 /**
22  * 
23  */
24 angular.module("abs").controller('clFaultController', function($scope, $window, PolicyDictionaryService, PapUrlService, modalService, $modal, Notification){
25         $("#dialog").hide();
26
27         $scope.temp.policy.ttlDate = new Date($scope.temp.policy.ttlDate);
28         if($scope.temp.policy.triggerTrapSignatures == undefined){
29                 $scope.temp.policy.triggerTrapSignatures = [];
30                 $scope.temp.policy.triggerfaultSignatures = [];
31         }
32         var trapCollection = [];
33         var faultCollection = [];
34         if($scope.varbindDictionaryDatas == undefined){
35                 $scope.varbindDictionaryDatas = [];
36         }
37         
38         $scope.init = function(data){
39                 if(data != "undefined"){
40                         $scope.jsonData = data; 
41                         if($scope.jsonData.triggerSignaturesUsedForUI != null){
42                                 if($scope.jsonData.triggerSignaturesUsedForUI.signatures != null){
43                                         $scope.temp.policy.triggerTrapSignatures = {Trap1 : [], Trap2 : [], Trap3 : [], Trap4 : [], Trap5 : [], Trap6 : []};
44                                         var splitTraps = $scope.jsonData.triggerSignaturesUsedForUI.signatures.split("#!?!"); 
45                                         if(splitTraps.length > 1){
46                                                 $scope.triggerdisabled = false;
47                                                 var indexId = "Trap1";
48                                                 trapCollection.push(indexId);
49                                                 $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = [];
50                                                 $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+1});
51                                                 var splitTrap1 = splitTraps[0];
52                                                 var splitEachTrap = splitTrap1.split("#!@!");
53                                                 for(i = 0 ; i < splitEachTrap.length; i++){
54                                                         var splitEachRow = splitEachTrap[i].split("@!");
55                                                         var count = i +1;
56                                                         if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
57                                                                 var notBox = splitEachRow[0];
58                                                                 var trigger1 = splitEachRow[1];
59                                                                 var operatorBox = splitEachRow[2];
60                                                                 var trigger2 = splitEachRow[3];
61                                                         }else{
62                                                                 var notBox = '';
63                                                                 var trigger1 = splitEachRow[0];
64                                                                 var operatorBox = splitEachRow[1];
65                                                                 var trigger2 = splitEachRow[2]; 
66                                                         }
67                                                         $scope.varbindDictionaryDatas.push('A'+count);
68                                                         $scope.temp.policy.triggerTrapSignatures["Trap1"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});                  
69                                                 }
70                                         }
71                                         if(splitTraps.length > 2){
72                                                 var indexId = "Trap2";
73                                                 trapCollection.push(indexId);
74                                                 $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = [];
75                                                 $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+2});
76                                                 var splitTrap1 = splitTraps[1]; 
77                                                 var splitEachTrap = splitTrap1.split("#!@!");
78                                                 for(i = 0 ; i < splitEachTrap.length; i++){
79                                                         var splitEachRow = splitEachTrap[i].split("@!");
80                                                         var count = i +1;
81                                                         if(splitEachRow[0] == 'NOT' || splitEachRow[0] == ''){
82                                                                 var notBox = splitEachRow[0];
83                                                                 var trigger1 = splitEachRow[1];
84                                                                 var operatorBox = splitEachRow[2];
85                                                                 var trigger2 = splitEachRow[3];
86                                                         }else{
87                                                                 var notBox = '';
88                                                                 var trigger1 = splitEachRow[0];
89                                                                 var operatorBox = splitEachRow[1];
90                                                                 var trigger2 = splitEachRow[2]; 
91                                                         }
92                                                         $scope.varbindDictionaryDatas.push('A'+count);
93                                                         $scope.temp.policy.triggerTrapSignatures["Trap2"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});                  
94                                                 }
95                                         }
96                                         if(splitTraps.length > 3){
97                                                 var indexId = "Trap3";
98                                                 trapCollection.push(indexId);
99                                                 $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = [];
100                                                 $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+3});
101                                                 var splitTrap1 = splitTraps[2]; 
102                                                 var splitEachTrap = splitTrap1.split("#!@!");
103                                                 for(i = 0 ; i < splitEachTrap.length; i++){
104                                                         var splitEachRow = splitEachTrap[i].split("@!");
105                                                         var count = i +1;
106                                                         if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
107                                                                 var notBox = splitEachRow[0];
108                                                                 var trigger1 = splitEachRow[1];
109                                                                 var operatorBox = splitEachRow[2];
110                                                                 var trigger2 = splitEachRow[3];
111                                                         }else{
112                                                                 var notBox = '';
113                                                                 var trigger1 = splitEachRow[0];
114                                                                 var operatorBox = splitEachRow[1];
115                                                                 var trigger2 = splitEachRow[2]; 
116                                                         }
117                                                         $scope.varbindDictionaryDatas.push('A'+count);
118                                                         $scope.temp.policy.triggerTrapSignatures["Trap3"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});                  
119                                                 }
120                                         }
121                                         if(splitTraps.length > 4){
122                                                 var indexId = "Trap4";
123                                                 trapCollection.push(indexId);
124                                                 $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = [];
125                                                 $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+4});
126                                                 var splitTrap1 = splitTraps[3]; 
127                                                 var splitEachTrap = splitTrap1.split("#!@!");
128                                                 for(i = 0 ; i < splitEachTrap.length; i++){
129                                                         var splitEachRow = splitEachTrap[i].split("@!");
130                                                         var count = i +1;
131                                                         if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
132                                                                 var notBox = splitEachRow[0];
133                                                                 var trigger1 = splitEachRow[1];
134                                                                 var operatorBox = splitEachRow[2];
135                                                                 var trigger2 = splitEachRow[3];
136                                                         }else{
137                                                                 var notBox = '';
138                                                                 var trigger1 = splitEachRow[0];
139                                                                 var operatorBox = splitEachRow[1];
140                                                                 var trigger2 = splitEachRow[2]; 
141                                                         }
142                                                         $scope.varbindDictionaryDatas.push('A'+count);
143                                                         $scope.temp.policy.triggerTrapSignatures["Trap4"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});                  
144                                                 }
145                                         }
146                                         if(splitTraps.length > 5){
147                                                 var indexId = "Trap5";
148                                                 trapCollection.push(indexId);
149                                                 $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = [];
150                                                 $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+5});
151                                                 var splitTrap1 = splitTraps[4]; 
152                                                 var splitEachTrap = splitTrap1.split("#!@!");
153                                                 for(i = 0 ; i < splitEachTrap.length; i++){
154                                                         var splitEachRow = splitEachTrap[i].split("@!");
155                                                         var count = i +1;
156                                                         if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
157                                                                 var notBox = splitEachRow[0];
158                                                                 var trigger1 = splitEachRow[1];
159                                                                 var operatorBox = splitEachRow[2];
160                                                                 var trigger2 = splitEachRow[3];
161                                                         }else{
162                                                                 var notBox = '';
163                                                                 var trigger1 = splitEachRow[0];
164                                                                 var operatorBox = splitEachRow[1];
165                                                                 var trigger2 = splitEachRow[2]; 
166                                                         }
167                                                         $scope.varbindDictionaryDatas.push('A'+count);
168                                                         $scope.temp.policy.triggerTrapSignatures["Trap5"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});                  
169                                                 } 
170                                         }
171                                         if(splitTraps.length > 6){
172                                                 var indexId = "Trap6";
173                                                 trapCollection.push(indexId);
174                                                 $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = [];
175                                                 $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+6});
176                                                 var splitTrap1 = splitTraps[5]; 
177                                                 var splitEachTrap = splitTrap1.split("#!@!");
178                                                 for(i = 0 ; i < splitEachTrap.length; i++){
179                                                         var splitEachRow = splitEachTrap[i].split("@!");
180                                                         var count = i +1;
181                                                         if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
182                                                                 var notBox = splitEachRow[0];
183                                                                 var trigger1 = splitEachRow[1];
184                                                                 var operatorBox = splitEachRow[2];
185                                                                 var trigger2 = splitEachRow[3];
186                                                         }else{
187                                                                 var notBox = '';
188                                                                 var trigger1 = splitEachRow[0];
189                                                                 var operatorBox = splitEachRow[1];
190                                                                 var trigger2 = splitEachRow[2]; 
191                                                         }
192                                                         $scope.varbindDictionaryDatas.push('A'+count);
193                                                         $scope.temp.policy.triggerTrapSignatures["Trap6"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});                  
194                                                 }
195                                         }
196                                         if($scope.jsonData.triggerSignaturesUsedForUI.connectSignatures != null){
197                                                 var splitConnectTraps = $scope.jsonData.triggerSignaturesUsedForUI.connectSignatures.split("#!?!"); 
198                                                 for(i=0; i < splitConnectTraps.length; i++){
199                                                         if(splitConnectTraps[i] != ""){
200                                                                 var newConnectTrapItemNo = i+1;
201                                                                 var connects = splitConnectTraps[i].split("@!");
202                                                                 if(connects[0] == 'NOT' || connects[0] ==''){
203                                                                         var notBox = connects[0];
204                                                                         var connectTrap1 = connects[1];
205                                                                         var trapCount1 = connects[2];
206                                                                         var operatorBox = connects[3];
207                                                                         var connectTrap2 = connects[4];
208                                                                         var trapCount2 = connects[5];
209                                                                 }else{
210                                                                         var notBox = '';
211                                                                         var connectTrap1 = connects[0];
212                                                                         var trapCount1 = connects[1];
213                                                                         var operatorBox = connects[2];
214                                                                         var connectTrap2 = connects[3];
215                                                                         var trapCount2 = connects[4]; 
216                                                                 }
217                                                                 $scope.temp.policy.connecttriggerSignatures.push({'id':'C'+newConnectTrapItemNo,'notBox' : notBox , 'connectTrap1': connectTrap1,'trapCount1' : trapCount1, 
218                                                                         'operatorBox': operatorBox, 'connectTrap2': connectTrap2,'trapCount2' : trapCount2}); 
219                                                         }
220                                                 }                               
221                                         }
222                                 }
223                         }
224                         if($scope.jsonData.verificationSignaturesUsedForUI != null){
225                                 if($scope.jsonData.verificationSignaturesUsedForUI.signatures != null){
226                                         $scope.temp.policy.triggerfaultSignatures = {Fault1 : [], Fault2 : [],  Fault3 : [],  Fault4 : [],  Fault5 : [],  Fault6 : [],};
227                                         var splitTraps = $scope.jsonData.verificationSignaturesUsedForUI.signatures.split("#!?!"); 
228                                         if(splitTraps.length > 1){
229                                                 $scope.verificationdisabled = false;
230                                                 var indexId = "Fault1";
231                                                 faultCollection.push(indexId);
232                                                 $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = [];
233                                                 $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+1});
234                                                 var splitTrap1 = splitTraps[0];
235                                                 var splitEachTrap = splitTrap1.split("#!@!");
236                                                 for(i = 0 ; i < splitEachTrap.length; i++){
237                                                         var splitEachRow = splitEachTrap[i].split("@!");
238                                                         var count = i +1;
239                                                         if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
240                                                                 var notBox = splitEachRow[0];
241                                                                 var trigger1 = splitEachRow[1];
242                                                                 var operatorBox = splitEachRow[2];
243                                                                 var trigger2 = splitEachRow[3];
244                                                         }else{
245                                                                 var notBox = '';
246                                                                 var trigger1 = splitEachRow[0];
247                                                                 var operatorBox = splitEachRow[1];
248                                                                 var trigger2 = splitEachRow[2]; 
249                                                         }
250                                                         $scope.varbindDictionaryDatas.push('A'+count);
251                                                         $scope.temp.policy.triggerfaultSignatures["Fault1"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});                
252                                                 }
253                                         }
254                                         if(splitTraps.length > 2){
255                                                 var indexId = "Fault2";
256                                                 faultCollection.push(indexId);
257                                                 $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = [];
258                                                 $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+2});
259                                                 var splitTrap1 = splitTraps[1]; 
260                                                 var splitEachTrap = splitTrap1.split("#!@!");
261                                                 for(i = 0 ; i < splitEachTrap.length; i++){
262                                                         var splitEachRow = splitEachTrap[i].split("@!");
263                                                         var count = i +1;
264                                                         if(splitEachRow[0] == 'NOT' || splitEachRow[0] == ''){
265                                                                 var notBox = splitEachRow[0];
266                                                                 var trigger1 = splitEachRow[1];
267                                                                 var operatorBox = splitEachRow[2];
268                                                                 var trigger2 = splitEachRow[3];
269                                                         }else{
270                                                                 var notBox = '';
271                                                                 var trigger1 = splitEachRow[0];
272                                                                 var operatorBox = splitEachRow[1];
273                                                                 var trigger2 = splitEachRow[2]; 
274                                                         }
275                                                         $scope.varbindDictionaryDatas.push('A'+count);
276                                                         $scope.temp.policy.triggerfaultSignatures["Fault2"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});                
277                                                 }
278                                         }
279                                         if(splitTraps.length > 3){
280                                                 var indexId = "Fault3";
281                                                 faultCollection.push(indexId);
282                                                 $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = [];
283                                                 $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+3});
284                                                 var splitTrap1 = splitTraps[2]; 
285                                                 var splitEachTrap = splitTrap1.split("#!@!");
286                                                 for(i = 0 ; i < splitEachTrap.length; i++){
287                                                         var splitEachRow = splitEachTrap[i].split("@!");
288                                                         var count = i +1;
289                                                         if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
290                                                                 var notBox = splitEachRow[0];
291                                                                 var trigger1 = splitEachRow[1];
292                                                                 var operatorBox = splitEachRow[2];
293                                                                 var trigger2 = splitEachRow[3];
294                                                         }else{
295                                                                 var notBox = '';
296                                                                 var trigger1 = splitEachRow[0];
297                                                                 var operatorBox = splitEachRow[1];
298                                                                 var trigger2 = splitEachRow[2]; 
299                                                         }
300                                                         $scope.varbindDictionaryDatas.push('A'+count);
301                                                         $scope.temp.policy.triggerfaultSignatures["Fault3"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});                
302                                                 }
303                                         }
304                                         if(splitTraps.length > 4){
305                                                 var indexId = "Fault4";
306                                                 faultCollection.push(indexId);
307                                                 $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = [];
308                                                 $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+4});
309                                                 var splitTrap1 = splitTraps[3]; 
310                                                 var splitEachTrap = splitTrap1.split("#!@!");
311                                                 for(i = 0 ; i < splitEachTrap.length; i++){
312                                                         var splitEachRow = splitEachTrap[i].split("@!");
313                                                         var count = i +1;
314                                                         if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
315                                                                 var notBox = splitEachRow[0];
316                                                                 var trigger1 = splitEachRow[1];
317                                                                 var operatorBox = splitEachRow[2];
318                                                                 var trigger2 = splitEachRow[3];
319                                                         }else{
320                                                                 var notBox = '';
321                                                                 var trigger1 = splitEachRow[0];
322                                                                 var operatorBox = splitEachRow[1];
323                                                                 var trigger2 = splitEachRow[2]; 
324                                                         }
325                                                         $scope.varbindDictionaryDatas.push('A'+count);
326                                                         $scope.temp.policy.triggerfaultSignatures["Fault4"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});                
327                                                 }
328                                         }
329                                         if(splitTraps.length > 5){
330                                                 var indexId = "Fault5";
331                                                 faultCollection.push(indexId);
332                                                 $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = [];
333                                                 $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+5});
334                                                 var splitTrap1 = splitTraps[4]; 
335                                                 var splitEachTrap = splitTrap1.split("#!@!");
336                                                 for(i = 0 ; i < splitEachTrap.length; i++){
337                                                         var splitEachRow = splitEachTrap[i].split("@!");
338                                                         var count = i +1;
339                                                         if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
340                                                                 var notBox = splitEachRow[0];
341                                                                 var trigger1 = splitEachRow[1];
342                                                                 var operatorBox = splitEachRow[2];
343                                                                 var trigger2 = splitEachRow[3];
344                                                         }else{
345                                                                 var notBox = '';
346                                                                 var trigger1 = splitEachRow[0];
347                                                                 var operatorBox = splitEachRow[1];
348                                                                 var trigger2 = splitEachRow[2]; 
349                                                         }
350                                                         $scope.varbindDictionaryDatas.push('A'+count);
351                                                         $scope.temp.policy.triggerfaultSignatures["Fault5"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});                
352                                                 } 
353                                         }
354                                         if(splitTraps.length > 6){
355                                                 var indexId = "Fault6";
356                                                 faultCollection.push(indexId);
357                                                 $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = [];
358                                                 $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+6});
359                                                 var splitTrap1 = splitTraps[5]; 
360                                                 var splitEachTrap = splitTrap1.split("#!@!");
361                                                 for(i = 0 ; i < splitEachTrap.length; i++){
362                                                         var splitEachRow = splitEachTrap[i].split("@!");
363                                                         var count = i +1;
364                                                         if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
365                                                                 var notBox = splitEachRow[0];
366                                                                 var trigger1 = splitEachRow[1];
367                                                                 var operatorBox = splitEachRow[2];
368                                                                 var trigger2 = splitEachRow[3];
369                                                         }else{
370                                                                 var notBox = '';
371                                                                 var trigger1 = splitEachRow[0];
372                                                                 var operatorBox = splitEachRow[1];
373                                                                 var trigger2 = splitEachRow[2]; 
374                                                         }
375                                                         $scope.varbindDictionaryDatas.push('A'+count);
376                                                         $scope.temp.policy.triggerfaultSignatures["Fault6"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});                
377                                                 }
378                                         }
379
380                                         if($scope.jsonData.verificationSignaturesUsedForUI.connectSignatures != null){
381                                                 var splitConnectTraps = $scope.jsonData.verificationSignaturesUsedForUI.connectSignatures.split("#!?!"); 
382                                                 for(i=0; i < splitConnectTraps.length; i++){
383                                                         if(splitConnectTraps[i] != ""){
384                                                                 var newConnectTrapItemNo = i+1;
385                                                                 var connects = splitConnectTraps[i].split("@!");
386                                                                 if(connects[0] == 'NOT' || connects[0] ==''){
387                                                                         var notBox = connects[0];
388                                                                         var connectTrap1 = connects[1];
389                                                                         var trapCount1 = connects[2];
390                                                                         var operatorBox = connects[3];
391                                                                         var connectTrap2 = connects[4];
392                                                                         var trapCount2 = connects[5];
393                                                                 }else{
394                                                                         var notBox = '';
395                                                                         var connectTrap1 = connects[0];
396                                                                         var trapCount1 = connects[1];
397                                                                         var operatorBox = connects[2];
398                                                                         var connectTrap2 = connects[3];
399                                                                         var trapCount2 = connects[4]; 
400                                                                 }
401                                                                 $scope.temp.policy.connectVerificationSignatures.push({'id':'C'+newConnectTrapItemNo,'notBox' : notBox , 'connectTrap1': connectTrap1,'trapCount1' : trapCount1, 
402                                                                         'operatorBox': operatorBox, 'connectTrap2': connectTrap2,'trapCount2' : trapCount2}); 
403                                                         }
404                                                 }                               
405                                         }
406                                 }
407                         }
408                 }
409
410         };
411
412         $scope.triggerdisabled = true;
413         $scope.verificationdisabled = true;
414         
415         var papUrl;
416         PapUrlService.getPapUrl().then(function(data) {
417                 var config = data;
418                 papUrl = config.PAP_URL;
419                 console.log(papUrl);
420                 
421                 PolicyDictionaryService.getEcompDictionaryData(papUrl).then(function (data) {
422                         var j = data;
423                         $scope.data = JSON.parse(j.data);
424                         console.log($scope.data);
425                         $scope.ecompNameDictionaryDatas = JSON.parse($scope.data.ecompNameDictionaryDatas);
426                         console.log($scope.ecompNameDictionaryDatas);
427                 }, function (error) {
428                         console.log("failed");
429                 });
430                 
431                 PolicyDictionaryService.getPepOptionsDictionaryData(papUrl).then(function (data) {
432                         var j = data;
433                         $scope.data = JSON.parse(j.data);
434                         console.log($scope.data);
435                         $scope.pepOptionsDictionaryDatas = JSON.parse($scope.data.pepOptionsDictionaryDatas);
436                         console.log($scope.pepOptionsDictionaryDatas);
437                 }, function (error) {
438                         console.log("failed");
439                 });
440         
441                 PolicyDictionaryService.getPepOptionsDictionaryDataEntity(papUrl).then(function (data) {
442                         var j = data;
443                         $scope.data = JSON.parse(j.data);
444                         console.log($scope.data);
445                         $scope.pepOptionsDictionaryDataEntity = JSON.parse($scope.data.pepOptionsDictionaryDatas);
446                         console.log($scope.pepOptionsDictionaryDataEntity);
447                 }, function (error) {
448                         console.log("failed");
449                 });
450
451                 PolicyDictionaryService.getVarbindDictionaryData(papUrl).then(function (data) {
452                         var j = data;
453                         $scope.data = JSON.parse(j.data);
454                         console.log($scope.data);
455                         $scope.varbindDictionaryDatas = JSON.parse($scope.data.varbindDictionaryDatas);
456                         console.log($scope.varbindDictionaryDatas);
457                 }, function (error) {
458                         console.log("failed");
459                 });
460
461                 PolicyDictionaryService.getVnfTypeDictionaryData(papUrl).then(function (data) {
462                         var j = data;
463                         $scope.data = JSON.parse(j.data);
464                         console.log($scope.data);
465                         $scope.vnfTypeDictionaryDatas = JSON.parse($scope.data.vnfTypeDictionaryDatas);
466                         console.log($scope.vnfTypeDictionaryDatas);
467                 }, function (error) {
468                         console.log("failed");
469                 });
470
471                 PolicyDictionaryService.getVSCLActionDictionaryData(papUrl).then(function (data) {
472                         var j = data;
473                         $scope.data = JSON.parse(j.data);
474                         console.log($scope.data);
475                         $scope.vsclActionDictionaryDatas = JSON.parse($scope.data.vsclActionDictionaryDatas);
476                         console.log($scope.vsclActionDictionaryDatas);
477                 }, function (error) {
478                         console.log("failed");
479                 });
480                 
481             PolicyDictionaryService.getRiskTypeDictionaryData(papUrl).then(function (data) {
482                 var j = data;
483                 $scope.data = JSON.parse(j.data);
484                 console.log($scope.data);
485                 $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas);
486                 console.log($scope.riskTypeDictionaryDatas);
487             }, function (error) {
488                 console.log("failed");
489             });
490             
491             PolicyDictionaryService.getRiskLevelValueData().then(function (data) {
492                 var j = data;
493                 $scope.data = JSON.parse(j.data);
494                 console.log($scope.data);
495                 $scope.riskLevelDatas = JSON.parse($scope.data.riskLevelDatas);
496                 console.log($scope.riskLevelDatas);
497             }, function (error) {
498                 console.log("failed");
499             });
500             
501             PolicyDictionaryService.getGuardValueData().then(function (data) {
502                 var j = data;
503                 $scope.data = JSON.parse(j.data);
504                 console.log($scope.data);
505                 $scope.guardDatas = JSON.parse($scope.data.guardDatas);
506                 console.log($scope.guardDatas);
507             }, function (error) {
508                 console.log("failed");
509             });
510         });
511     
512         $scope.pepActionDictionaryDatas = [];
513
514         $scope.getPepActionValues = function(pepOptionValue){
515                 for (var i = 0; i < $scope.pepOptionsDictionaryDataEntity.length; ++i) {
516             var obj = $scope.pepOptionsDictionaryDataEntity[i];
517             if (obj.pepName == pepOptionValue){
518                 var splitAlarm = obj.actions.split(':#@');
519                 for (var j = 0; j < splitAlarm.length; ++j) {
520                         $scope.pepActionDictionaryDatas.push(splitAlarm[j].split('=#@')[0]);
521                 }
522             }
523         }
524         };
525
526         $scope.saveFaultPolicy = function(policy){
527                 console.log(policy);
528                 var data = {};
529                 var faultData = {};
530                 if($scope.temp.policy.triggerTrapSignatures.length == 1 || $scope.temp.policy.triggerTrapSignatures["Trap1"] != null){
531                         var data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1 }
532                 }
533                 if($scope.temp.policy.triggerTrapSignatures.length == 2 || $scope.temp.policy.triggerTrapSignatures["Trap2"] != null){
534                         var data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1,  trap2 : $scope.temp.policy.triggerTrapSignatures.Trap2}
535                 }
536                 if($scope.temp.policy.triggerTrapSignatures.length == 3 || $scope.temp.policy.triggerTrapSignatures["Trap3"] != null){
537                         var data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1,  trap2 : $scope.temp.policy.triggerTrapSignatures.Trap2,
538                                         trap2 : $scope.temp.policy.triggerTrapSignatures.Trap3}
539                 }
540                 if($scope.temp.policy.triggerTrapSignatures.length == 4 || $scope.temp.policy.triggerTrapSignatures["Trap4"] != null){
541                         var data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1,  trap2 : $scope.temp.policy.triggerTrapSignatures.Trap2,
542                                         trap3 : $scope.temp.policy.triggerTrapSignatures.Trap3,   trap4 : $scope.temp.policy.triggerTrapSignatures.Trap4}
543                 }
544                 if($scope.temp.policy.triggerTrapSignatures.length == 5 || $scope.temp.policy.triggerTrapSignatures["Trap5"] != null){
545                         var data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1,  trap2 : $scope.temp.policy.triggerTrapSignatures.Trap2,
546                                         trap3 : $scope.temp.policy.triggerTrapSignatures.Trap3,   trap4 : $scope.temp.policy.triggerTrapSignatures.Trap4,
547                                         trap5 : $scope.temp.policy.triggerTrapSignatures.Trap5}
548                 }
549                 if($scope.temp.policy.triggerTrapSignatures.length == 6 || $scope.temp.policy.triggerTrapSignatures["Trap6"] != null){
550                         var data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1,  trap2 : $scope.temp.policy.triggerTrapSignatures.Trap2,
551                                         trap3 : $scope.temp.policy.triggerTrapSignatures.Trap3,   trap4 : $scope.temp.policy.triggerTrapSignatures.Trap4,
552                                         trap5 : $scope.temp.policy.triggerTrapSignatures.Trap5, trap6 : $scope.temp.policy.triggerTrapSignatures.Trap6}
553                 }
554
555                 if($scope.temp.policy.triggerfaultSignatures.length == 1 || $scope.temp.policy.triggerfaultSignatures["Fault1"] != null){
556                         var faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1 }
557                 }
558                 if($scope.temp.policy.triggerfaultSignatures.length == 2 || $scope.temp.policy.triggerfaultSignatures["Fault2"] != null){
559                         var faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1,  trap2 : $scope.temp.policy.triggerfaultSignatures.Fault2}
560                 }
561                 if($scope.temp.policy.triggerfaultSignatures.length == 3 || $scope.temp.policy.triggerfaultSignatures["Fault3"] != null){
562                         var faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1,  trap2 : $scope.temp.policy.triggerfaultSignatures.Fault2,
563                                         trap2 : $scope.temp.policy.triggerfaultSignatures.Fault3}
564                 }
565                 if($scope.temp.policy.triggerTrapSignatures.length == 4 || $scope.temp.policy.triggerfaultSignatures["Fault4"] != null){
566                         var faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1,  trap2 : $scope.temp.policy.triggerfaultSignatures.Fault2,
567                                         trap3 : $scope.temp.policy.triggerfaultSignatures.Fault3,   trap4 : $scope.temp.policy.triggerfaultSignatures.Fault4}
568                 }
569                 if($scope.temp.policy.triggerfaultSignatures.length == 5 || $scope.temp.policy.triggerfaultSignatures["Fault5"] != null){
570                         var faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1,  trap2 : $scope.temp.policy.triggerfaultSignatures.Fault2,
571                                         trap3 : $scope.temp.policy.triggerfaultSignatures.Fault3,   trap4 : $scope.temp.policy.triggerfaultSignatures.Fault4,
572                                         trap5 : $scope.temp.policy.triggerfaultSignatures.Fault5}
573                 }
574                 if($scope.temp.policy.triggerfaultSignatures.length == 6 || $scope.temp.policy.triggerfaultSignatures["Fault6"] != null){
575                         var faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1,  trap2 : $scope.temp.policy.triggerfaultSignatures.Fault2,
576                                         trap3 : $scope.temp.policy.triggerfaultSignatures.Fault3,   trap4 : $scope.temp.policy.triggerfaultSignatures.Fault4,
577                                         trap5 : $scope.temp.policy.triggerfaultSignatures.Fault5, trap6 : $scope.temp.policy.triggerfaultSignatures.Fault6}
578                 }
579                 var uuu = "policyController/save_Faultpolicy.htm";
580                 var postData={policyData: policy,
581                                 trapData : data,
582                                 faultData : faultData
583                 };
584                 $.ajax({
585                         type : 'POST',
586                         url : uuu,
587                         dataType: 'json',
588                         contentType: 'application/json',
589                         data: JSON.stringify(postData),
590                         success : function(data){
591                                 $scope.$apply(function(){
592                                         $scope.data=data.data;
593                                         $scope.temp.policy.readOnly = 'true';
594                                         $scope.triggerdisabled = true;
595                                         $scope.verificationdisabled = true;
596                                         Notification.success("Policy Saved Successfully.");
597                                 });
598                                 console.log($scope.data);
599                                 $modalInstance.close();
600
601                         },
602                         error : function(data){
603                                 Notification.error("Error Occured while saving Policy.");
604                         }
605                 });
606         };
607
608         $scope.validatePolicy = function(policy){
609                 console.log(policy);
610                 var uuu = "policyController/validate_policy.htm";
611                 var postData={policyData: policy};
612                 $.ajax({
613                         type : 'POST',
614                         url : uuu,
615                         dataType: 'json',
616                         contentType: 'application/json',
617                         data: JSON.stringify(postData),
618                         success : function(data){
619                                 $scope.$apply(function(){
620                                         $scope.data=data.data.substring(1,8);
621                                                 var size = data.data.length;
622                                                 if($scope.data == 'success'){
623                                                         Notification.success("Validation Success.");
624                                                         if (size > 18){
625                                                                 var displayWarning = data.data.substring(19,size);
626                                                                 window.alert(displayWarning);
627                                                         }
628                                         }else{
629                                                 Notification.error("Validation Failed.");
630                                         }
631
632                                 });
633                                 console.log($scope.data);
634                                 /*$modalInstance.close();*/
635
636                         },
637                         error : function(data){
638                                 Notification.error("Validation Failed.");
639                         }
640                 });
641         };
642         if($scope.connectTriggerTrapsList == undefined){
643                 $scope.connectTriggerTrapsList = [];
644         }
645         if($scope.temp.policy.traptriggerSignatures == undefined){
646                 $scope.temp.policy.traptriggerSignatures = [];
647         }
648         
649         $scope.ItemNo = 0;
650         $scope.TriggerSignatureDatas = [{"triggerSignatures" : $scope.temp.policy.traptriggerSignatures}];
651         $scope.addTriggerButton = function() {
652                 $scope.triggerdisabled = false;
653                 var newItemNo = $scope.temp.policy.traptriggerSignatures.length+1;
654                 $scope.ItemNo = newItemNo;
655                 $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+newItemNo});
656                 $scope.connectTriggerTrapsList.push('Trap'+newItemNo);
657         };
658         $scope.removeTriggerButton = function() {
659                 var lastItem = $scope.temp.policy.traptriggerSignatures.length-1;
660                 $scope.temp.policy.traptriggerSignatures.splice(lastItem);
661                 $scope.connectTriggerTrapsList.splice('Trap'+lastItem);
662         };
663
664         
665         $scope.trapItemNo = 0;
666         $scope.TrapTriggerSignatureDatas = [{"triggermainSignatures" : $scope.temp.policy.triggerTrapSignatures}];
667         $scope.addTrapTriggerButton = function(indexId) {
668                 if(trapCollection.indexOf(indexId) !== -1){
669
670                 }else{
671                         $scope.temp.policy.triggerTrapSignatures[indexId] = [];
672                         trapCollection.push(indexId);
673                 }       
674                 var newTrapItemNo = $scope.temp.policy.triggerTrapSignatures[indexId].length+1;
675                 $scope.trapItemNo = newTrapItemNo;
676                 $scope.temp.policy.triggerTrapSignatures.push($scope.temp.policy.triggerTrapSignatures[indexId].push({'id':'A'+newTrapItemNo}));
677                 if(newTrapItemNo > 1){
678                         var count = newTrapItemNo-1;
679                         $scope.varbindDictionaryDatas.push('A'+count);
680                 }
681         };
682         $scope.removeTrapTriggerButton = function(indexId) {
683                 var lastTrapItem = $scope.temp.policy.triggerTrapSignatures[indexId].length-1;
684                 var checkLastTrapItem = lastTrapItem;
685                 if(checkLastTrapItem == 0){
686                         trapCollection.splice(indexId);
687                 }
688                 $scope.temp.policy.triggerTrapSignatures[indexId].splice(lastTrapItem);
689         };
690
691         if($scope.temp.policy.connecttriggerSignatures == undefined){
692                 $scope.temp.policy.connecttriggerSignatures = [];
693         }
694         
695         $scope.connecttrapItemNo = 0;
696         $scope.TrapConnectTriggerSignatureDatas = [{"connecttriggerSignatures" : $scope.temp.policy.connecttriggerSignatures}];
697         $scope.addTriggerConnectButton = function() {
698                 var newConnectTrapItemNo = $scope.temp.policy.connecttriggerSignatures.length+1;
699                 $scope.connecttrapItemNo = newConnectTrapItemNo;
700                 $scope.temp.policy.connecttriggerSignatures.push({'id':'C'+newConnectTrapItemNo});
701                 if(newConnectTrapItemNo >1){
702                         var count = newConnectTrapItemNo-1;
703                         $scope.connectTriggerTrapsList.push('C'+count);
704                 }      
705         };
706         $scope.removeTriggerConnectButton = function() {
707                 var lastConnectTrapItem = $scope.temp.policy.connecttriggerSignatures.length-1;
708                 $scope.temp.policy.connecttriggerSignatures.splice(lastConnectTrapItem);
709                 if(lastConnectTrapItem  < 1){
710                         var count = lastConnectTrapItem-1;
711                         $scope.connectTriggerTrapsList.splice('C'+count);
712                 }
713         };
714         if($scope.connectTriggerFaultsList == undefined){
715                 $scope.connectTriggerFaultsList = [];
716         }
717         if($scope.temp.policy.faulttriggerSignatures == undefined){
718                 $scope.temp.policy.faulttriggerSignatures = [];
719         }
720         
721         $scope.FaultItemNo = 0;
722         $scope.FaultSignatureDatas = [{"verificationmainSignatures" : $scope.temp.policy.faulttriggerSignatures}];
723         $scope.addVerFaultButton = function() {
724                 var newFaultItemNo = $scope.temp.policy.faulttriggerSignatures.length+1;
725                 $scope.FaultItemNo = newFaultItemNo;
726                 $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+newFaultItemNo});
727                 $scope.connectTriggerFaultsList.push('Fault'+newFaultItemNo);
728         };
729         $scope.removeVerFaultButton = function() {
730                 var lastFaultItem = $scope.temp.policy.faulttriggerSignatures.length-1;
731                 $scope.temp.policy.faulttriggerSignatures.splice(lastFaultItem);
732                 $scope.connectTriggerFaultsList.splice('Fault'+lastFaultItem);
733         };
734         if($scope.temp.policy.triggerfaultSignatures == undefined){
735                 $scope.temp.policy.triggerfaultSignatures = [];
736         }
737         
738         $scope.faultItemNo1 = 0;
739         $scope.FaultTriggerSignatureDatas = [{"verificationSignatures" : $scope.temp.policy.triggerfaultSignatures}];
740         $scope.addVerTriggerButton = function(indexId) {
741                 $scope.verificationdisabled = false;
742                 if(faultCollection.indexOf(indexId) !== -1){
743
744                 }else{
745                         $scope.temp.policy.triggerfaultSignatures[indexId] = [];
746                         faultCollection.push(indexId);
747                 }       
748                 var newFaultItemNo1 = $scope.temp.policy.triggerfaultSignatures[indexId].length+1;
749                 $scope.faultItemNo1 = newFaultItemNo1; 
750                 $scope.temp.policy.triggerfaultSignatures.push($scope.temp.policy.triggerfaultSignatures[indexId].push({'id':'A'+newFaultItemNo1}));
751                 if(newFaultItemNo1 > 1){
752                         var count = newFaultItemNo1-1;
753                         $scope.varbindDictionaryDatas.push('A'+count);
754                 }
755         };
756         $scope.removeVerTriggerButton = function(indexId) {
757                 var lastFaultItem1 = $scope.temp.policy.triggerfaultSignatures[indexId].length-1;
758                 var checkLastFaultItem = lastFaultItem1;
759                 if(checkLastFaultItem == 0){
760                         faultCollection.splice(indexId);
761                 }
762                 $scope.temp.policy.triggerfaultSignatures[indexId].splice(lastFaultItem1);
763         };
764
765         if($scope.temp.policy.connectVerificationSignatures == undefined){
766                 $scope.temp.policy.connectVerificationSignatures = [];
767         }
768         
769         $scope.connectFaultItemNo = 0;
770         $scope.FaultConnectTriggerSignatureDatas = [{"connectVerificationSignatures" : $scope.temp.policy.connectVerificationSignatures}];
771         $scope.addFaultConnectButton = function() {
772                 var newConnectFaultItemNo = $scope.temp.policy.connectVerificationSignatures.length+1;
773                 $scope.connectFaultItemNo = newConnectFaultItemNo;
774                 $scope.temp.policy.connectVerificationSignatures.push({'id':'C'+newConnectFaultItemNo});
775                 if(newConnectFaultItemNo >1){
776                         var count = newConnectFaultItemNo-1;
777                         $scope.connectTriggerFaultsList.push('C'+count);
778                 }  
779         };
780         $scope.removeFaultConnectButton = function() {
781                 var lastConnectFaultItem = $scope.temp.policy.connectVerificationSignatures.length-1;
782                 $scope.temp.policy.connectVerificationSignatures.splice(lastConnectFaultItem);
783                 if(lastConnectFaultItem  < 1){
784                         var count = lastConnectFaultItem-1;
785                         $scope.connectTriggerFaultsList.splice('C'+count);
786                 }
787         };
788
789
790 });