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