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