Merge "Fixed TOSCA parsing bugs"
[policy/engine.git] / POLICY-SDK-APP / src / main / webapp / app / policyApp / policy-models / Editor / PolicyTemplateController / DecisionPolicyController.js
index d0c7268..5b2bdb2 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- * ECOMP Policy Engine
+ * ONAP Policy Engine
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
@@ -24,11 +24,18 @@ angular.module('abs').controller('decisionPolicyController', ['$scope', 'PolicyA
     $scope.savebutton = true;
     $scope.refreshCheck = false;
     
+    if(!$scope.temp.policy.editPolicy  && !$scope.temp.policy.readOnly){
+       $scope.temp.policy = {
+                       policyType : "Decision"
+       }
+    };
+    
     $scope.refresh = function(){
        if($scope.refreshCheck){
                $scope.policyNavigator.refresh();
        }
        $scope.modal('createNewPolicy', true);
+       $scope.temp.policy = "";
     };
     
     $scope.modal = function(id, hide) {
@@ -39,12 +46,12 @@ angular.module('abs').controller('decisionPolicyController', ['$scope', 'PolicyA
                $scope.temp.policy.ruleProvider="Custom";
        }
                
-       PolicyAppService.getData('getDictionary/get_EcompNameDataByName').then(function (data) {
+       PolicyAppService.getData('getDictionary/get_OnapNameDataByName').then(function (data) {
                var j = data;
                $scope.data = JSON.parse(j.data);
                console.log($scope.data);
-               $scope.ecompNameDictionaryDatas = JSON.parse($scope.data.ecompNameDictionaryDatas);
-               console.log($scope.ecompNameDictionaryDatas);
+               $scope.onapNameDictionaryDatas = JSON.parse($scope.data.onapNameDictionaryDatas);
+               console.log($scope.onapNameDictionaryDatas);
        }, function (error) {
                console.log("failed");
        });
@@ -79,7 +86,25 @@ angular.module('abs').controller('decisionPolicyController', ['$scope', 'PolicyA
                console.log("failed");
        });
 
+       PolicyAppService.getData('getDictionary/get_RainyDayDictionaryDataByName').then(function (data) {
+               var j = data;
+               $scope.data = JSON.parse(j.data);
+               console.log($scope.data);
+       $scope.rainyDayDictionaryDatas = JSON.parse($scope.data.rainyDayDictionaryDatas);
+               console.log($scope.rainyDayDictionaryDatas);
+       }, function (error) {
+               console.log("failed");
+       });
        
+    PolicyAppService.getData('getDictionary/get_RainyDayDictionaryData').then(function (data) {
+       var j = data;
+       $scope.data = JSON.parse(j.data);
+       console.log($scope.data);
+       $scope.rainyDayDictionaryDataEntity = JSON.parse($scope.data.rainyDayDictionaryDatas);
+       console.log($scope.rainyDayDictionaryDatasEntity);
+    }, function (error) {
+       console.log("failed");
+    });
 
     function extend(obj, src) {
         for (var key in src) {
@@ -162,19 +187,47 @@ angular.module('abs').controller('decisionPolicyController', ['$scope', 'PolicyA
    
     if(!$scope.temp.policy.editPolicy  && !$scope.temp.policy.readOnly){
        $scope.temp.policy.attributes = [];
-         $scope.temp.policy.settings = [];
-        $scope.temp.policy.ruleAlgorithmschoices = [];
+       $scope.temp.policy.settings = [];
+       $scope.temp.policy.ruleAlgorithmschoices = [];
+       if(!$scope.temp.policy.yamlparams){
+               $scope.temp.policy.yamlparams = {};
+       }
+       if(!$scope.temp.policy.yamlparams.targets){
+               $scope.temp.policy.yamlparams.targets = [];
+       }
+       if(!$scope.temp.policy.yamlparams.blackList){
+               $scope.temp.policy.yamlparams.blackList = [];
+       }
+       if(!$scope.temp.policy.rainyday){
+               $scope.temp.policy.rainyday = {};
+       }
+       if(!$scope.temp.policy.rainyday.treatmentTableChoices){
+               $scope.temp.policy.rainyday.treatmentTableChoices = [];
+       }
+    
     }else if($scope.temp.policy.ruleProvider=="Custom"){
           if($scope.temp.policy.attributes.length == 0){
-                  $scope.temp.policy.attributes = [];
+                  $scope.temp.policy.attributes = [];    
           }
           if($scope.temp.policy.settings.length == 0){
                   $scope.temp.policy.settings = [];
           }
-          if($scope.temp.policy.ruleAlgorithmschoices.length == 0){
+          if($scope.temp.policy.ruleAlgorithmschoices == null || $scope.temp.policy.ruleAlgorithmschoices.length == 0){
                   $scope.temp.policy.ruleAlgorithmschoices = [];
           }
-   }
+    }else if($scope.temp.policy.ruleProvider=="GUARD_BL_YAML"){
+          if($scope.temp.policy.yamlparams.blackList.length==0){
+                  $scope.temp.policy.yamlparams.blackList = [];
+          }
+    }else if($scope.temp.policy.ruleProvider=="GUARD_YAML"){
+       if($scope.temp.policy.yamlparams.targets.length==0){
+                  $scope.temp.policy.yamlparams.targets = [];
+               }
+    }else if($scope.temp.policy.ruleProvider=="Rainy_Day"){
+       if($scope.temp.policy.rainyday.treatmentTableChoices == null || $scope.temp.policy.rainyday.treatmentTableChoices.length == 0){
+               $scope.temp.policy.rainyday.treatmentTableChoices = [];
+       }
+    }
     $scope.attributeDatas = [{"attributes" : $scope.temp.policy.attributes}];
     $scope.addNewChoice = function() {
       var newItemNo = $scope.temp.policy.attributes.length+1;
@@ -185,7 +238,6 @@ angular.module('abs').controller('decisionPolicyController', ['$scope', 'PolicyA
       $scope.temp.policy.attributes.splice(lastItem);
     };
     
-  
     $scope.settingsDatas = [{"settings" : $scope.temp.policy.settings}];
     $scope.addNewSettingsChoice = function() {
       var newItemNo = $scope.temp.policy.settings.length+1;
@@ -196,6 +248,54 @@ angular.module('abs').controller('decisionPolicyController', ['$scope', 'PolicyA
       $scope.temp.policy.settings.splice(lastItem);
     };
     
+    $scope.addNewTarget = function(){
+       $scope.temp.policy.yamlparams.targets.push('');
+    };
+    $scope.removeTarget = function(){
+       var lastItem = $scope.temp.policy.yamlparams.targets.length-1;
+       $scope.temp.policy.yamlparams.targets.splice(lastItem);
+    };
+    
+    $scope.addNewBL = function() {
+       $scope.temp.policy.yamlparams.blackList.push('');
+    };
+    $scope.removeBL = function() {
+       var lastItem = $scope.temp.policy.yamlparams.blackList.length-1;
+       $scope.temp.policy.yamlparams.blackList.splice(lastItem);
+    };
+    
+    $scope.treatmentDatas = [{"treatmentValues" : $scope.temp.policy.rainyday.treatmentTableChoices}];
+    $scope.addNewTreatment = function() {
+       $scope.temp.policy.rainyday.treatmentTableChoices.push({});
+    };
+    $scope.removeTreatment = function() {
+       var lastItem = $scope.temp.policy.rainyday.treatmentTableChoices.length-1;
+       $scope.temp.policy.rainyday.treatmentTableChoices.splice(lastItem);
+    };
+    
+       $scope.workstepDictionaryDatas = [];
+       $scope.getWorkstepValues = function(bbidValue){
+               for (var i = 0; i < $scope.rainyDayDictionaryDataEntity.length; ++i) {
+           var obj = $scope.rainyDayDictionaryDataEntity[i];
+           if (obj.bbid == bbidValue){
+               $scope.workstepDictionaryDatas.push(obj.workstep);
+           }
+       }
+       };
+       
+       $scope.allowedTreatmentsDatas = [];
+       $scope.getTreatmentValues = function(bbidValue, workstepValue){
+               for (var i = 0; i < $scope.rainyDayDictionaryDataEntity.length; ++i) {
+           var obj = $scope.rainyDayDictionaryDataEntity[i];
+           if (obj.bbid == bbidValue && obj.workstep == workstepValue){
+               var splitAlarm = obj.treatments.split(',');
+               for (var j = 0; j < splitAlarm.length; ++j) {
+                       $scope.allowedTreatmentsDatas.push(splitAlarm[j]);
+               }
+           }
+       }       
+       };
+    
     $scope.ItemNo = 0;
     $scope.ruleAlgorithmDatas = [{"ruleAlgorithms" : $scope.temp.policy.ruleAlgorithmschoices }];