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