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