X-Git-Url: https://gerrit.onap.org/r/gitweb?p=policy%2Fengine.git;a=blobdiff_plain;f=POLICY-SDK-APP%2Fsrc%2Fmain%2Fwebapp%2Fapp%2FpolicyApp%2Fpolicy-models%2FEditor%2FPolicyTemplateController%2FDecisionPolicyController.js;h=4d63dbe3fe4364d53e73158de4485c5f3ce027de;hp=f560f4d5806096b50e5c2c6b9bd87c52503a0e9e;hb=a61c10945456dde51397d354379257c7d0d01fb2;hpb=1df87df1af0d215b9ff908dd15089393b9be270b diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/DecisionPolicyController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/DecisionPolicyController.js index f560f4d58..4d63dbe3f 100644 --- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/DecisionPolicyController.js +++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/DecisionPolicyController.js @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP Policy Engine * ================================================================================ - * Copyright (C) 2017-2018 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. @@ -17,414 +17,411 @@ * limitations under the License. * ============LICENSE_END========================================================= */ -angular.module('abs').controller('decisionPolicyController', ['$scope', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification', '$http', function ($scope, PolicyAppService, PolicyNavigator, modalService, $modal, Notification, $http) { +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.disableOnCreate = false; - - 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.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"; - } - - 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); - console.log($scope.data); - $scope.onapNameDictionaryDatas = JSON.parse($scope.data.onapNameDictionaryDatas); - console.log($scope.onapNameDictionaryDatas); - }, 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."); + } + }); + }; + + $scope.validatePolicy = function(policy) { + document.getElementById("validate").innerHTML = ""; + var uuu = "policyController/validate_policy.htm"; + var postData = { + policyData : 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 = []; - } + $.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 == 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=="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(id) { - $scope.temp.policy.yamlparams.blackList = $scope.temp.policy.yamlparams.blackList.filter(function (obj){ - return obj !== 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