Fixed Sonar issues for Console Logs
[policy/engine.git] / POLICY-SDK-APP / src / main / webapp / app / policyApp / policy-models / Editor / PolicyTemplateController / DecisionPolicyController.js
index 72b6f06..4d63dbe 100644 (file)
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * ECOMP Policy Engine
+ * ONAP Policy Engine
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * limitations under the License.
  * ============LICENSE_END=========================================================
  */
-angular.module('abs').controller('decisionPolicyController', ['$scope', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification', function ($scope, PolicyAppService, PolicyNavigator, modalService, $modal, Notification) {
+angular.module('abs').controller('decisionPolicyController', 
+    [ '$scope', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification', '$http', 
+    function($scope, PolicyAppService, PolicyNavigator, modalService, $modal, Notification, $http) {
     $("#dialog").hide();
-    
+
     $scope.policyNavigator;
     $scope.savebutton = true;
     $scope.refreshCheck = false;
-    
-    $scope.refresh = function(){
-       if($scope.refreshCheck){
-               $scope.policyNavigator.refresh();
-       }
-       $scope.modal('createNewPolicy', true);
-       $scope.temp.policy = "";
+    $scope.disableOnCreate = false;
+    $scope.notRawPolicy = true;
+
+    if (!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly) {
+    $scope.disableOnCreate = true;
+    $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) {
-        return $('#' + id).modal(hide ? 'hide' : 'show');
+    return $('#' + id).modal(hide ? 'hide' : 'show');
     };
 
-       if($scope.temp.policy.ruleProvider==undefined){
-               $scope.temp.policy.ruleProvider="Custom";
-       }
-               
-       PolicyAppService.getData('getDictionary/get_EcompNameDataByName').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);
-       }, function (error) {
-               console.log("failed");
-       });
-
-       PolicyAppService.getData('getDictionary/get_SettingsDictionaryDataByName').then(function (data) {
-               var j = data;
-               $scope.data = JSON.parse(j.data);
-               console.log($scope.data);
-               $scope.settingsDictionaryDatas = JSON.parse($scope.data.settingsDictionaryDatas);
-               console.log($scope.settingsDictionaryDatas);
-       }, function (error) {
-               console.log("failed");
-       });
-
-       PolicyAppService.getData('get_FunctionDefinitionDataByName').then(function (data) {
-               var j = data;
-               $scope.data = JSON.parse(j.data);
-               console.log($scope.data);
-               $scope.functionDefinitionDatas = JSON.parse($scope.data.functionDefinitionDatas);
-               console.log($scope.functionDefinitionDatas);
-       }, function (error) {
-               console.log("failed");
-       });
-
-       PolicyAppService.getData('getDictionary/get_AttributeDatabyAttributeName').then(function (data) {
-               var j = data;
-               $scope.data = JSON.parse(j.data);
-               console.log($scope.data);
-               $scope.attributeDictionaryDatas = JSON.parse($scope.data.attributeDictionaryDatas);
-               console.log($scope.attributeDictionaryDatas);
-       }, function (error) {
-               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");
+    if ($scope.temp.policy.ruleProvider == undefined) {
+    $scope.temp.policy.ruleProvider = "Custom";
+    }
+
+    if ($scope.temp.policy.blackListEntryType == undefined) {
+    $scope.temp.policy.blackListEntryType = "Use Manual Entry";
+    }
+
+    PolicyAppService.getData('getDictionary/get_OnapNameDataByName').then(function(data) {
+    var j = data;
+    $scope.data = JSON.parse(j.data);
+    $scope.onapNameDictionaryDatas = JSON.parse($scope.data.onapNameDictionaryDatas);
     });
 
-    function extend(obj, src) {
-        for (var key in src) {
-            if (src.hasOwnProperty(key)) obj[key] = src[key];
-        }
-        return obj;
+    PolicyAppService.getData('getDictionary/get_SettingsDictionaryDataByName').then(function(data) {
+    var j = data;
+    $scope.data = JSON.parse(j.data);
+    $scope.settingsDictionaryDatas = JSON.parse($scope.data.settingsDictionaryDatas);
+    });
+
+    PolicyAppService.getData('get_FunctionDefinitionDataByName').then(function(data) {
+    var j = data;
+    $scope.data = JSON.parse(j.data);
+    $scope.functionDefinitionDatas = JSON.parse($scope.data.functionDefinitionDatas);
+    });
+
+    PolicyAppService.getData('getDictionary/get_AttributeDatabyAttributeName').then(function(data) {
+    var j = data;
+    $scope.data = JSON.parse(j.data);
+    $scope.attributeDictionaryDatas = JSON.parse($scope.data.attributeDictionaryDatas);
+    });
+
+    PolicyAppService.getData('getDictionary/get_RainyDayDictionaryDataByName').then(function(data) {
+    var j = data;
+    $scope.data = JSON.parse(j.data);
+    $scope.rainyDayDictionaryDatas = JSON.parse($scope.data.rainyDayDictionaryDatas);
+    });
+
+    PolicyAppService.getData('getDictionary/get_RainyDayDictionaryData').then(function(data) {
+    var j = data;
+    $scope.data = JSON.parse(j.data);
+    $scope.rainyDayDictionaryDataEntity = JSON.parse($scope.data.rainyDayDictionaryDatas);
+    });
+
+    $scope.saveDecisionPolicy = function(policy) {
+    if (policy.itemContent != undefined) {
+        $scope.refreshCheck = true;
+        $scope.policyNavigator = policy.itemContent;
+        policy.itemContent = "";
     }
-    
-    $scope.saveDecisionPolicy = function(policy){
-       if(policy.itemContent != undefined){
-               $scope.refreshCheck = true; 
-               $scope.policyNavigator = policy.itemContent;
-               policy.itemContent = "";
-       }
-       $scope.savebutton = false;
-        console.log(policy);
-        var uuu = "policycreation/save_policy";
-               var postData={policyData: policy};
-               $.ajax({
-                       type : 'POST',
-                       url : uuu,
-                       dataType: 'json',
-                       contentType: 'application/json',
-                       data: JSON.stringify(postData),
-                       success : function(data){
-                               $scope.$apply(function(){
-                                       $scope.data=data.policyData;
-                                       if($scope.data == 'success'){
-                                               $scope.temp.policy.readOnly = 'true';
-                                               Notification.success("Policy Saved Successfully.");     
-                                       }else if ($scope.data == 'PolicyExists'){
-                                               $scope.savebutton = true;
-                                               Notification.error("Policy Already Exists with Same Name in Scope.");
-                                       }       
-                               });
-                               console.log($scope.data);
-                               
-                       },
-                       error : function(data){
-                               Notification.error("Error Occured while saving Policy.");
-                       }
-               });
+    $scope.savebutton = false;
+    var uuu = "policycreation/save_policy";
+    var postData = {
+        policyData : policy
     };
-    
-    $scope.validatePolicy = function(policy){
-       console.log(policy);
-       document.getElementById("validate").innerHTML = "";
-         var uuu = "policyController/validate_policy.htm";
-               var postData={policyData: policy};
-               $.ajax({
-                       type : 'POST',
-                       url : uuu,
-                       dataType: 'json',
-                       contentType: 'application/json',
-                       data: JSON.stringify(postData),
-                       success : function(data){
-                               $scope.$apply(function(){
-                                       $scope.validateData = data.data.replace(/\"/g, "");
-                                               $scope.data=data.data;
-                                               if($scope.data == '"success"'){
-                                                       Notification.success("Validation Success.");
-                                                       $scope.savebutton = false;
-                                               }else{
-                                                       Notification.error("Validation Failed.");
-                                                       document.getElementById("validate").innerHTML = $scope.validateData;
-                                                       document.getElementById("validate").style.color = "white";
-                                                       document.getElementById("validate").style.backgroundColor = "red";
-                                                       $scope.savebutton = true;
-                                               }
-                                               
-                               });
-                               console.log($scope.data);
-                       },
-                       error : function(data){
-                               Notification.error("Validation Failed.");
-                               $scope.savebutton = true; 
-                       }
-               });
+    $.ajax({
+        type : 'POST',
+        url : uuu,
+        dataType : 'json',
+        contentType : 'application/json',
+        data : JSON.stringify(postData),
+        success : function(data) {
+        $scope.$apply(function() {
+            $scope.data = data.policyData;
+            if ($scope.data == 'success') {
+            $scope.temp.policy.readOnly = 'true';
+            Notification.success("Policy Saved Successfully.");
+            } else if ($scope.data == 'PolicyExists') {
+            $scope.savebutton = true;
+            Notification.error("Policy Already Exists with Same Name in Scope.");
+            }
+        });
+
+        },
+        error : function(data) {
+        Notification.error("Error Occured while saving Policy.");
+        }
+    });
     };
-   
-    if(!$scope.temp.policy.editPolicy  && !$scope.temp.policy.readOnly){
-       $scope.temp.policy.attributes = [];
-       $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 = [];
-       }
+
+    $scope.validatePolicy = function(policy) {
+    document.getElementById("validate").innerHTML = "";
+    var uuu = "policyController/validate_policy.htm";
+    var postData = {
+        policyData : policy
+    };
+    $.ajax({
+        type : 'POST',
+        url : uuu,
+        dataType : 'json',
+        contentType : 'application/json',
+        data : JSON.stringify(postData),
+        success : function(data) {
+        $scope.$apply(function() {
+            $scope.validateData = data.data.replace(/\"/g, "");
+            $scope.data = data.data;
+            if ($scope.data == '"success"') {
+            Notification.success("Validation Success.");
+            $scope.savebutton = false;
+            } else {
+            Notification.error("Validation Failed.");
+            document.getElementById("validate").innerHTML = $scope.validateData;
+            document.getElementById("validate").style.color = "white";
+            document.getElementById("validate").style.backgroundColor = "red";
+            $scope.savebutton = true;
+            }
+
+        });
+        },
+        error : function(data) {
+        Notification.error("Validation Failed.");
+        $scope.savebutton = true;
+        }
+    });
+    };
+
+    if (!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly) {
+    $scope.temp.policy.attributes = [];
+    $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 = [];
+    }
+    if ($scope.temp.policy.settings.length == 0) {
+        $scope.temp.policy.settings = [];
+    }
+    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 == null || $scope.temp.policy.yamlparams.blackList.length == 0) {
+        $scope.temp.policy.yamlparams.blackList = [];
+    }
+    if ($scope.temp.policy.blackListEntries == null || $scope.temp.policy.blackListEntries.length == 0) {
+        $scope.temp.policy.blackListEntries = [];
+    }
+    $scope.blackListEntries = [];
+    $scope.temp.policy.appendBlackListEntries = [];
+    $scope.blackListEntries = arrayUnique($scope.temp.policy.blackListEntries.concat($scope.temp.policy.yamlparams.blackList));
     
-    }else if($scope.temp.policy.ruleProvider=="Custom"){
-          if($scope.temp.policy.attributes.length == 0){
-                  $scope.temp.policy.attributes = [];    
-          }
-          if($scope.temp.policy.settings.length == 0){
-                  $scope.temp.policy.settings = [];
-          }
-          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 = [];
-       }
+    }else if($scope.temp.policy.ruleProvider=="GUARD_YAML" || $scope.temp.policy.ruleProvider=="GUARD_MIN_MAX"){
+        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.attributeDatas = [ {
+    "attributes" : $scope.temp.policy.attributes
+    } ];
     $scope.addNewChoice = function() {
-      var newItemNo = $scope.temp.policy.attributes.length+1;
-      $scope.temp.policy.attributes.push({'id':'choice'+newItemNo});
-    };    
+    var newItemNo = $scope.temp.policy.attributes.length + 1;
+    $scope.temp.policy.attributes.push({
+        'id' : 'choice' + newItemNo
+    });
+    };
     $scope.removeChoice = function() {
-      var lastItem = $scope.temp.policy.attributes.length-1;
-      $scope.temp.policy.attributes.splice(lastItem);
+    var lastItem = $scope.temp.policy.attributes.length - 1;
+    $scope.temp.policy.attributes.splice(lastItem);
     };
-    
-    $scope.settingsDatas = [{"settings" : $scope.temp.policy.settings}];
+
+    $scope.settingsDatas = [ {
+    "settings" : $scope.temp.policy.settings
+    } ];
     $scope.addNewSettingsChoice = function() {
-      var newItemNo = $scope.temp.policy.settings.length+1;
-      $scope.temp.policy.settings.push({'id':'choice'+newItemNo});
-    };    
+    var newItemNo = $scope.temp.policy.settings.length + 1;
+    $scope.temp.policy.settings.push({
+        'id' : 'choice' + newItemNo
+    });
+    };
     $scope.removeSettingsChoice = function() {
-      var lastItem = $scope.temp.policy.settings.length-1;
-      $scope.temp.policy.settings.splice(lastItem);
+    var lastItem = $scope.temp.policy.settings.length - 1;
+    $scope.temp.policy.settings.splice(lastItem);
     };
-    
-    $scope.addNewTarget = function(){
-       $scope.temp.policy.yamlparams.targets.push('');
+
+    $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.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.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.removeBL = function(id) {
+        $scope.temp.policy.yamlparams.blackList = $scope.temp.policy.yamlparams.blackList.filter(function (obj){
+        return obj !== id;
+    });
     };
+
+    $scope.treatmentDatas = [ {
+    "treatmentValues" : $scope.temp.policy.rainyday.treatmentTableChoices
+    } ];
     
-    $scope.treatmentDatas = [{"treatmentValues" : $scope.temp.policy.rainyday.treatmentTableChoices}];
     $scope.addNewTreatment = function() {
-       $scope.temp.policy.rainyday.treatmentTableChoices.push({});
+    $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);
+    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.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 }];
-    
+    $scope.ruleAlgorithmDatas = [ {
+    "ruleAlgorithms" : $scope.temp.policy.ruleAlgorithmschoices
+    } ];
+
     $scope.addNewRuleAlgorithm = function() {
-       if($scope.temp.policy.ruleAlgorithmschoices != null){
-               var newItemNo = $scope.temp.policy.ruleAlgorithmschoices.length+1;
-       }else{
-               var newItemNo = 1;
-       }
-       if(newItemNo > 1){
-               var value = newItemNo-1;
-               $scope.attributeDictionaryDatas.push('A'+value);
-       }
-       $scope.temp.policy.ruleAlgorithmschoices.push({'id':'A'+newItemNo});
+    if ($scope.temp.policy.ruleAlgorithmschoices != null) {
+        var newItemNo = $scope.temp.policy.ruleAlgorithmschoices.length + 1;
+    } else {
+        var newItemNo = 1;
+    }
+    if (newItemNo > 1) {
+        var value = newItemNo - 1;
+        $scope.attributeDictionaryDatas.push('A' + value);
+    }
+    $scope.temp.policy.ruleAlgorithmschoices.push({
+        'id' : 'A' + newItemNo
+    });
     };
-    
+
     $scope.removeRuleAlgorithm = function() {
-      var lastItem = $scope.temp.policy.ruleAlgorithmschoices.length-1;
-      $scope.temp.policy.ruleAlgorithmschoices.splice(lastItem);
+    var lastItem = $scope.temp.policy.ruleAlgorithmschoices.length - 1;
+    $scope.temp.policy.ruleAlgorithmschoices.splice(lastItem);
     };
-    
+
     $scope.providerListener = function(ruleProvider) {
-       if (ruleProvider!="Custom"){
-               $scope.temp.policy.ruleAlgorithmschoices  = [];
-               $scope.temp.policy.settings = [];
-               $scope.temp.policy.attributes = [];
-       }
+    if (ruleProvider != "Custom") {
+        $scope.temp.policy.ruleAlgorithmschoices = [];
+        $scope.temp.policy.settings = [];
+        $scope.temp.policy.attributes = [];
+    }
+    if (ruleProvider === "Raw") {
+        $scope.notRawPolicy = false;
+    }
+    };
+
+    $scope.importButton = true;
+    var fd;
+    $scope.uploadBLFile = function(files) {
+    fd = new FormData();
+    fd.append("file", files[0]);
+    var fileExtension = files[0].name.split(".")[1];
+    if (fileExtension == "xls") {
+        $scope.importButton = false;
+        $scope.$apply();
+    } else {
+        Notification.error("Upload the BlackList file which extends with .xls format.");
+    }
+    };
+
+    function arrayUnique(array) {
+    var a = array.concat();
+    for (var i = 0; i < a.length; ++i) {
+        for (var j = i + 1; j < a.length; ++j) {
+        if (a[i] === a[j])
+            a.splice(j--, 1);
+        }
+    }
+    return a;
+    }
+
+    $scope.submitUpload = function() {
+    $http.post("policycreation/importBlackListForDecisionPolicy", fd, {
+        withCredentials : false,
+        headers : {
+        'Content-Type' : undefined
+        },
+        transformRequest : angular.identity
+    }).success(function(data) {
+        $scope.data = JSON.parse(data.data);
+        $scope.temp.policy.blackListEntries = $scope.data.blackListEntries;
+        if ($scope.temp.policy.blackListEntries[0] !== "error") {
+        $scope.blackListEntries = arrayUnique($scope.temp.policy.blackListEntries.concat($scope.temp.policy.yamlparams.blackList));
+        $scope.temp.policy.appendBlackListEntries = $scope.data.appendBlackListEntries;
+        $scope.blackListEntries = $scope.blackListEntries.filter(function(obj) {
+            return !$scope.temp.policy.appendBlackListEntries.includes(obj);
+        });
+        if ($scope.blackListEntries.length == 0) {
+            $scope.validateButton = true;
+            Notification.error("Black Lists are empty. Minimum one entry required.");
+        } else {
+            $scope.temp.policy.blackListEntries = $scope.blackListEntries;
+            Notification.success("Blacklist File Uploaded Successfully.");
+            $scope.validateButton = false;
+            $scope.importButton = true;
+        }
+        } else {
+        Notification.error("Blacklist File Upload Failed." + $scope.temp.policy.blackListEntries[1]);
+        }
+    }).error(function(data) {
+        Notification.error("Blacklist File Upload Failed.");
+    });
+    };
+
+    $scope.initializeBlackList = function() {
+    if ($scope.temp.policy.blackListEntryType === "Use File Upload") {
+        $scope.validateButton = true;
+    } else {
+        $scope.validateButton = false;
+    }
+    $("#importFile").val('');
+    };
+
+    $scope.exportBlackListEntries = function() {
+    var uuu = "policycreation/exportDecisionBlackListEntries";
+    var postData = {
+        policyData : $scope.temp.policy,
+        date : $scope.temp.model.modifiedDate,
+        version : $scope.temp.model.version
+    };
+    $.ajax({
+        type : 'POST',
+        url : uuu,
+        dataType : 'json',
+        contentType : 'application/json',
+        data : JSON.stringify(postData),
+        success : function(data) {
+        $scope.$apply(function() {
+            $scope.data = data.data;
+            var url = '../' + $scope.data;
+            window.location = url;
+            Notification.success("BlackList Entries Exported Successfully.");
+        });
+        },
+        error : function(data) {
+        Notification.error("Error Occured while Exporting BlackList Entries.");
+        }
+    });
     };
-}]);
\ No newline at end of file
+} ]);