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