diff options
Diffstat (limited to 'POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor')
13 files changed, 4595 insertions, 4929 deletions
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/ActionPolicyController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/ActionPolicyController.js index a9097d559..80c11463f 100644 --- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/ActionPolicyController.js +++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/ActionPolicyController.js @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * 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. @@ -28,7 +28,7 @@ app.controller('actionPolicyController', ['$scope', 'PolicyAppService', 'policyN $scope.temp.policy = { policyType : "Action" } - }; + } $scope.refresh = function(){ if($scope.refreshCheck){ @@ -36,7 +36,7 @@ app.controller('actionPolicyController', ['$scope', 'PolicyAppService', 'policyN } $scope.modal('createNewPolicy', true); $scope.temp.policy = ""; - }; + } $scope.modal = function(id, hide) { return $('#' + id).modal(hide ? 'hide' : 'show'); @@ -71,13 +71,6 @@ app.controller('actionPolicyController', ['$scope', 'PolicyAppService', 'policyN }, function (error) { console.log("failed"); }); - - function extend(obj, src) { - for (var key in src) { - if (src.hasOwnProperty(key)) obj[key] = src[key]; - } - return obj; - } $scope.saveActionPolicy = function(policy){ if(policy.itemContent != undefined){ @@ -191,4 +184,4 @@ app.controller('actionPolicyController', ['$scope', 'PolicyAppService', 'policyN $scope.temp.policy.ruleAlgorithmschoices.splice(lastItem); }; -}]);
\ No newline at end of file +}]); diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/BRMSParamPolicyController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/BRMSParamPolicyController.js index 22511c5a7..35fb3cb81 100644 --- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/BRMSParamPolicyController.js +++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/BRMSParamPolicyController.js @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * 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. @@ -17,7 +17,9 @@ * limitations under the License. * ============LICENSE_END========================================================= */ -angular.module('abs').controller('brmsParamPolicyController', ['$scope', '$window', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification', function ($scope, $window, PolicyAppService, PolicyNavigator, modalService, $modal, Notification) { +angular.module('abs').controller('brmsParamPolicyController', + ['$scope', '$window', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification', + function ($scope, $window, PolicyAppService, PolicyNavigator, modalService, $modal, Notification) { $("#dialog").hide(); $scope.policyNavigator; @@ -25,18 +27,18 @@ angular.module('abs').controller('brmsParamPolicyController', ['$scope', '$windo $scope.refreshCheck = false; if(!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly){ - $scope.temp.policy = { - policyType : "Config", - configPolicyType : "BRMS_Param" - } - }; + $scope.temp.policy = { + policyType : "Config", + configPolicyType : "BRMS_Param" + } + } $scope.refresh = function(){ - if($scope.refreshCheck){ - $scope.policyNavigator.refresh(); - } - $scope.modal('createNewPolicy', true); - $scope.temp.policy = ""; + if($scope.refreshCheck){ + $scope.policyNavigator.refresh(); + } + $scope.modal('createNewPolicy', true); + $scope.temp.policy = ""; }; $scope.modal = function(id, hide) { @@ -44,66 +46,49 @@ angular.module('abs').controller('brmsParamPolicyController', ['$scope', '$windo }; $('#ttlDate').datepicker({ - dateFormat: 'dd/mm/yy', - changeMonth: true, - changeYear: true, - onSelect: function(date) { - angular.element($('#ttlDate')).triggerHandler('input'); - } + dateFormat: 'dd/mm/yy', + changeMonth: true, + changeYear: true, + onSelect: function(date) { + angular.element($('#ttlDate')).triggerHandler('input'); + } }); $scope.validateSuccess = true; var readValue = $scope.temp.policy.readOnly; if(readValue){ - $scope.validateSuccess = false; + $scope.validateSuccess = false; } PolicyAppService.getData('getDictionary/get_BRMSControllerDataByName').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.brmsControllerDatas = JSON.parse($scope.data.brmsControllerDictionaryDatas); - console.log($scope.brmsControllerDatas); - }, function (error) { - console.log("failed"); + var j = data; + $scope.data = JSON.parse(j.data); + $scope.brmsControllerDatas = JSON.parse($scope.data.brmsControllerDictionaryDatas); }); PolicyAppService.getData('getDictionary/get_BRMSDependencyDataByName').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.brmsDependencyDatas = JSON.parse($scope.data.brmsDependencyDictionaryDatas); - console.log($scope.brmsDependencyDatas); - }, function (error) { - console.log("failed"); + var j = data; + $scope.data = JSON.parse(j.data); + $scope.brmsDependencyDatas = JSON.parse($scope.data.brmsDependencyDictionaryDatas); }); PolicyAppService.getData('getDictionary/get_BRMSParamDataByName').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.brmsParamDictionaryDatas = JSON.parse($scope.data.brmsParamDictionaryDatas); - console.log($scope.brmsParamDictionaryDatas); - }, function (error) { - console.log("failed"); + var j = data; + $scope.data = JSON.parse(j.data); + $scope.brmsParamDictionaryDatas = JSON.parse($scope.data.brmsParamDictionaryDatas); }); PolicyAppService.getData('getDictionary/get_RiskTypeDataByName').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas); - console.log($scope.riskTypeDictionaryDatas); - }, function (error) { - console.log("failed"); + var j = data; + $scope.data = JSON.parse(j.data); + $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas); }); $scope.temp.policy.dynamicLayoutMap = {}; $scope.addDataToFields = function(ruleName){ - console.log(ruleName); if(ruleName != null){ - var uuu = "policyController/getBRMSTemplateData.htm"; - var postData={policyData: ruleName}; + var uuu = "policyController/getBRMSTemplateData.htm"; + var postData={policyData: ruleName}; $.ajax({ type : 'POST', url : uuu, @@ -112,12 +97,11 @@ angular.module('abs').controller('brmsParamPolicyController', ['$scope', '$windo data: JSON.stringify(postData), success : function(data){ $scope.$apply(function(){ - $scope.temp.policy.dynamicLayoutMap = data.policyData; + $scope.temp.policy.dynamicLayoutMap = data.policyData; }); - console.log( $scope.temp.policy.dynamicLayoutMap); }, error : function(data){ - alert("Error While Retriving the Template Layout Pattren."); + Notification.error("Error While Retriving the Template Layout Pattren."); } }); } @@ -126,7 +110,6 @@ angular.module('abs').controller('brmsParamPolicyController', ['$scope', '$windo $scope.showbrmsrule = true; $scope.ShowRule = function(policy){ - console.log(policy); var uuu = "policyController/ViewBRMSParamPolicyRule.htm"; var postData={policyData: policy}; $.ajax({ @@ -136,30 +119,30 @@ angular.module('abs').controller('brmsParamPolicyController', ['$scope', '$windo contentType: 'application/json', data: JSON.stringify(postData), success : function(data){ - $scope.showbrmsrule = false; - $scope.validateSuccess = true; + $scope.showbrmsrule = false; + $scope.validateSuccess = true; $scope.$apply(function(){ - $scope.datarule = data.policyData; + $scope.datarule = data.policyData; }); }, error : function(data){ - Notification.error("Error Occured while Showing Rule."); + Notification.error("Error Occured while Showing Rule."); } }); }; $scope.hideRule = function(){ - $scope.showbrmsrule = true; - $scope.validateSuccess = false; - $scope.apply(); + $scope.showbrmsrule = true; + $scope.validateSuccess = false; + $scope.apply(); }; $scope.saveBrmsParamPolicy = function(policy){ - if(policy.itemContent != undefined){ - $scope.refreshCheck = true; - $scope.policyNavigator = policy.itemContent; - policy.itemContent = ""; - } + if(policy.itemContent != undefined){ + $scope.refreshCheck = true; + $scope.policyNavigator = policy.itemContent; + policy.itemContent = ""; + } $scope.savebutton = false; var uuu = "policycreation/save_policy"; var postData={policyData: policy}; @@ -173,83 +156,73 @@ angular.module('abs').controller('brmsParamPolicyController', ['$scope', '$windo $scope.$apply(function(){ $scope.data=data.policyData; if($scope.data == 'success'){ - $scope.temp.policy.readOnly = 'true'; - $scope.safetyChecker = data.policyData.split("#")[2]; - if ($scope.safetyChecker!=undefined) { - Notification.success($scope.safetyChecker); - } - Notification.success("Policy Saved Successfully."); + $scope.temp.policy.readOnly = 'true'; + $scope.safetyChecker = data.policyData.split("#")[2]; + if ($scope.safetyChecker!=undefined) { + Notification.success($scope.safetyChecker); + } + Notification.success("Policy Saved Successfully."); }else if ($scope.data == 'PolicyExists'){ - $scope.savebutton = true; - Notification.error("Policy Already Exists with Same Name in Scope."); - } + $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 = true; + Notification.error("Error Occured while saving Policy."); + $scope.savebutton = true; } }); }; $scope.validatePolicy = function(policy){ - console.log(policy); - document.getElementById("validate").innerHTML = ""; + 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.substring(1,8); - var size = data.data.length; - if($scope.data == 'success'){ - Notification.success("Validation Success."); - $scope.savebutton = false; - if (size > 18){ - var displayWarning = data.data.substring(19,size); - document.getElementById("validate").innerHTML = "Safe Policy Warning Message : "+displayWarning; - document.getElementById("validate").style.color = "white"; - document.getElementById("validate").style.backgroundColor = "skyblue"; - } - $scope.validateSuccess = 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; - } - }); + 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.substring(1,8); + var size = data.data.length; + if($scope.data == 'success'){ + Notification.success("Validation Success."); + $scope.savebutton = false; + if (size > 18){ + var displayWarning = data.data.substring(19,size); + document.getElementById("validate").innerHTML = "Safe Policy Warning Message : "+displayWarning; + document.getElementById("validate").style.color = "white"; + document.getElementById("validate").style.backgroundColor = "skyblue"; + } + $scope.validateSuccess = 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; + } + }); }; - function extend(obj, src) { - for (var key in src) { - if (src.hasOwnProperty(key)) obj[key] = src[key]; - } - return obj; - } - if(!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly){ - $scope.temp.policy.attributes = []; + $scope.temp.policy.attributes = []; }else{ - if($scope.temp.policy.attributes.length == 0){ - $scope.temp.policy.attributes = []; - } + if($scope.temp.policy.attributes.length == 0){ + $scope.temp.policy.attributes = []; + } } $scope.attributeDatas = [{"attributes" : $scope.temp.policy.attributes}]; @@ -261,4 +234,4 @@ angular.module('abs').controller('brmsParamPolicyController', ['$scope', '$windo var lastItem = $scope.temp.policy.attributes.length-1; $scope.temp.policy.attributes.splice(lastItem); }; -}]);
\ No newline at end of file +}]); diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/BRMSRawPolicyController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/BRMSRawPolicyController.js index 6061b1ef8..695cb423d 100644 --- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/BRMSRawPolicyController.js +++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/BRMSRawPolicyController.js @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * 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. @@ -17,7 +17,9 @@ * limitations under the License. * ============LICENSE_END========================================================= */ -angular.module('abs').controller('brmsRawPolicyController', ['$scope', '$window', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification', function ($scope, $window, PolicyAppService, PolicyNavigator, modalService, $modal, Notification) { +angular.module('abs').controller('brmsRawPolicyController', + ['$scope', '$window', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification', + function ($scope, $window, PolicyAppService, PolicyNavigator, modalService, $modal, Notification) { $("#dialog").hide(); $scope.policyNavigator; @@ -25,18 +27,18 @@ angular.module('abs').controller('brmsRawPolicyController', ['$scope', '$window' $scope.refreshCheck = false; if(!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly){ - $scope.temp.policy = { - policyType : "Config", - configPolicyType : "BRMS_Raw" - } - }; + $scope.temp.policy = { + policyType : "Config", + configPolicyType : "BRMS_Raw" + } + } $scope.refresh = function(){ - if($scope.refreshCheck){ - $scope.policyNavigator.refresh(); - } - $scope.modal('createNewPolicy', true); - $scope.temp.policy = ""; + if($scope.refreshCheck){ + $scope.policyNavigator.refresh(); + } + $scope.modal('createNewPolicy', true); + $scope.temp.policy = ""; }; $scope.modal = function(id, hide) { @@ -44,134 +46,112 @@ angular.module('abs').controller('brmsRawPolicyController', ['$scope', '$window' }; $('#ttlDate').datepicker({ - dateFormat: 'dd/mm/yy', - changeMonth: true, - changeYear: true, - onSelect: function(date) { - angular.element($('#ttlDate')).triggerHandler('input'); - } + dateFormat: 'dd/mm/yy', + changeMonth: true, + changeYear: true, + onSelect: function(date) { + angular.element($('#ttlDate')).triggerHandler('input'); + } }); PolicyAppService.getData('getDictionary/get_BRMSControllerDataByName').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.brmsControllerDatas = JSON.parse($scope.data.brmsControllerDictionaryDatas); - console.log($scope.brmsControllerDatas); - }, function (error) { - console.log("failed"); + var j = data; + $scope.data = JSON.parse(j.data); + $scope.brmsControllerDatas = JSON.parse($scope.data.brmsControllerDictionaryDatas); }); PolicyAppService.getData('getDictionary/get_BRMSDependencyDataByName').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.brmsDependencyDatas = JSON.parse($scope.data.brmsDependencyDictionaryDatas); - console.log($scope.brmsDependencyDatas); - }, function (error) { - console.log("failed"); + var j = data; + $scope.data = JSON.parse(j.data); + $scope.brmsDependencyDatas = JSON.parse($scope.data.brmsDependencyDictionaryDatas); }); PolicyAppService.getData('getDictionary/get_RiskTypeDataByName').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas); - console.log($scope.riskTypeDictionaryDatas); - }, function (error) { - console.log("failed"); + var j = data; + $scope.data = JSON.parse(j.data); + $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas); }); $scope.saveBrmsRawPolicy = function(policy){ - if(policy.itemContent != undefined){ - $scope.refreshCheck = true; - $scope.policyNavigator = policy.itemContent; - policy.itemContent = ""; - } + if(policy.itemContent != undefined){ + $scope.refreshCheck = true; + $scope.policyNavigator = policy.itemContent; + policy.itemContent = ""; + } $scope.savebutton = false; 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 = true; - } - }); + 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."); + } + }); + }, + error : function(data){ + Notification.error("Error Occured while saving Policy."); + $scope.savebutton = true; + } + }); }; $scope.validatePolicy = function(policy){ - console.log(policy); - document.getElementById("validate").innerHTML = ""; + 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.substring(1,8); - var size = data.data.length; - if($scope.data == 'success'){ - Notification.success("Validation Success."); - $scope.savebutton = false; - if (size > 18){ - var displayWarning = data.data.substring(19,size); - document.getElementById("validate").innerHTML = "Safe Policy Warning Message : "+displayWarning; - document.getElementById("validate").style.color = "white"; - document.getElementById("validate").style.backgroundColor = "skyblue"; - } - }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."); - } - }); + 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.substring(1,8); + var size = data.data.length; + if($scope.data == 'success'){ + Notification.success("Validation Success."); + $scope.savebutton = false; + if (size > 18){ + var displayWarning = data.data.substring(19,size); + document.getElementById("validate").innerHTML = "Safe Policy Warning Message : "+displayWarning; + document.getElementById("validate").style.color = "white"; + document.getElementById("validate").style.backgroundColor = "skyblue"; + } + }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."); + } + }); }; - function extend(obj, src) { - for (var key in src) { - if (src.hasOwnProperty(key)) obj[key] = src[key]; - } - return obj; - } - if(!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly){ - $scope.temp.policy.attributes = []; + $scope.temp.policy.attributes = []; }else{ - if($scope.temp.policy.attributes.length == 0){ - $scope.temp.policy.attributes = []; - } + if($scope.temp.policy.attributes.length == 0){ + $scope.temp.policy.attributes = []; + } } $scope.attributeDatas = [{"attributes" : $scope.temp.policy.attributes}]; $scope.addNewChoice = function() { @@ -182,4 +162,4 @@ angular.module('abs').controller('brmsRawPolicyController', ['$scope', '$window' var lastItem = $scope.temp.policy.attributes.length-1; $scope.temp.policy.attributes.splice(lastItem); }; -}]);
\ No newline at end of file +}]); diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/BaseConfigPolicyController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/BaseConfigPolicyController.js index 02e10bddd..f950e7434 100644 --- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/BaseConfigPolicyController.js +++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/BaseConfigPolicyController.js @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * 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. @@ -30,7 +30,7 @@ app.controller('baseConfigController', ['$scope', 'PolicyAppService', 'policyNav policyType : "Config", configPolicyType : "Base" } - }; + } $scope.refresh = function(){ if($scope.refreshCheck){ @@ -177,4 +177,4 @@ app.controller('baseConfigController', ['$scope', 'PolicyAppService', 'policyNav var lastItem = $scope.temp.policy.attributes.length-1; $scope.temp.policy.attributes.splice(lastItem); }; -}]);
\ No newline at end of file +}]); diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/ClosedLoopFaultController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/ClosedLoopFaultController.js index ebc9001ab..a8368a05e 100644 --- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/ClosedLoopFaultController.js +++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/ClosedLoopFaultController.js @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * 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. @@ -17,26 +17,28 @@ * limitations under the License. * ============LICENSE_END========================================================= */ -angular.module("abs").controller('clFaultController', ['$scope', '$window', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification', function($scope, $window, PolicyAppService, PolicyNavigator, modalService, $modal, Notification){ - $("#dialog").hide(); +angular.module("abs").controller('clFaultController', + ['$scope', '$window', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification', + function($scope, $window, PolicyAppService, PolicyNavigator, modalService, $modal, Notification){ + $("#dialog").hide(); - $scope.policyNavigator; - $scope.savebutton = true; - $scope.refreshCheck = false; + $scope.policyNavigator; + $scope.savebutton = true; + $scope.refreshCheck = false; - if(!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly){ - $scope.temp.policy = { - policyType : "Config", - configPolicyType : "ClosedLoop_Fault" - } - }; + if(!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly){ + $scope.temp.policy = { + policyType : "Config", + configPolicyType : "ClosedLoop_Fault" + } + } $scope.refresh = function(){ - if($scope.refreshCheck){ - $scope.policyNavigator.refresh(); - } - $scope.modal('createNewPolicy', true); - $scope.temp.policy = ""; + if($scope.refreshCheck){ + $scope.policyNavigator.refresh(); + } + $scope.modal('createNewPolicy', true); + $scope.temp.policy = ""; }; $scope.modal = function(id, hide) { @@ -44,784 +46,749 @@ angular.module("abs").controller('clFaultController', ['$scope', '$window', 'Pol }; $('#ttlDate').datepicker({ - dateFormat: 'dd/mm/yy', - changeMonth: true, - changeYear: true, - onSelect: function(date) { - angular.element($('#ttlDate')).triggerHandler('input'); - } + dateFormat: 'dd/mm/yy', + changeMonth: true, + changeYear: true, + onSelect: function(date) { + angular.element($('#ttlDate')).triggerHandler('input'); + } }); - - if($scope.temp.policy.triggerTrapSignatures == undefined){ - $scope.temp.policy.triggerTrapSignatures = []; - $scope.temp.policy.triggerfaultSignatures = []; - } - var trapCollection = []; - var faultCollection = []; - if($scope.varbindDictionaryDatas == undefined){ - $scope.varbindDictionaryDatas = []; - } - - $scope.init = function(data){ - if(data != undefined && $scope.temp.policy.triggerTrapSignatures.length == 0){ - $scope.jsonData = data; - if($scope.jsonData.triggerSignaturesUsedForUI != null){ - if($scope.jsonData.triggerSignaturesUsedForUI.signatures != null){ - $scope.temp.policy.triggerTrapSignatures = {Trap1 : [], Trap2 : [], Trap3 : [], Trap4 : [], Trap5 : [], Trap6 : []}; - var splitTraps = $scope.jsonData.triggerSignaturesUsedForUI.signatures.split("#!?!"); - if(splitTraps.length > 1){ - $scope.triggerdisabled = false; - var indexId = "Trap1"; - trapCollection.push(indexId); - $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = []; - $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+1}); - var splitTrap1 = splitTraps[0]; - var splitEachTrap = splitTrap1.split("#!"); - for(i = 0 ; i < splitEachTrap.length; i++){ - var splitEachRow = splitEachTrap[i].split("@!"); - var count = i +1; - if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){ - var notBox = splitEachRow[0]; - var trigger1 = splitEachRow[1]; - var operatorBox = splitEachRow[2]; - var trigger2 = splitEachRow[3]; - }else{ - var notBox = ''; - var trigger1 = splitEachRow[0]; - var operatorBox = splitEachRow[1]; - var trigger2 = splitEachRow[2]; - } - $scope.varbindDictionaryDatas.push('A'+count); - $scope.temp.policy.triggerTrapSignatures["Trap1"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2}); - } - } - if(splitTraps.length > 2){ - var indexId = "Trap2"; - trapCollection.push(indexId); - $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = []; - $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+2}); - var splitTrap1 = splitTraps[1]; - var splitEachTrap = splitTrap1.split("#!"); - for(i = 0 ; i < splitEachTrap.length; i++){ - var splitEachRow = splitEachTrap[i].split("@!"); - var count = i +1; - if(splitEachRow[0] == 'NOT' || splitEachRow[0] == ''){ - var notBox = splitEachRow[0]; - var trigger1 = splitEachRow[1]; - var operatorBox = splitEachRow[2]; - var trigger2 = splitEachRow[3]; - }else{ - var notBox = ''; - var trigger1 = splitEachRow[0]; - var operatorBox = splitEachRow[1]; - var trigger2 = splitEachRow[2]; - } - $scope.varbindDictionaryDatas.push('A'+count); - $scope.temp.policy.triggerTrapSignatures["Trap2"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2}); - } - } - if(splitTraps.length > 3){ - var indexId = "Trap3"; - trapCollection.push(indexId); - $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = []; - $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+3}); - var splitTrap1 = splitTraps[2]; - var splitEachTrap = splitTrap1.split("#!"); - for(i = 0 ; i < splitEachTrap.length; i++){ - var splitEachRow = splitEachTrap[i].split("@!"); - var count = i +1; - if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){ - var notBox = splitEachRow[0]; - var trigger1 = splitEachRow[1]; - var operatorBox = splitEachRow[2]; - var trigger2 = splitEachRow[3]; - }else{ - var notBox = ''; - var trigger1 = splitEachRow[0]; - var operatorBox = splitEachRow[1]; - var trigger2 = splitEachRow[2]; - } - $scope.varbindDictionaryDatas.push('A'+count); - $scope.temp.policy.triggerTrapSignatures["Trap3"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2}); - } - } - if(splitTraps.length > 4){ - var indexId = "Trap4"; - trapCollection.push(indexId); - $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = []; - $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+4}); - var splitTrap1 = splitTraps[3]; - var splitEachTrap = splitTrap1.split("#!"); - for(i = 0 ; i < splitEachTrap.length; i++){ - var splitEachRow = splitEachTrap[i].split("@!"); - var count = i +1; - if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){ - var notBox = splitEachRow[0]; - var trigger1 = splitEachRow[1]; - var operatorBox = splitEachRow[2]; - var trigger2 = splitEachRow[3]; - }else{ - var notBox = ''; - var trigger1 = splitEachRow[0]; - var operatorBox = splitEachRow[1]; - var trigger2 = splitEachRow[2]; - } - $scope.varbindDictionaryDatas.push('A'+count); - $scope.temp.policy.triggerTrapSignatures["Trap4"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2}); - } - } - if(splitTraps.length > 5){ - var indexId = "Trap5"; - trapCollection.push(indexId); - $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = []; - $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+5}); - var splitTrap1 = splitTraps[4]; - var splitEachTrap = splitTrap1.split("#!"); - for(i = 0 ; i < splitEachTrap.length; i++){ - var splitEachRow = splitEachTrap[i].split("@!"); - var count = i +1; - if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){ - var notBox = splitEachRow[0]; - var trigger1 = splitEachRow[1]; - var operatorBox = splitEachRow[2]; - var trigger2 = splitEachRow[3]; - }else{ - var notBox = ''; - var trigger1 = splitEachRow[0]; - var operatorBox = splitEachRow[1]; - var trigger2 = splitEachRow[2]; - } - $scope.varbindDictionaryDatas.push('A'+count); - $scope.temp.policy.triggerTrapSignatures["Trap5"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2}); - } - } - if(splitTraps.length > 6){ - var indexId = "Trap6"; - trapCollection.push(indexId); - $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = []; - $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+6}); - var splitTrap1 = splitTraps[5]; - var splitEachTrap = splitTrap1.split("#!"); - for(i = 0 ; i < splitEachTrap.length; i++){ - var splitEachRow = splitEachTrap[i].split("@!"); - var count = i +1; - if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){ - var notBox = splitEachRow[0]; - var trigger1 = splitEachRow[1]; - var operatorBox = splitEachRow[2]; - var trigger2 = splitEachRow[3]; - }else{ - var notBox = ''; - var trigger1 = splitEachRow[0]; - var operatorBox = splitEachRow[1]; - var trigger2 = splitEachRow[2]; - } - $scope.varbindDictionaryDatas.push('A'+count); - $scope.temp.policy.triggerTrapSignatures["Trap6"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2}); - } - } - if($scope.jsonData.triggerSignaturesUsedForUI.connectSignatures != null){ - var splitConnectTraps = $scope.jsonData.triggerSignaturesUsedForUI.connectSignatures.split("#!?!"); - for(i=0; i < splitConnectTraps.length; i++){ - if(splitConnectTraps[i] != ""){ - var newConnectTrapItemNo = i+1; - var connects = splitConnectTraps[i].split("@!"); - if(connects[0] == 'NOT' || connects[0] ==''){ - var notBox = connects[0]; - var connectTrap1 = connects[1]; - var trapCount1 = connects[2]; - var operatorBox = connects[3]; - var connectTrap2 = connects[4]; - var trapCount2 = connects[5]; - }else{ - var notBox = ''; - var connectTrap1 = connects[0]; - var trapCount1 = connects[1]; - var operatorBox = connects[2]; - var connectTrap2 = connects[3]; - var trapCount2 = connects[4]; - } - $scope.temp.policy.connecttriggerSignatures.push({'id':'C'+newConnectTrapItemNo,'notBox' : notBox , 'connectTrap1': connectTrap1,'trapCount1' : trapCount1, - 'operatorBox': operatorBox, 'connectTrap2': connectTrap2,'trapCount2' : trapCount2}); - } - } - } - } - } - if($scope.jsonData.verificationSignaturesUsedForUI != null){ - if($scope.jsonData.verificationSignaturesUsedForUI.signatures != null){ - $scope.temp.policy.triggerfaultSignatures = {Fault1 : [], Fault2 : [], Fault3 : [], Fault4 : [], Fault5 : [], Fault6 : []}; - var splitTraps = $scope.jsonData.verificationSignaturesUsedForUI.signatures.split("#!?!"); - if(splitTraps.length > 1){ - $scope.verificationdisabled = false; - var indexId = "Fault1"; - faultCollection.push(indexId); - $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = []; - $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+1}); - var splitTrap1 = splitTraps[0]; - var splitEachTrap = splitTrap1.split("#!"); - for(i = 0 ; i < splitEachTrap.length; i++){ - var splitEachRow = splitEachTrap[i].split("@!"); - var count = i +1; - if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){ - var notBox = splitEachRow[0]; - var trigger1 = splitEachRow[1]; - var operatorBox = splitEachRow[2]; - var trigger2 = splitEachRow[3]; - }else{ - var notBox = ''; - var trigger1 = splitEachRow[0]; - var operatorBox = splitEachRow[1]; - var trigger2 = splitEachRow[2]; - } - $scope.varbindDictionaryDatas.push('A'+count); - $scope.temp.policy.triggerfaultSignatures["Fault1"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2}); - } - } - if(splitTraps.length > 2){ - var indexId = "Fault2"; - faultCollection.push(indexId); - $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = []; - $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+2}); - var splitTrap1 = splitTraps[1]; - var splitEachTrap = splitTrap1.split("#!"); - for(i = 0 ; i < splitEachTrap.length; i++){ - var splitEachRow = splitEachTrap[i].split("@!"); - var count = i +1; - if(splitEachRow[0] == 'NOT' || splitEachRow[0] == ''){ - var notBox = splitEachRow[0]; - var trigger1 = splitEachRow[1]; - var operatorBox = splitEachRow[2]; - var trigger2 = splitEachRow[3]; - }else{ - var notBox = ''; - var trigger1 = splitEachRow[0]; - var operatorBox = splitEachRow[1]; - var trigger2 = splitEachRow[2]; - } - $scope.varbindDictionaryDatas.push('A'+count); - $scope.temp.policy.triggerfaultSignatures["Fault2"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2}); - } - } - if(splitTraps.length > 3){ - var indexId = "Fault3"; - faultCollection.push(indexId); - $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = []; - $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+3}); - var splitTrap1 = splitTraps[2]; - var splitEachTrap = splitTrap1.split("#!"); - for(i = 0 ; i < splitEachTrap.length; i++){ - var splitEachRow = splitEachTrap[i].split("@!"); - var count = i +1; - if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){ - var notBox = splitEachRow[0]; - var trigger1 = splitEachRow[1]; - var operatorBox = splitEachRow[2]; - var trigger2 = splitEachRow[3]; - }else{ - var notBox = ''; - var trigger1 = splitEachRow[0]; - var operatorBox = splitEachRow[1]; - var trigger2 = splitEachRow[2]; - } - $scope.varbindDictionaryDatas.push('A'+count); - $scope.temp.policy.triggerfaultSignatures["Fault3"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2}); - } - } - if(splitTraps.length > 4){ - var indexId = "Fault4"; - faultCollection.push(indexId); - $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = []; - $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+4}); - var splitTrap1 = splitTraps[3]; - var splitEachTrap = splitTrap1.split("#!"); - for(i = 0 ; i < splitEachTrap.length; i++){ - var splitEachRow = splitEachTrap[i].split("@!"); - var count = i +1; - if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){ - var notBox = splitEachRow[0]; - var trigger1 = splitEachRow[1]; - var operatorBox = splitEachRow[2]; - var trigger2 = splitEachRow[3]; - }else{ - var notBox = ''; - var trigger1 = splitEachRow[0]; - var operatorBox = splitEachRow[1]; - var trigger2 = splitEachRow[2]; - } - $scope.varbindDictionaryDatas.push('A'+count); - $scope.temp.policy.triggerfaultSignatures["Fault4"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2}); - } - } - if(splitTraps.length > 5){ - var indexId = "Fault5"; - faultCollection.push(indexId); - $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = []; - $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+5}); - var splitTrap1 = splitTraps[4]; - var splitEachTrap = splitTrap1.split("#!"); - for(i = 0 ; i < splitEachTrap.length; i++){ - var splitEachRow = splitEachTrap[i].split("@!"); - var count = i +1; - if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){ - var notBox = splitEachRow[0]; - var trigger1 = splitEachRow[1]; - var operatorBox = splitEachRow[2]; - var trigger2 = splitEachRow[3]; - }else{ - var notBox = ''; - var trigger1 = splitEachRow[0]; - var operatorBox = splitEachRow[1]; - var trigger2 = splitEachRow[2]; - } - $scope.varbindDictionaryDatas.push('A'+count); - $scope.temp.policy.triggerfaultSignatures["Fault5"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2}); - } - } - if(splitTraps.length > 6){ - var indexId = "Fault6"; - faultCollection.push(indexId); - $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = []; - $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+6}); - var splitTrap1 = splitTraps[5]; - var splitEachTrap = splitTrap1.split("#!"); - for(i = 0 ; i < splitEachTrap.length; i++){ - var splitEachRow = splitEachTrap[i].split("@!"); - var count = i +1; - if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){ - var notBox = splitEachRow[0]; - var trigger1 = splitEachRow[1]; - var operatorBox = splitEachRow[2]; - var trigger2 = splitEachRow[3]; - }else{ - var notBox = ''; - var trigger1 = splitEachRow[0]; - var operatorBox = splitEachRow[1]; - var trigger2 = splitEachRow[2]; - } - $scope.varbindDictionaryDatas.push('A'+count); - $scope.temp.policy.triggerfaultSignatures["Fault6"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2}); - } - } + + if($scope.temp.policy.triggerTrapSignatures == undefined){ + $scope.temp.policy.triggerTrapSignatures = []; + $scope.temp.policy.triggerfaultSignatures = []; + } + var trapCollection = []; + var faultCollection = []; + if($scope.varbindDictionaryDatas == undefined){ + $scope.varbindDictionaryDatas = []; + } + + $scope.init = function(data){ + if(data != undefined && $scope.temp.policy.triggerTrapSignatures.length == 0){ + $scope.jsonData = data; + if($scope.jsonData.triggerSignaturesUsedForUI != null){ + if($scope.jsonData.triggerSignaturesUsedForUI.signatures != null){ + $scope.temp.policy.triggerTrapSignatures = {Trap1 : [], Trap2 : [], Trap3 : [], Trap4 : [], Trap5 : [], Trap6 : []}; + var splitTraps = $scope.jsonData.triggerSignaturesUsedForUI.signatures.split("#!?!"); + if(splitTraps.length > 1){ + $scope.triggerdisabled = false; + var indexId = "Trap1"; + trapCollection.push(indexId); + $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = []; + $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+1}); + var splitTrap1 = splitTraps[0]; + var splitEachTrap = splitTrap1.split("#!"); + for(i = 0 ; i < splitEachTrap.length; i++){ + var splitEachRow = splitEachTrap[i].split("@!"); + var count = i +1; + if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){ + var notBox = splitEachRow[0]; + var trigger1 = splitEachRow[1]; + var operatorBox = splitEachRow[2]; + var trigger2 = splitEachRow[3]; + }else{ + var notBox = ''; + var trigger1 = splitEachRow[0]; + var operatorBox = splitEachRow[1]; + var trigger2 = splitEachRow[2]; + } + $scope.varbindDictionaryDatas.push('A'+count); + $scope.temp.policy.triggerTrapSignatures["Trap1"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2}); + } + } + if(splitTraps.length > 2){ + var indexId = "Trap2"; + trapCollection.push(indexId); + $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = []; + $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+2}); + var splitTrap1 = splitTraps[1]; + var splitEachTrap = splitTrap1.split("#!"); + for(i = 0 ; i < splitEachTrap.length; i++){ + var splitEachRow = splitEachTrap[i].split("@!"); + var count = i +1; + if(splitEachRow[0] == 'NOT' || splitEachRow[0] == ''){ + var notBox = splitEachRow[0]; + var trigger1 = splitEachRow[1]; + var operatorBox = splitEachRow[2]; + var trigger2 = splitEachRow[3]; + }else{ + var notBox = ''; + var trigger1 = splitEachRow[0]; + var operatorBox = splitEachRow[1]; + var trigger2 = splitEachRow[2]; + } + $scope.varbindDictionaryDatas.push('A'+count); + $scope.temp.policy.triggerTrapSignatures["Trap2"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2}); + } + } + if(splitTraps.length > 3){ + var indexId = "Trap3"; + trapCollection.push(indexId); + $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = []; + $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+3}); + var splitTrap1 = splitTraps[2]; + var splitEachTrap = splitTrap1.split("#!"); + for(i = 0 ; i < splitEachTrap.length; i++){ + var splitEachRow = splitEachTrap[i].split("@!"); + var count = i +1; + if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){ + var notBox = splitEachRow[0]; + var trigger1 = splitEachRow[1]; + var operatorBox = splitEachRow[2]; + var trigger2 = splitEachRow[3]; + }else{ + var notBox = ''; + var trigger1 = splitEachRow[0]; + var operatorBox = splitEachRow[1]; + var trigger2 = splitEachRow[2]; + } + $scope.varbindDictionaryDatas.push('A'+count); + $scope.temp.policy.triggerTrapSignatures["Trap3"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2}); + } + } + if(splitTraps.length > 4){ + var indexId = "Trap4"; + trapCollection.push(indexId); + $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = []; + $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+4}); + var splitTrap1 = splitTraps[3]; + var splitEachTrap = splitTrap1.split("#!"); + for(i = 0 ; i < splitEachTrap.length; i++){ + var splitEachRow = splitEachTrap[i].split("@!"); + var count = i +1; + if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){ + var notBox = splitEachRow[0]; + var trigger1 = splitEachRow[1]; + var operatorBox = splitEachRow[2]; + var trigger2 = splitEachRow[3]; + }else{ + var notBox = ''; + var trigger1 = splitEachRow[0]; + var operatorBox = splitEachRow[1]; + var trigger2 = splitEachRow[2]; + } + $scope.varbindDictionaryDatas.push('A'+count); + $scope.temp.policy.triggerTrapSignatures["Trap4"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2}); + } + } + if(splitTraps.length > 5){ + var indexId = "Trap5"; + trapCollection.push(indexId); + $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = []; + $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+5}); + var splitTrap1 = splitTraps[4]; + var splitEachTrap = splitTrap1.split("#!"); + for(i = 0 ; i < splitEachTrap.length; i++){ + var splitEachRow = splitEachTrap[i].split("@!"); + var count = i +1; + if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){ + var notBox = splitEachRow[0]; + var trigger1 = splitEachRow[1]; + var operatorBox = splitEachRow[2]; + var trigger2 = splitEachRow[3]; + }else{ + var notBox = ''; + var trigger1 = splitEachRow[0]; + var operatorBox = splitEachRow[1]; + var trigger2 = splitEachRow[2]; + } + $scope.varbindDictionaryDatas.push('A'+count); + $scope.temp.policy.triggerTrapSignatures["Trap5"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2}); + } + } + if(splitTraps.length > 6){ + var indexId = "Trap6"; + trapCollection.push(indexId); + $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = []; + $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+6}); + var splitTrap1 = splitTraps[5]; + var splitEachTrap = splitTrap1.split("#!"); + for(i = 0 ; i < splitEachTrap.length; i++){ + var splitEachRow = splitEachTrap[i].split("@!"); + var count = i +1; + if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){ + var notBox = splitEachRow[0]; + var trigger1 = splitEachRow[1]; + var operatorBox = splitEachRow[2]; + var trigger2 = splitEachRow[3]; + }else{ + var notBox = ''; + var trigger1 = splitEachRow[0]; + var operatorBox = splitEachRow[1]; + var trigger2 = splitEachRow[2]; + } + $scope.varbindDictionaryDatas.push('A'+count); + $scope.temp.policy.triggerTrapSignatures["Trap6"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2}); + } + } + if($scope.jsonData.triggerSignaturesUsedForUI.connectSignatures != null){ + var splitConnectTraps = $scope.jsonData.triggerSignaturesUsedForUI.connectSignatures.split("#!?!"); + for(i=0; i < splitConnectTraps.length; i++){ + if(splitConnectTraps[i] != ""){ + var newConnectTrapItemNo = i+1; + var connects = splitConnectTraps[i].split("@!"); + if(connects[0] == 'NOT' || connects[0] ==''){ + var notBox = connects[0]; + var connectTrap1 = connects[1]; + var trapCount1 = connects[2]; + var operatorBox = connects[3]; + var connectTrap2 = connects[4]; + var trapCount2 = connects[5]; + }else{ + var notBox = ''; + var connectTrap1 = connects[0]; + var trapCount1 = connects[1]; + var operatorBox = connects[2]; + var connectTrap2 = connects[3]; + var trapCount2 = connects[4]; + } + $scope.temp.policy.connecttriggerSignatures.push({'id':'C'+newConnectTrapItemNo,'notBox' : notBox , 'connectTrap1': connectTrap1,'trapCount1' : trapCount1, + 'operatorBox': operatorBox, 'connectTrap2': connectTrap2,'trapCount2' : trapCount2}); + } + } + } + } + } + if($scope.jsonData.verificationSignaturesUsedForUI != null){ + if($scope.jsonData.verificationSignaturesUsedForUI.signatures != null){ + $scope.temp.policy.triggerfaultSignatures = {Fault1 : [], Fault2 : [], Fault3 : [], Fault4 : [], Fault5 : [], Fault6 : []}; + var splitTraps = $scope.jsonData.verificationSignaturesUsedForUI.signatures.split("#!?!"); + if(splitTraps.length > 1){ + $scope.verificationdisabled = false; + var indexId = "Fault1"; + faultCollection.push(indexId); + $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = []; + $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+1}); + var splitTrap1 = splitTraps[0]; + var splitEachTrap = splitTrap1.split("#!"); + for(i = 0 ; i < splitEachTrap.length; i++){ + var splitEachRow = splitEachTrap[i].split("@!"); + var count = i +1; + if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){ + var notBox = splitEachRow[0]; + var trigger1 = splitEachRow[1]; + var operatorBox = splitEachRow[2]; + var trigger2 = splitEachRow[3]; + }else{ + var notBox = ''; + var trigger1 = splitEachRow[0]; + var operatorBox = splitEachRow[1]; + var trigger2 = splitEachRow[2]; + } + $scope.varbindDictionaryDatas.push('A'+count); + $scope.temp.policy.triggerfaultSignatures["Fault1"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2}); + } + } + if(splitTraps.length > 2){ + var indexId = "Fault2"; + faultCollection.push(indexId); + $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = []; + $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+2}); + var splitTrap1 = splitTraps[1]; + var splitEachTrap = splitTrap1.split("#!"); + for(i = 0 ; i < splitEachTrap.length; i++){ + var splitEachRow = splitEachTrap[i].split("@!"); + var count = i +1; + if(splitEachRow[0] == 'NOT' || splitEachRow[0] == ''){ + var notBox = splitEachRow[0]; + var trigger1 = splitEachRow[1]; + var operatorBox = splitEachRow[2]; + var trigger2 = splitEachRow[3]; + }else{ + var notBox = ''; + var trigger1 = splitEachRow[0]; + var operatorBox = splitEachRow[1]; + var trigger2 = splitEachRow[2]; + } + $scope.varbindDictionaryDatas.push('A'+count); + $scope.temp.policy.triggerfaultSignatures["Fault2"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2}); + } + } + if(splitTraps.length > 3){ + var indexId = "Fault3"; + faultCollection.push(indexId); + $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = []; + $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+3}); + var splitTrap1 = splitTraps[2]; + var splitEachTrap = splitTrap1.split("#!"); + for(i = 0 ; i < splitEachTrap.length; i++){ + var splitEachRow = splitEachTrap[i].split("@!"); + var count = i +1; + if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){ + var notBox = splitEachRow[0]; + var trigger1 = splitEachRow[1]; + var operatorBox = splitEachRow[2]; + var trigger2 = splitEachRow[3]; + }else{ + var notBox = ''; + var trigger1 = splitEachRow[0]; + var operatorBox = splitEachRow[1]; + var trigger2 = splitEachRow[2]; + } + $scope.varbindDictionaryDatas.push('A'+count); + $scope.temp.policy.triggerfaultSignatures["Fault3"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2}); + } + } + if(splitTraps.length > 4){ + var indexId = "Fault4"; + faultCollection.push(indexId); + $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = []; + $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+4}); + var splitTrap1 = splitTraps[3]; + var splitEachTrap = splitTrap1.split("#!"); + for(i = 0 ; i < splitEachTrap.length; i++){ + var splitEachRow = splitEachTrap[i].split("@!"); + var count = i +1; + if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){ + var notBox = splitEachRow[0]; + var trigger1 = splitEachRow[1]; + var operatorBox = splitEachRow[2]; + var trigger2 = splitEachRow[3]; + }else{ + var notBox = ''; + var trigger1 = splitEachRow[0]; + var operatorBox = splitEachRow[1]; + var trigger2 = splitEachRow[2]; + } + $scope.varbindDictionaryDatas.push('A'+count); + $scope.temp.policy.triggerfaultSignatures["Fault4"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2}); + } + } + if(splitTraps.length > 5){ + var indexId = "Fault5"; + faultCollection.push(indexId); + $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = []; + $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+5}); + var splitTrap1 = splitTraps[4]; + var splitEachTrap = splitTrap1.split("#!"); + for(i = 0 ; i < splitEachTrap.length; i++){ + var splitEachRow = splitEachTrap[i].split("@!"); + var count = i +1; + if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){ + var notBox = splitEachRow[0]; + var trigger1 = splitEachRow[1]; + var operatorBox = splitEachRow[2]; + var trigger2 = splitEachRow[3]; + }else{ + var notBox = ''; + var trigger1 = splitEachRow[0]; + var operatorBox = splitEachRow[1]; + var trigger2 = splitEachRow[2]; + } + $scope.varbindDictionaryDatas.push('A'+count); + $scope.temp.policy.triggerfaultSignatures["Fault5"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2}); + } + } + if(splitTraps.length > 6){ + var indexId = "Fault6"; + faultCollection.push(indexId); + $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = []; + $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+6}); + var splitTrap1 = splitTraps[5]; + var splitEachTrap = splitTrap1.split("#!"); + for(i = 0 ; i < splitEachTrap.length; i++){ + var splitEachRow = splitEachTrap[i].split("@!"); + var count = i +1; + if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){ + var notBox = splitEachRow[0]; + var trigger1 = splitEachRow[1]; + var operatorBox = splitEachRow[2]; + var trigger2 = splitEachRow[3]; + }else{ + var notBox = ''; + var trigger1 = splitEachRow[0]; + var operatorBox = splitEachRow[1]; + var trigger2 = splitEachRow[2]; + } + $scope.varbindDictionaryDatas.push('A'+count); + $scope.temp.policy.triggerfaultSignatures["Fault6"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2}); + } + } - if($scope.jsonData.verificationSignaturesUsedForUI.connectSignatures != null){ - var splitConnectTraps = $scope.jsonData.verificationSignaturesUsedForUI.connectSignatures.split("#!?!"); - for(i=0; i < splitConnectTraps.length; i++){ - if(splitConnectTraps[i] != ""){ - var newConnectTrapItemNo = i+1; - var connects = splitConnectTraps[i].split("@!"); - if(connects[0] == 'NOT' || connects[0] ==''){ - var notBox = connects[0]; - var connectTrap1 = connects[1]; - var trapCount1 = connects[2]; - var operatorBox = connects[3]; - var connectTrap2 = connects[4]; - var trapCount2 = connects[5]; - }else{ - var notBox = ''; - var connectTrap1 = connects[0]; - var trapCount1 = connects[1]; - var operatorBox = connects[2]; - var connectTrap2 = connects[3]; - var trapCount2 = connects[4]; - } - $scope.temp.policy.connectVerificationSignatures.push({'id':'C'+newConnectTrapItemNo,'notBox' : notBox , 'connectTrap1': connectTrap1,'trapCount1' : trapCount1, - 'operatorBox': operatorBox, 'connectTrap2': connectTrap2,'trapCount2' : trapCount2}); - } - } - } - } - } - } + if($scope.jsonData.verificationSignaturesUsedForUI.connectSignatures != null){ + var splitConnectTraps = $scope.jsonData.verificationSignaturesUsedForUI.connectSignatures.split("#!?!"); + for(i=0; i < splitConnectTraps.length; i++){ + if(splitConnectTraps[i] != ""){ + var newConnectTrapItemNo = i+1; + var connects = splitConnectTraps[i].split("@!"); + if(connects[0] == 'NOT' || connects[0] ==''){ + var notBox = connects[0]; + var connectTrap1 = connects[1]; + var trapCount1 = connects[2]; + var operatorBox = connects[3]; + var connectTrap2 = connects[4]; + var trapCount2 = connects[5]; + }else{ + var notBox = ''; + var connectTrap1 = connects[0]; + var trapCount1 = connects[1]; + var operatorBox = connects[2]; + var connectTrap2 = connects[3]; + var trapCount2 = connects[4]; + } + $scope.temp.policy.connectVerificationSignatures.push({'id':'C'+newConnectTrapItemNo,'notBox' : notBox , 'connectTrap1': connectTrap1,'trapCount1' : trapCount1, + 'operatorBox': operatorBox, 'connectTrap2': connectTrap2,'trapCount2' : trapCount2}); + } + } + } + } + } + } - }; + }; - if($scope.temp.policy.readOnly){ - $scope.triggerdisabled = true; - $scope.verificationdisabled = true; - }else{ - $scope.triggerdisabled = false; - $scope.verificationdisabled = false; - } - + if($scope.temp.policy.readOnly){ + $scope.triggerdisabled = true; + $scope.verificationdisabled = true; + }else{ + $scope.triggerdisabled = false; + $scope.verificationdisabled = false; + } + - 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_OnapNameDataByName').then(function (data) { + var j = data; + $scope.data = JSON.parse(j.data); + $scope.onapNameDictionaryDatas = JSON.parse($scope.data.onapNameDictionaryDatas); + }); - PolicyAppService.getData('getDictionary/get_PEPOptionsDataByName').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.pepOptionsDictionaryDatas = JSON.parse($scope.data.pepOptionsDictionaryDatas); - console.log($scope.pepOptionsDictionaryDatas); - }, function (error) { - console.log("failed"); - }); + PolicyAppService.getData('getDictionary/get_PEPOptionsDataByName').then(function (data) { + var j = data; + $scope.data = JSON.parse(j.data); + $scope.pepOptionsDictionaryDatas = JSON.parse($scope.data.pepOptionsDictionaryDatas); + }); - PolicyAppService.getData('getDictionary/get_PEPOptionsData').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.pepOptionsDictionaryDataEntity = JSON.parse($scope.data.pepOptionsDictionaryDatas); - console.log($scope.pepOptionsDictionaryDataEntity); - }, function (error) { - console.log("failed"); - }); + PolicyAppService.getData('getDictionary/get_PEPOptionsData').then(function (data) { + var j = data; + $scope.data = JSON.parse(j.data); + $scope.pepOptionsDictionaryDataEntity = JSON.parse($scope.data.pepOptionsDictionaryDatas); + }); - PolicyAppService.getData('getDictionary/get_VarbindDictionaryDataByName').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.varbindDictionaryDatas = JSON.parse($scope.data.varbindDictionaryDatas); - console.log($scope.varbindDictionaryDatas); - }, function (error) { - console.log("failed"); - }); + PolicyAppService.getData('getDictionary/get_VarbindDictionaryDataByName').then(function (data) { + var j = data; + $scope.data = JSON.parse(j.data); + $scope.varbindDictionaryDatas = JSON.parse($scope.data.varbindDictionaryDatas); + }); - PolicyAppService.getData('getDictionary/get_VNFTypeDataByName').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.vnfTypeDictionaryDatas = JSON.parse($scope.data.vnfTypeDictionaryDatas); - console.log($scope.vnfTypeDictionaryDatas); - }, function (error) { - console.log("failed"); - }); + PolicyAppService.getData('getDictionary/get_VNFTypeDataByName').then(function (data) { + var j = data; + $scope.data = JSON.parse(j.data); + $scope.vnfTypeDictionaryDatas = JSON.parse($scope.data.vnfTypeDictionaryDatas); + }); - PolicyAppService.getData('getDictionary/get_VSCLActionDataByName').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.vsclActionDictionaryDatas = JSON.parse($scope.data.vsclActionDictionaryDatas); - console.log($scope.vsclActionDictionaryDatas); - }, function (error) { - console.log("failed"); - }); + PolicyAppService.getData('getDictionary/get_VSCLActionDataByName').then(function (data) { + var j = data; + $scope.data = JSON.parse(j.data); + $scope.vsclActionDictionaryDatas = JSON.parse($scope.data.vsclActionDictionaryDatas); + }); - PolicyAppService.getData('getDictionary/get_RiskTypeDataByName').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas); - console.log($scope.riskTypeDictionaryDatas); - }, function (error) { - console.log("failed"); - }); + PolicyAppService.getData('getDictionary/get_RiskTypeDataByName').then(function (data) { + var j = data; + $scope.data = JSON.parse(j.data); + $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas); + }); - $scope.pepActionDictionaryDatas = []; - - $scope.getPepActionValues = function(pepOptionValue){ - for (var i = 0; i < $scope.pepOptionsDictionaryDataEntity.length; ++i) { - var obj = $scope.pepOptionsDictionaryDataEntity[i]; - if (obj.pepName == pepOptionValue){ - var splitAlarm = obj.actions.split(':#@'); - for (var j = 0; j < splitAlarm.length; ++j) { - $scope.pepActionDictionaryDatas.push(splitAlarm[j].split('=#@')[0]); - } - } - } - }; + $scope.pepActionDictionaryDatas = []; - function trapData(){ - var data = {}; - if($scope.temp.policy.triggerTrapSignatures.length == 1 || $scope.temp.policy.triggerTrapSignatures["Trap1"] != null){ - data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1 } - } - if($scope.temp.policy.triggerTrapSignatures.length == 2 || $scope.temp.policy.triggerTrapSignatures["Trap2"] != null){ - data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1, trap2 : $scope.temp.policy.triggerTrapSignatures.Trap2} - } - if($scope.temp.policy.triggerTrapSignatures.length == 3 || $scope.temp.policy.triggerTrapSignatures["Trap3"] != null){ - data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1, trap2 : $scope.temp.policy.triggerTrapSignatures.Trap2, - trap3 : $scope.temp.policy.triggerTrapSignatures.Trap3} - } - if($scope.temp.policy.triggerTrapSignatures.length == 4 || $scope.temp.policy.triggerTrapSignatures["Trap4"] != null){ - data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1, trap2 : $scope.temp.policy.triggerTrapSignatures.Trap2, - trap3 : $scope.temp.policy.triggerTrapSignatures.Trap3, trap4 : $scope.temp.policy.triggerTrapSignatures.Trap4} - } - if($scope.temp.policy.triggerTrapSignatures.length == 5 || $scope.temp.policy.triggerTrapSignatures["Trap5"] != null){ - data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1, trap2 : $scope.temp.policy.triggerTrapSignatures.Trap2, - trap3 : $scope.temp.policy.triggerTrapSignatures.Trap3, trap4 : $scope.temp.policy.triggerTrapSignatures.Trap4, - trap5 : $scope.temp.policy.triggerTrapSignatures.Trap5} - } - if($scope.temp.policy.triggerTrapSignatures.length == 6 || $scope.temp.policy.triggerTrapSignatures["Trap6"] != null){ - data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1, trap2 : $scope.temp.policy.triggerTrapSignatures.Trap2, - trap3 : $scope.temp.policy.triggerTrapSignatures.Trap3, trap4 : $scope.temp.policy.triggerTrapSignatures.Trap4, - trap5 : $scope.temp.policy.triggerTrapSignatures.Trap5, trap6 : $scope.temp.policy.triggerTrapSignatures.Trap6} - } - return data; - } - - function faultDatas(){ - var faultData = {}; - if($scope.temp.policy.triggerfaultSignatures.length == 1 || $scope.temp.policy.triggerfaultSignatures["Fault1"] != null){ - faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1 } - } - if($scope.temp.policy.triggerfaultSignatures.length == 2 || $scope.temp.policy.triggerfaultSignatures["Fault2"] != null){ - faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1, trap2 : $scope.temp.policy.triggerfaultSignatures.Fault2} - } - if($scope.temp.policy.triggerfaultSignatures.length == 3 || $scope.temp.policy.triggerfaultSignatures["Fault3"] != null){ - faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1, trap2 : $scope.temp.policy.triggerfaultSignatures.Fault2, - trap3 : $scope.temp.policy.triggerfaultSignatures.Fault3} - } - if($scope.temp.policy.triggerTrapSignatures.length == 4 || $scope.temp.policy.triggerfaultSignatures["Fault4"] != null){ - faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1, trap2 : $scope.temp.policy.triggerfaultSignatures.Fault2, - trap3 : $scope.temp.policy.triggerfaultSignatures.Fault3, trap4 : $scope.temp.policy.triggerfaultSignatures.Fault4} - } - if($scope.temp.policy.triggerfaultSignatures.length == 5 || $scope.temp.policy.triggerfaultSignatures["Fault5"] != null){ - faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1, trap2 : $scope.temp.policy.triggerfaultSignatures.Fault2, - trap3 : $scope.temp.policy.triggerfaultSignatures.Fault3, trap4 : $scope.temp.policy.triggerfaultSignatures.Fault4, - trap5 : $scope.temp.policy.triggerfaultSignatures.Fault5} - } - if($scope.temp.policy.triggerfaultSignatures.length == 6 || $scope.temp.policy.triggerfaultSignatures["Fault6"] != null){ - faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1, trap2 : $scope.temp.policy.triggerfaultSignatures.Fault2, - trap3 : $scope.temp.policy.triggerfaultSignatures.Fault3, trap4 : $scope.temp.policy.triggerfaultSignatures.Fault4, - trap5 : $scope.temp.policy.triggerfaultSignatures.Fault5, trap6 : $scope.temp.policy.triggerfaultSignatures.Fault6} - } - return faultData; - } - - $scope.saveFaultPolicy = function(policy){ - if(policy.itemContent != undefined){ - $scope.refreshCheck = true; - $scope.policyNavigator = policy.itemContent; - policy.itemContent = ""; - } - $scope.savebutton = false; - var data = trapData(); - var faultData = faultDatas(); - var uuu = "policycreation/save_policy"; - var postData={policyData: policy, - trapData : data, - faultData : faultData - }; - $.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'; - $scope.pushStatus=data.policyData.split("&")[1]; - if($scope.pushStatus=="successPush"){ - Notification.success("Policy pushed successfully"); - } - $scope.triggerdisabled = true; - $scope.verificationdisabled = 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.validatePolicy = function(policy){ - console.log(policy); - document.getElementById("validate").innerHTML = ""; - var uuu = "policyController/validate_policy.htm"; - var data = trapData(); - var faultData = faultDatas(); - var postData={policyData: policy, trapData : data, faultData : faultData}; - $.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.substring(1,8); - var size = data.data.length; - if($scope.data == 'success'){ - Notification.success("Validation Success."); - $scope.savebutton = false; - if (size > 18){ - var displayWarning = data.data.substring(19,size); - document.getElementById("validate").innerHTML = "Safe Policy Warning Message : "+displayWarning; - document.getElementById("validate").style.color = "white"; - document.getElementById("validate").style.backgroundColor = "skyblue"; - } - }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; - } + $scope.getPepActionValues = function(pepOptionValue){ + for (var i = 0; i < $scope.pepOptionsDictionaryDataEntity.length; ++i) { + var obj = $scope.pepOptionsDictionaryDataEntity[i]; + if (obj.pepName == pepOptionValue){ + var splitAlarm = obj.actions.split(':#@'); + for (var j = 0; j < splitAlarm.length; ++j) { + $scope.pepActionDictionaryDatas.push(splitAlarm[j].split('=#@')[0]); + } + } + } + }; - }); - console.log($scope.data); - }, - error : function(data){ - Notification.error("Validation Failed."); - $scope.savebutton = true; - } - }); - }; - if($scope.connectTriggerTrapsList == undefined){ - $scope.connectTriggerTrapsList = []; - } - if($scope.temp.policy.traptriggerSignatures == undefined){ - $scope.temp.policy.traptriggerSignatures = []; - } - - $scope.ItemNo = 0; - $scope.TriggerSignatureDatas = [{"triggerSignatures" : $scope.temp.policy.traptriggerSignatures}]; - $scope.addTriggerButton = function() { - $scope.triggerdisabled = false; - var newItemNo = $scope.temp.policy.traptriggerSignatures.length+1; - $scope.ItemNo = newItemNo; - $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+newItemNo}); - $scope.connectTriggerTrapsList.push('Trap'+newItemNo); - }; - $scope.removeTriggerButton = function() { - var lastItem = $scope.temp.policy.traptriggerSignatures.length-1; - $scope.temp.policy.traptriggerSignatures.splice(lastItem); - $scope.connectTriggerTrapsList.splice('Trap'+lastItem); - }; + function trapData(){ + var data = {}; + if($scope.temp.policy.triggerTrapSignatures.length == 1 || $scope.temp.policy.triggerTrapSignatures["Trap1"] != null){ + data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1 } + } + if($scope.temp.policy.triggerTrapSignatures.length == 2 || $scope.temp.policy.triggerTrapSignatures["Trap2"] != null){ + data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1, trap2 : $scope.temp.policy.triggerTrapSignatures.Trap2} + } + if($scope.temp.policy.triggerTrapSignatures.length == 3 || $scope.temp.policy.triggerTrapSignatures["Trap3"] != null){ + data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1, trap2 : $scope.temp.policy.triggerTrapSignatures.Trap2, + trap3 : $scope.temp.policy.triggerTrapSignatures.Trap3} + } + if($scope.temp.policy.triggerTrapSignatures.length == 4 || $scope.temp.policy.triggerTrapSignatures["Trap4"] != null){ + data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1, trap2 : $scope.temp.policy.triggerTrapSignatures.Trap2, + trap3 : $scope.temp.policy.triggerTrapSignatures.Trap3, trap4 : $scope.temp.policy.triggerTrapSignatures.Trap4} + } + if($scope.temp.policy.triggerTrapSignatures.length == 5 || $scope.temp.policy.triggerTrapSignatures["Trap5"] != null){ + data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1, trap2 : $scope.temp.policy.triggerTrapSignatures.Trap2, + trap3 : $scope.temp.policy.triggerTrapSignatures.Trap3, trap4 : $scope.temp.policy.triggerTrapSignatures.Trap4, + trap5 : $scope.temp.policy.triggerTrapSignatures.Trap5} + } + if($scope.temp.policy.triggerTrapSignatures.length == 6 || $scope.temp.policy.triggerTrapSignatures["Trap6"] != null){ + data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1, trap2 : $scope.temp.policy.triggerTrapSignatures.Trap2, + trap3 : $scope.temp.policy.triggerTrapSignatures.Trap3, trap4 : $scope.temp.policy.triggerTrapSignatures.Trap4, + trap5 : $scope.temp.policy.triggerTrapSignatures.Trap5, trap6 : $scope.temp.policy.triggerTrapSignatures.Trap6} + } + return data; + } + + function faultDatas(){ + var faultData = {}; + if($scope.temp.policy.triggerfaultSignatures.length == 1 || $scope.temp.policy.triggerfaultSignatures["Fault1"] != null){ + faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1 } + } + if($scope.temp.policy.triggerfaultSignatures.length == 2 || $scope.temp.policy.triggerfaultSignatures["Fault2"] != null){ + faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1, trap2 : $scope.temp.policy.triggerfaultSignatures.Fault2} + } + if($scope.temp.policy.triggerfaultSignatures.length == 3 || $scope.temp.policy.triggerfaultSignatures["Fault3"] != null){ + faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1, trap2 : $scope.temp.policy.triggerfaultSignatures.Fault2, + trap3 : $scope.temp.policy.triggerfaultSignatures.Fault3} + } + if($scope.temp.policy.triggerTrapSignatures.length == 4 || $scope.temp.policy.triggerfaultSignatures["Fault4"] != null){ + faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1, trap2 : $scope.temp.policy.triggerfaultSignatures.Fault2, + trap3 : $scope.temp.policy.triggerfaultSignatures.Fault3, trap4 : $scope.temp.policy.triggerfaultSignatures.Fault4} + } + if($scope.temp.policy.triggerfaultSignatures.length == 5 || $scope.temp.policy.triggerfaultSignatures["Fault5"] != null){ + faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1, trap2 : $scope.temp.policy.triggerfaultSignatures.Fault2, + trap3 : $scope.temp.policy.triggerfaultSignatures.Fault3, trap4 : $scope.temp.policy.triggerfaultSignatures.Fault4, + trap5 : $scope.temp.policy.triggerfaultSignatures.Fault5} + } + if($scope.temp.policy.triggerfaultSignatures.length == 6 || $scope.temp.policy.triggerfaultSignatures["Fault6"] != null){ + faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1, trap2 : $scope.temp.policy.triggerfaultSignatures.Fault2, + trap3 : $scope.temp.policy.triggerfaultSignatures.Fault3, trap4 : $scope.temp.policy.triggerfaultSignatures.Fault4, + trap5 : $scope.temp.policy.triggerfaultSignatures.Fault5, trap6 : $scope.temp.policy.triggerfaultSignatures.Fault6} + } + return faultData; + } + + $scope.saveFaultPolicy = function(policy){ + if(policy.itemContent != undefined){ + $scope.refreshCheck = true; + $scope.policyNavigator = policy.itemContent; + policy.itemContent = ""; + } + $scope.savebutton = false; + var data = trapData(); + var faultData = faultDatas(); + var uuu = "policycreation/save_policy"; + var postData={policyData: policy, + trapData : data, + faultData : faultData + }; + $.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'; + $scope.pushStatus=data.policyData.split("&")[1]; + if($scope.pushStatus=="successPush"){ + Notification.success("Policy pushed successfully"); + } + $scope.triggerdisabled = true; + $scope.verificationdisabled = 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.trapItemNo = 0; - $scope.TrapTriggerSignatureDatas = [{"triggermainSignatures" : $scope.temp.policy.triggerTrapSignatures}]; - $scope.addTrapTriggerButton = function(indexId) { - if(trapCollection.indexOf(indexId) !== -1){ + $scope.validatePolicy = function(policy){ + document.getElementById("validate").innerHTML = ""; + var uuu = "policyController/validate_policy.htm"; + var data = trapData(); + var faultData = faultDatas(); + var postData={policyData: policy, trapData : data, faultData : faultData}; + $.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.substring(1,8); + var size = data.data.length; + if($scope.data == 'success'){ + Notification.success("Validation Success."); + $scope.savebutton = false; + if (size > 18){ + var displayWarning = data.data.substring(19,size); + document.getElementById("validate").innerHTML = "Safe Policy Warning Message : "+displayWarning; + document.getElementById("validate").style.color = "white"; + document.getElementById("validate").style.backgroundColor = "skyblue"; + } + }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; + } - }else{ - $scope.temp.policy.triggerTrapSignatures[indexId] = []; - trapCollection.push(indexId); - } - var newTrapItemNo = $scope.temp.policy.triggerTrapSignatures[indexId].length+1; - $scope.trapItemNo = newTrapItemNo; - $scope.temp.policy.triggerTrapSignatures.push($scope.temp.policy.triggerTrapSignatures[indexId].push({'id':'A'+newTrapItemNo})); - if(newTrapItemNo > 1){ - var count = newTrapItemNo-1; - $scope.varbindDictionaryDatas.push('A'+count); - } - }; - $scope.removeTrapTriggerButton = function(indexId) { - var lastTrapItem = $scope.temp.policy.triggerTrapSignatures[indexId].length-1; - var checkLastTrapItem = lastTrapItem; - if(checkLastTrapItem == 0){ - trapCollection.splice(indexId); - } - $scope.temp.policy.triggerTrapSignatures[indexId].splice(lastTrapItem); - }; + }); + }, + error : function(data){ + Notification.error("Validation Failed."); + $scope.savebutton = true; + } + }); + }; + if($scope.connectTriggerTrapsList == undefined){ + $scope.connectTriggerTrapsList = []; + } + if($scope.temp.policy.traptriggerSignatures == undefined){ + $scope.temp.policy.traptriggerSignatures = []; + } + + $scope.ItemNo = 0; + $scope.TriggerSignatureDatas = [{"triggerSignatures" : $scope.temp.policy.traptriggerSignatures}]; + $scope.addTriggerButton = function() { + $scope.triggerdisabled = false; + var newItemNo = $scope.temp.policy.traptriggerSignatures.length+1; + $scope.ItemNo = newItemNo; + $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+newItemNo}); + $scope.connectTriggerTrapsList.push('Trap'+newItemNo); + }; + $scope.removeTriggerButton = function() { + var lastItem = $scope.temp.policy.traptriggerSignatures.length-1; + $scope.temp.policy.traptriggerSignatures.splice(lastItem); + $scope.connectTriggerTrapsList.splice('Trap'+lastItem); + }; - if($scope.temp.policy.connecttriggerSignatures == undefined){ - $scope.temp.policy.connecttriggerSignatures = []; - } - - $scope.connecttrapItemNo = 0; - $scope.TrapConnectTriggerSignatureDatas = [{"connecttriggerSignatures" : $scope.temp.policy.connecttriggerSignatures}]; - $scope.addTriggerConnectButton = function() { - var newConnectTrapItemNo = $scope.temp.policy.connecttriggerSignatures.length+1; - $scope.connecttrapItemNo = newConnectTrapItemNo; - $scope.temp.policy.connecttriggerSignatures.push({'id':'C'+newConnectTrapItemNo}); - if(newConnectTrapItemNo >1){ - var count = newConnectTrapItemNo-1; - $scope.connectTriggerTrapsList.push('C'+count); - } - }; - $scope.removeTriggerConnectButton = function() { - var lastConnectTrapItem = $scope.temp.policy.connecttriggerSignatures.length-1; - $scope.temp.policy.connecttriggerSignatures.splice(lastConnectTrapItem); - if(lastConnectTrapItem < 1){ - var count = lastConnectTrapItem-1; - $scope.connectTriggerTrapsList.splice('C'+count); - } - }; - if($scope.connectTriggerFaultsList == undefined){ - $scope.connectTriggerFaultsList = []; - } - if($scope.temp.policy.faulttriggerSignatures == undefined){ - $scope.temp.policy.faulttriggerSignatures = []; - } - - $scope.FaultItemNo = 0; - $scope.FaultSignatureDatas = [{"verificationmainSignatures" : $scope.temp.policy.faulttriggerSignatures}]; - $scope.addVerFaultButton = function() { - var newFaultItemNo = $scope.temp.policy.faulttriggerSignatures.length+1; - $scope.FaultItemNo = newFaultItemNo; - $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+newFaultItemNo}); - $scope.connectTriggerFaultsList.push('Fault'+newFaultItemNo); - }; - $scope.removeVerFaultButton = function() { - var lastFaultItem = $scope.temp.policy.faulttriggerSignatures.length-1; - $scope.temp.policy.faulttriggerSignatures.splice(lastFaultItem); - $scope.connectTriggerFaultsList.splice('Fault'+lastFaultItem); - }; - if($scope.temp.policy.triggerfaultSignatures == undefined){ - $scope.temp.policy.triggerfaultSignatures = []; - } - - $scope.faultItemNo1 = 0; - $scope.FaultTriggerSignatureDatas = [{"verificationSignatures" : $scope.temp.policy.triggerfaultSignatures}]; - $scope.addVerTriggerButton = function(indexId) { - $scope.verificationdisabled = false; - if(faultCollection.indexOf(indexId) !== -1){ + + $scope.trapItemNo = 0; + $scope.TrapTriggerSignatureDatas = [{"triggermainSignatures" : $scope.temp.policy.triggerTrapSignatures}]; + $scope.addTrapTriggerButton = function(indexId) { + if(trapCollection.indexOf(indexId) === -1){ + $scope.temp.policy.triggerTrapSignatures[indexId] = []; + trapCollection.push(indexId); + } + var newTrapItemNo = $scope.temp.policy.triggerTrapSignatures[indexId].length+1; + $scope.trapItemNo = newTrapItemNo; + $scope.temp.policy.triggerTrapSignatures.push($scope.temp.policy.triggerTrapSignatures[indexId].push({'id':'A'+newTrapItemNo})); + if(newTrapItemNo > 1){ + var count = newTrapItemNo-1; + $scope.varbindDictionaryDatas.push('A'+count); + } + }; + $scope.removeTrapTriggerButton = function(indexId) { + var lastTrapItem = $scope.temp.policy.triggerTrapSignatures[indexId].length-1; + var checkLastTrapItem = lastTrapItem; + if(checkLastTrapItem == 0){ + trapCollection.splice(indexId); + } + $scope.temp.policy.triggerTrapSignatures[indexId].splice(lastTrapItem); + }; - }else{ - $scope.temp.policy.triggerfaultSignatures[indexId] = []; - faultCollection.push(indexId); - } - var newFaultItemNo1 = $scope.temp.policy.triggerfaultSignatures[indexId].length+1; - $scope.faultItemNo1 = newFaultItemNo1; - $scope.temp.policy.triggerfaultSignatures.push($scope.temp.policy.triggerfaultSignatures[indexId].push({'id':'A'+newFaultItemNo1})); - if(newFaultItemNo1 > 1){ - var count = newFaultItemNo1-1; - $scope.varbindDictionaryDatas.push('A'+count); - } - }; - $scope.removeVerTriggerButton = function(indexId) { - var lastFaultItem1 = $scope.temp.policy.triggerfaultSignatures[indexId].length-1; - var checkLastFaultItem = lastFaultItem1; - if(checkLastFaultItem == 0){ - faultCollection.splice(indexId); - } - $scope.temp.policy.triggerfaultSignatures[indexId].splice(lastFaultItem1); - }; + if($scope.temp.policy.connecttriggerSignatures == undefined){ + $scope.temp.policy.connecttriggerSignatures = []; + } + + $scope.connecttrapItemNo = 0; + $scope.TrapConnectTriggerSignatureDatas = [{"connecttriggerSignatures" : $scope.temp.policy.connecttriggerSignatures}]; + $scope.addTriggerConnectButton = function() { + var newConnectTrapItemNo = $scope.temp.policy.connecttriggerSignatures.length+1; + $scope.connecttrapItemNo = newConnectTrapItemNo; + $scope.temp.policy.connecttriggerSignatures.push({'id':'C'+newConnectTrapItemNo}); + if(newConnectTrapItemNo >1){ + var count = newConnectTrapItemNo-1; + $scope.connectTriggerTrapsList.push('C'+count); + } + }; + $scope.removeTriggerConnectButton = function() { + var lastConnectTrapItem = $scope.temp.policy.connecttriggerSignatures.length-1; + $scope.temp.policy.connecttriggerSignatures.splice(lastConnectTrapItem); + if(lastConnectTrapItem < 1){ + var count = lastConnectTrapItem-1; + $scope.connectTriggerTrapsList.splice('C'+count); + } + }; + if($scope.connectTriggerFaultsList == undefined){ + $scope.connectTriggerFaultsList = []; + } + if($scope.temp.policy.faulttriggerSignatures == undefined){ + $scope.temp.policy.faulttriggerSignatures = []; + } + + $scope.FaultItemNo = 0; + $scope.FaultSignatureDatas = [{"verificationmainSignatures" : $scope.temp.policy.faulttriggerSignatures}]; + $scope.addVerFaultButton = function() { + var newFaultItemNo = $scope.temp.policy.faulttriggerSignatures.length+1; + $scope.FaultItemNo = newFaultItemNo; + $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+newFaultItemNo}); + $scope.connectTriggerFaultsList.push('Fault'+newFaultItemNo); + }; + $scope.removeVerFaultButton = function() { + var lastFaultItem = $scope.temp.policy.faulttriggerSignatures.length-1; + $scope.temp.policy.faulttriggerSignatures.splice(lastFaultItem); + $scope.connectTriggerFaultsList.splice('Fault'+lastFaultItem); + }; + if($scope.temp.policy.triggerfaultSignatures == undefined){ + $scope.temp.policy.triggerfaultSignatures = []; + } + + $scope.faultItemNo1 = 0; + $scope.FaultTriggerSignatureDatas = [{"verificationSignatures" : $scope.temp.policy.triggerfaultSignatures}]; + $scope.addVerTriggerButton = function(indexId) { + $scope.verificationdisabled = false; + if(faultCollection.indexOf(indexId) === -1){ + $scope.temp.policy.triggerfaultSignatures[indexId] = []; + faultCollection.push(indexId); + } + var newFaultItemNo1 = $scope.temp.policy.triggerfaultSignatures[indexId].length+1; + $scope.faultItemNo1 = newFaultItemNo1; + $scope.temp.policy.triggerfaultSignatures.push($scope.temp.policy.triggerfaultSignatures[indexId].push({'id':'A'+newFaultItemNo1})); + if(newFaultItemNo1 > 1){ + var count = newFaultItemNo1-1; + $scope.varbindDictionaryDatas.push('A'+count); + } + }; + $scope.removeVerTriggerButton = function(indexId) { + var lastFaultItem1 = $scope.temp.policy.triggerfaultSignatures[indexId].length-1; + var checkLastFaultItem = lastFaultItem1; + if(checkLastFaultItem == 0){ + faultCollection.splice(indexId); + } + $scope.temp.policy.triggerfaultSignatures[indexId].splice(lastFaultItem1); + }; - if($scope.temp.policy.connectVerificationSignatures == undefined){ - $scope.temp.policy.connectVerificationSignatures = []; - } - - $scope.connectFaultItemNo = 0; - $scope.FaultConnectTriggerSignatureDatas = [{"connectVerificationSignatures" : $scope.temp.policy.connectVerificationSignatures}]; - $scope.addFaultConnectButton = function() { - var newConnectFaultItemNo = $scope.temp.policy.connectVerificationSignatures.length+1; - $scope.connectFaultItemNo = newConnectFaultItemNo; - $scope.temp.policy.connectVerificationSignatures.push({'id':'C'+newConnectFaultItemNo}); - if(newConnectFaultItemNo >1){ - var count = newConnectFaultItemNo-1; - $scope.connectTriggerFaultsList.push('C'+count); - } - }; - $scope.removeFaultConnectButton = function() { - var lastConnectFaultItem = $scope.temp.policy.connectVerificationSignatures.length-1; - $scope.temp.policy.connectVerificationSignatures.splice(lastConnectFaultItem); - if(lastConnectFaultItem < 1){ - var count = lastConnectFaultItem-1; - $scope.connectTriggerFaultsList.splice('C'+count); - } - }; + if($scope.temp.policy.connectVerificationSignatures == undefined){ + $scope.temp.policy.connectVerificationSignatures = []; + } + + $scope.connectFaultItemNo = 0; + $scope.FaultConnectTriggerSignatureDatas = [{"connectVerificationSignatures" : $scope.temp.policy.connectVerificationSignatures}]; + $scope.addFaultConnectButton = function() { + var newConnectFaultItemNo = $scope.temp.policy.connectVerificationSignatures.length+1; + $scope.connectFaultItemNo = newConnectFaultItemNo; + $scope.temp.policy.connectVerificationSignatures.push({'id':'C'+newConnectFaultItemNo}); + if(newConnectFaultItemNo >1){ + var count = newConnectFaultItemNo-1; + $scope.connectTriggerFaultsList.push('C'+count); + } + }; + $scope.removeFaultConnectButton = function() { + var lastConnectFaultItem = $scope.temp.policy.connectVerificationSignatures.length-1; + $scope.temp.policy.connectVerificationSignatures.splice(lastConnectFaultItem); + if(lastConnectFaultItem < 1){ + var count = lastConnectFaultItem-1; + $scope.connectTriggerFaultsList.splice('C'+count); + } + }; -}]);
\ No newline at end of file +}]); diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/ClosedLoopPMController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/ClosedLoopPMController.js index a67266074..454a724a9 100644 --- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/ClosedLoopPMController.js +++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/ClosedLoopPMController.js @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * 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. @@ -29,7 +29,7 @@ angular.module("abs").controller('clPMController', ['$scope', '$window', '$timeo policyType : "Config", configPolicyType : "ClosedLoop_PM" } - }; + } $scope.refresh = function(){ if($scope.refreshCheck){ @@ -193,4 +193,4 @@ angular.module("abs").controller('clPMController', ['$scope', '$window', '$timeo }); }; -}]);
\ No newline at end of file +}]); diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/DCAEMicroServicePolicyController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/DCAEMicroServicePolicyController.js index cffa46f53..1e452e830 100644 --- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/DCAEMicroServicePolicyController.js +++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/DCAEMicroServicePolicyController.js @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP Policy Engine * ================================================================================ - * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2020 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. @@ -18,7 +18,9 @@ * ============LICENSE_END========================================================= */ -angular.module('abs').controller('dcaeMicroServiceController', ['$scope', '$window', '$compile', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification', function ($scope, $window, $compile, PolicyAppService, PolicyNavigator, modalService, $modal, Notification) { +angular.module('abs').controller('dcaeMicroServiceController', + ['$scope', '$window', '$compile', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification', + function ($scope, $window, $compile, PolicyAppService, PolicyNavigator, modalService, $modal, Notification) { $("#dialog").hide(); $scope.policyNavigator; @@ -29,18 +31,18 @@ angular.module('abs').controller('dcaeMicroServiceController', ['$scope', '$wind var layer = 0; if(!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly){ - $scope.temp.policy = { - policyType : "Config", - configPolicyType : "Micro Service" - } - }; + $scope.temp.policy = { + policyType : "Config", + configPolicyType : "Micro Service" + } + } $scope.refresh = function(){ - if($scope.refreshCheck){ - $scope.policyNavigator.refresh(); - } - $scope.modal('createNewPolicy', true); - $scope.temp.policy = ""; + if($scope.refreshCheck){ + $scope.policyNavigator.refresh(); + } + $scope.modal('createNewPolicy', true); + $scope.temp.policy = ""; }; $scope.modal = function(id, hide) { @@ -48,328 +50,290 @@ angular.module('abs').controller('dcaeMicroServiceController', ['$scope', '$wind }; $('#ttlDate').datepicker({ - dateFormat: 'dd/mm/yy', - changeMonth: true, - changeYear: true, - onSelect: function(date) { - angular.element($('#ttlDate')).triggerHandler('input'); - } + dateFormat: 'dd/mm/yy', + changeMonth: true, + changeYear: true, + onSelect: function(date) { + angular.element($('#ttlDate')).triggerHandler('input'); + } }); - if ($scope.temp.policy.editPolicy != undefined|| $scope.temp.policy.readOnly != undefined){ - if ($scope.temp.policy.configName == undefined){ - $scope.isCheck = false; - }else{ - $scope.isCheck = true; - } - }else { - $scope.isCheck = false; - } - - 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"); - }); + if ($scope.temp.policy.editPolicy != undefined|| $scope.temp.policy.readOnly != undefined){ + if ($scope.temp.policy.configName == undefined){ + $scope.isCheck = false; + }else{ + $scope.isCheck = true; + } + }else { + $scope.isCheck = false; + } + + PolicyAppService.getData('getDictionary/get_OnapNameDataByName').then(function (data) { + var j = data; + $scope.data = JSON.parse(j.data); + $scope.onapNameDictionaryDatas = JSON.parse($scope.data.onapNameDictionaryDatas); + }); - PolicyAppService.getData('get_DCAEPriorityValues').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.priorityDatas = JSON.parse($scope.data.priorityDatas); - console.log($scope.priorityDatas); - }, function (error) { - console.log("failed"); - }); + PolicyAppService.getData('get_DCAEPriorityValues').then(function (data) { + var j = data; + $scope.data = JSON.parse(j.data); + $scope.priorityDatas = JSON.parse($scope.data.priorityDatas); + }); - PolicyAppService.getData('getDictionary/get_GroupPolicyScopeDataByName').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.groupPolicyScopeListDatas = JSON.parse($scope.data.groupPolicyScopeListDatas); - console.log($scope.groupPolicyScopeListDatas); - }, function (error) { - console.log("failed"); - }); + PolicyAppService.getData('getDictionary/get_GroupPolicyScopeDataByName').then(function (data) { + var j = data; + $scope.data = JSON.parse(j.data); + $scope.groupPolicyScopeListDatas = JSON.parse($scope.data.groupPolicyScopeListDatas); + }); - PolicyAppService.getData('getDictionary/get_MicroServiceConfigNameDataByName').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - console.log("$scope.data.microServiceConfigNameDictionaryDatas : " + $scope.data.microServiceConfigNameDictionaryDatas); - if($scope.data.microServiceConfigNameDictionaryDatas){ - $scope.microServiceCongigNameDictionaryDatas = JSON.parse($scope.data.microServiceConfigNameDictionaryDatas); - } - console.log($scope.microServiceCongigNameDictionaryDatas); - }, function (error) { - console.log("failed"); - }); + PolicyAppService.getData('getDictionary/get_MicroServiceConfigNameDataByName').then(function (data) { + var j = data; + $scope.data = JSON.parse(j.data); + if($scope.data.microServiceConfigNameDictionaryDatas){ + $scope.microServiceCongigNameDictionaryDatas = JSON.parse($scope.data.microServiceConfigNameDictionaryDatas); + } + }); - PolicyAppService.getData('getDictionary/get_MicroServiceLocationDataByName').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.microServiceLocationDictionaryDatas = JSON.parse($scope.data.microServiceLocationDictionaryDatas); - console.log($scope.microServiceLocationDictionaryDatas); - }, function (error) { - console.log("failed"); - }); + PolicyAppService.getData('getDictionary/get_MicroServiceLocationDataByName').then(function (data) { + var j = data; + $scope.data = JSON.parse(j.data); + $scope.microServiceLocationDictionaryDatas = JSON.parse($scope.data.microServiceLocationDictionaryDatas); + }); - PolicyAppService.getData('getDictionary/get_MicroServiceModelsDataByName').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - var inputModelList = JSON.parse($scope.data.microServiceModelsDictionaryDatas); - var unique = {}; - var uniqueList = []; - for(var i = 0; i < inputModelList.length; i++){ - if(typeof unique[inputModelList[i]] == "undefined"){ - unique[inputModelList[i]] = ""; - uniqueList.push(inputModelList[i]); - } - } - $scope.microServiceModelsDictionaryDatas = uniqueList; - console.log($scope.microServiceModelsDictionaryDatas); - }, function (error) { - console.log("failed"); - }); + PolicyAppService.getData('getDictionary/get_MicroServiceModelsDataByName').then(function (data) { + var j = data; + $scope.data = JSON.parse(j.data); + var inputModelList = JSON.parse($scope.data.microServiceModelsDictionaryDatas); + var unique = {}; + var uniqueList = []; + for(var i = 0; i < inputModelList.length; i++){ + if(typeof unique[inputModelList[i]] == "undefined"){ + unique[inputModelList[i]] = ""; + uniqueList.push(inputModelList[i]); + } + } + $scope.microServiceModelsDictionaryDatas = uniqueList; + }); - PolicyAppService.getData('getDictionary/get_DCAEUUIDDataByName').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.dcaeUUIDDictionaryDatas = JSON.parse($scope.data.dcaeUUIDDictionaryDatas); - console.log($scope.dcaeUUIDDictionaryDatas); - }, function (error) { - console.log("failed"); - }); + PolicyAppService.getData('getDictionary/get_DCAEUUIDDataByName').then(function (data) { + var j = data; + $scope.data = JSON.parse(j.data); + $scope.dcaeUUIDDictionaryDatas = JSON.parse($scope.data.dcaeUUIDDictionaryDatas); + }); - PolicyAppService.getData('getDictionary/get_RiskTypeDataByName').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas); - console.log($scope.riskTypeDictionaryDatas); - }, function (error) { - console.log("failed"); - }); + PolicyAppService.getData('getDictionary/get_RiskTypeDataByName').then(function (data) { + var j = data; + $scope.data = JSON.parse(j.data); + $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas); + }); - PolicyAppService.getData('getDictionary/get_MicroServiceAttributeData').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.microServiceAttributeDictionaryDatas = JSON.parse($scope.data.microServiceAttributeDictionaryDatas); - console.log($scope.microServiceAttributeDictionaryDatas); - }, function (error) { - console.log("failed"); - }); - + PolicyAppService.getData('getDictionary/get_MicroServiceAttributeData').then(function (data) { + var j = data; + $scope.data = JSON.parse(j.data); + $scope.microServiceAttributeDictionaryDatas = JSON.parse($scope.data.microServiceAttributeDictionaryDatas); + }); + - $scope.choices = []; - $scope.attributeDatas = [{"attributes" : $scope.choices}]; - addNewChoice = function(value) { - console.log("input key : " + value); - var isFoundInRuleData = false; - if(value != undefined){ - if (value.startsWith('div.')){ - value = value.replace('div.',''); - } - - console.log(" document.getElementById : div."+value); - var parentElement = document.getElementById("div."+value); - console.log("parentElement : " + parentElement); - var div = document.getElementById(value+"@0"); - if(div != null){ - var clone = div.cloneNode(true); - var addElement = parentElement.childElementCount; - clone.id = ''+value+'@'+addElement; - clone.value = ''; - if($scope.temp.policy.editPolicy || $scope.temp.policy.readOnly){ //if it's view or edit - if($scope.temp.policy.ruleData[clone.id] || $scope.temp.policy.editPolicy){ // Only append child if its value found in ruleData or edit mode - if($scope.temp.policy.ruleData[clone.id]){ - clone.value = $scope.temp.policy.ruleData[clone.id]; - isFoundInRuleData = true; - } - console.log(" clone.value :" + clone.value); - console.log(" clone.id :" + clone.id); - if(!isFoundInRuleData && isInitViewEdit){ - return; - } - if(!clone.className.includes("child_single")){ - clone.className += ' child_single'; //here cloned is single element - } - document.getElementById("div."+value).appendChild(clone); - plainAttributeKeys.push(''+value+'@'+addElement); - } - }else{ //not view or edit - if(!clone.className.includes("child_single")){ - clone.className += ' child_single'; //here cloned is single element - } - document.getElementById("div."+value).appendChild(clone); - plainAttributeKeys.push(''+value+'@'+addElement); - } - }else{ - - if(parentElement == null){ - return; - } - div = document.getElementById("div."+value+"@0"); - if(div){ - - if(!div.className.includes('children_group border')){ - layer++; - if(layer > 4){ - layer = 1 - }; - div.className += ' children_group border' + layer; //here is div with a group of children. - } - } - var childElement = parentElement.firstElementChild; - var countParent = parentElement.childElementCount; - var childElementString = childElement.innerHTML; - var find = value+"@0"; - var re = new RegExp(find, 'g'); - childElementString = childElementString.replace(re,value+'@' + countParent); - var clone = childElement.cloneNode(true); - for (var ii = 0; ii < parentElement.childNodes.length; ii++){ - var childId = parentElement.childNodes[ii].id; - if(ii = parentElement.childNodes.length){ - var childnewId = childId.slice(0, -1); - var count = childId.slice(-1); - } - } - var countvalue = parseInt(count) + 1; - clone.id = childnewId+countvalue; - clone.value = ''; - clone.innerHTML=childElementString; - document.getElementById("div."+value).appendChild(clone); - var selects = clone.getElementsByTagName("select"); - var inputs = clone.getElementsByTagName("input"); - var removeValues = []; - for(var i=0; i<inputs.length; i++){ - if ($scope.temp.policy.ruleData!=undefined){ - var checkValue = $scope.temp.policy.ruleData[inputs[i].id]; - console.log(" checkValue.value :" + checkValue); - console.log(" inputs["+i+"].id :" + inputs[i].id); - if (checkValue!=undefined && checkValue != "undefined"){ - document.getElementById(inputs[i].id).value = checkValue; - plainAttributeKeys.push(inputs[i].id); - } else { - plainAttributeKeys.push(inputs[i].id); - } - }else { - plainAttributeKeys.push(inputs[i].id); - } - } - - for(var i=0; i<selects.length; i++){ - if ($scope.temp.policy.ruleData!=undefined){ - var checkValue = $scope.temp.policy.ruleData[selects[i].id]; - if (checkValue!=undefined && checkValue!="undefined"){ - if($scope.temp.policy.ruleData != null){ - var checkValue = $scope.temp.policy.ruleData[selects[i].id]; - var option = document.createElement('option'); - option.setAttribute('value', checkValue); - option.appendChild(document.createTextNode(checkValue)); - document.getElementById(selects[i].id).appendChild(option); - document.getElementById(selects[i].id).value = $scope.temp.policy.ruleData[selects[i].id]; - plainAttributeKeys.push(selects[i].id); - } - } else { - plainAttributeKeys.push(selects[i].id); - } - }else { - plainAttributeKeys.push(selects[i].id); - } - } - - for (var k=0; k<removeValues.length; k++){ - var elem = document.getElementById(removeValues[k]); - elem.parentNode.removeChild(elem); - } - var ele = angular.element(document.getElementById("div."+value)); - $compile(ele.contents())($scope) - } - } - }; - - - removeChoice = function(value) { - console.log(value); - if(value != undefined){ - var c = document.getElementById("div."+value).childElementCount; - - if(c == 1){ - Notification.error("The original one is not removable."); - return; - } - document.getElementById("div."+value).removeChild(document.getElementById("div."+value).lastChild); - } - }; - - function findVal(object, key) { - var value; - Object.keys(object).some(function(k) { - if (k === key) { - value = object[k]; - return true; - } - if (object[k] && typeof object[k] === 'object') { - value = findVal(object[k], key); - return value !== undefined; - } - }); - return value; - } - - $scope.pullVersion = function(serviceName) { - console.log(serviceName); - if(serviceName != undefined){ - var uuu = "policyController/getModelServiceVersioneData.htm"; - var postData={policyData: serviceName}; - $.ajax({ - type : 'POST', - url : uuu, - dataType: 'json', - contentType: 'application/json', - data: JSON.stringify(postData), - success : function(data){ - $scope.$apply(function(){ - $scope.microServiceModelsDictionaryVersionDatas = data[0].dcaeModelVersionData; - }); - }, - error : function(data){ - alert("Error While Retriving the Template Layout Pattren."); - } - }); - } - }; + $scope.choices = []; + $scope.attributeDatas = [{"attributes" : $scope.choices}]; + addNewChoice = function(value) { + var isFoundInRuleData = false; + if(value != undefined){ + if (value.startsWith('div.')){ + value = value.replace('div.',''); + } + + var parentElement = document.getElementById("div."+value); + var div = document.getElementById(value+"@0"); + if(div != null){ + var clone = div.cloneNode(true); + var addElement = parentElement.childElementCount; + clone.id = ''+value+'@'+addElement; + clone.value = ''; + if($scope.temp.policy.editPolicy || $scope.temp.policy.readOnly){ + //if it's vi or edit + if($scope.temp.policy.ruleData[clone.id] || $scope.temp.policy.editPolicy){ + //Only append child if its value found in ruleData or edit mode + if($scope.temp.policy.ruleData[clone.id]){ + clone.value = $scope.temp.policy.ruleData[clone.id]; + isFoundInRuleData = true; + } + if(!isFoundInRuleData && isInitViewEdit){ + return; + } + if(!clone.className.includes("child_single")){ + clone.className += ' child_single'; // here cloned is single element + } + document.getElementById("div."+value).appendChild(clone); + plainAttributeKeys.push(''+value+'@'+addElement); + } + }else{ // not view or edit + if(!clone.className.includes("child_single")){ + clone.className += ' child_single'; // here cloned is single element + } + document.getElementById("div."+value).appendChild(clone); + plainAttributeKeys.push(''+value+'@'+addElement); + } + }else{ + + if(parentElement == null){ + return; + } + div = document.getElementById("div."+value+"@0"); + if(div){ + + if(!div.className.includes('children_group border')){ + layer++; + if(layer > 4){ + layer = 1 + } + div.className += ' children_group border' + layer; // here is div with a group of children. + } + } + var childElement = parentElement.firstElementChild; + var countParent = parentElement.childElementCount; + var childElementString = childElement.innerHTML; + var find = value+"@0"; + var re = new RegExp(find, 'g'); + childElementString = childElementString.replace(re,value+'@' + countParent); + var clone = childElement.cloneNode(true); + for (var ii = 0; ii < parentElement.childNodes.length; ii++){ + var childId = parentElement.childNodes[ii].id; + if(ii = parentElement.childNodes.length){ + var childnewId = childId.slice(0, -1); + var count = childId.slice(-1); + } + } + var countvalue = parseInt(count) + 1; + clone.id = childnewId+countvalue; + clone.value = ''; + clone.innerHTML=childElementString; + document.getElementById("div."+value).appendChild(clone); + var selects = clone.getElementsByTagName("select"); + var inputs = clone.getElementsByTagName("input"); + var removeValues = []; + for(var i=0; i<inputs.length; i++){ + plainAttributeKeys.push(inputs[i].id); + if ($scope.temp.policy.ruleData!=undefined){ + var checkValue = $scope.temp.policy.ruleData[inputs[i].id]; + if (checkValue!=undefined && checkValue != "undefined"){ + if(checkValue == "false"){ + document.getElementById(inputs[i].id).removeAttribute("checked"); + } + else if(checkValue == "true"){ + document.getElementById(inputs[i].id).setAttribute("checked", true); + }else{ + document.getElementById(inputs[i].id).value = checkValue; + } + } else { + if(inputs[i].type == "checkbox"){ + inputs[i].checked = false; + } + } + }else { + document.getElementById(inputs[i].id).removeAttribute("checked"); + } + } + + for(var i=0; i<selects.length; i++){ + if ($scope.temp.policy.ruleData!=undefined){ + var checkValue = $scope.temp.policy.ruleData[selects[i].id]; + if (checkValue!=undefined && checkValue!="undefined"){ + if($scope.temp.policy.ruleData != null){ + var checkValue = $scope.temp.policy.ruleData[selects[i].id]; + var option = document.createElement('option'); + option.setAttribute('value', checkValue); + option.appendChild(document.createTextNode(checkValue)); + document.getElementById(selects[i].id).appendChild(option); + document.getElementById(selects[i].id).value = $scope.temp.policy.ruleData[selects[i].id]; + plainAttributeKeys.push(selects[i].id); + } + } else { + plainAttributeKeys.push(selects[i].id); + } + }else { + plainAttributeKeys.push(selects[i].id); + } + } + + for (var k=0; k<removeValues.length; k++){ + var elem = document.getElementById(removeValues[k]); + elem.parentNode.removeChild(elem); + } + var ele = angular.element(document.getElementById("div."+value)); + $compile(ele.contents())($scope) + } + } + }; + + + removeChoice = function(value) { + if(value != undefined){ + var c = document.getElementById("div."+value).childElementCount; + + if(c == 1){ + Notification.error("The original one is not removable."); + return; + } + document.getElementById("div."+value).removeChild(document.getElementById("div."+value).lastChild); + } + }; + + function findVal(object, key) { + var value; + Object.keys(object).some(function(k) { + if (k === key) { + value = object[k]; + return true; + } + if (object[k] && typeof object[k] === 'object') { + value = findVal(object[k], key); + return value !== undefined; + } + }); + return value; + } + + $scope.pullVersion = function(serviceName) { + if(serviceName != undefined){ + var uuu = "policyController/getModelServiceVersioneData.htm"; + var postData={policyData: serviceName}; + $.ajax({ + type : 'POST', + url : uuu, + dataType: 'json', + contentType: 'application/json', + data: JSON.stringify(postData), + success : function(data){ + $scope.$apply(function(){ + $scope.microServiceModelsDictionaryVersionDatas = data[0].dcaeModelVersionData; + }); + }, + error : function(data){ + Notification.error("Error While Retriving the Template Layout Pattren."); + } + }); + } + }; - var splitDash = '-'; - var splitEqual = '='; - var splitComma = ','; - var splitcolon = ':'; - var splitsemicolon = ";"; - var splitEnum = "],"; - var plainAttributeKeys = []; - var matching = []; - var enumKeyList = []; - var dictionaryList = []; - var dictionaryNameList = []; - var isInitViewEdit = false; + var splitEqual = '='; + var splitComma = ','; + var splitcolon = ':'; + var splitEnum = "],"; + var plainAttributeKeys = []; + var matching = []; + var enumKeyList = []; + var dictionaryList = []; + var dictionaryNameList = []; + var isInitViewEdit = false; $scope.addDataToFields = function(serviceName, version){ if(serviceName != null && version !=null){ - var service=serviceName+"-v"+version; - var myNode = document.getElementById("DynamicTemplate"); - myNode.innerHTML = ''; + var service=serviceName+"-v"+version; + var myNode = document.getElementById("DynamicTemplate"); + myNode.innerHTML = ''; var uuu = "policyController/getDCAEMSTemplateData.htm"; var postData={policyData: service}; - console.log("service: " +service); var dataOrderInfo = ""; @@ -384,217 +348,206 @@ angular.module('abs').controller('dcaeMicroServiceController', ['$scope', '$wind contentType: 'application/json', data: JSON.stringify(postData), success : function(data){ - - document.getElementById("msPolicyloader").style.visibility = "hidden"; - + + document.getElementById("msPolicyloader").style.visibility = "hidden"; + $scope.$apply(function(){ - var plainAttributeKeys = []; - $scope.dcaeModelData = data[0].dcaeModelData; - $scope.dcaeJsonDate = data[0].jsonValue; + $scope.dcaeModelData = data[0].dcaeModelData; + $scope.dcaeJsonDate = data[0].jsonValue; $scope.dataOrderInfo = null; - $scope.dataOrderInfo = data[0].dataOrderInfo; - console.log("data[0].dataOrderInfo: " + data[0].dataOrderInfo); - console.log("$scope.dataOrderInfo: " + $scope.dataOrderInfo); - - if(data[0].allManyTrueKeys){ - console.log("$scope.allManyTrueKeys: " + $scope.allManyTrueKeys); - } - console.log("$scope.dcaeJsonDate: " + $scope.dcaeJsonDate); - var attributes = $scope.dcaeModelData.attributes; - console.log("attributes: " +attributes); - var refAttributes = $scope.dcaeModelData.ref_attributes; - var subAttributes = $scope.dcaeModelData.sub_attributes; - console.log("subAttributes: " + subAttributes); - console.log("refAttributes: " + refAttributes); - var headDefautlsData = data[0].headDefautlsData; - if(headDefautlsData != null){ - $scope.temp.policy.onapName = headDefautlsData.onapName; - $scope.temp.policy.guard = headDefautlsData.guard; - $scope.temp.policy.riskType = headDefautlsData.riskType; - $scope.temp.policy.riskLevel = headDefautlsData.riskLevel; - $scope.temp.policy.priority = headDefautlsData.priority; - } - - var enumAttributes = $scope.dcaeModelData.enumValues; - var annotation = $scope.dcaeModelData.annotation; - var dictionary = $scope.microServiceAttributeDictionaryDatas; + $scope.dataOrderInfo = data[0].dataOrderInfo; + + if(data[0].allManyTrueKeys){ + } + var attributes = $scope.dcaeModelData.attributes; + var refAttributes = $scope.dcaeModelData.ref_attributes; + var subAttributes = $scope.dcaeModelData.sub_attributes; + var headDefautlsData = data[0].headDefautlsData; + if(headDefautlsData != null){ + $scope.temp.policy.onapName = headDefautlsData.onapName; + $scope.temp.policy.guard = headDefautlsData.guard; + $scope.temp.policy.riskType = headDefautlsData.riskType; + $scope.temp.policy.riskLevel = headDefautlsData.riskLevel; + $scope.temp.policy.priority = headDefautlsData.priority; + } + + var annotation = $scope.dcaeModelData.annotation; + var dictionary = $scope.microServiceAttributeDictionaryDatas; - if (annotation == null || annotation.length<1){ - $scope.isCheck = true; - }else { - $scope.isCheck = false; - var annoationList = annotation.split(splitComma); - for (k = 0; k < annoationList.length; k++){ - var splitAnnotation = annoationList[k].split(splitEqual); - if (splitAnnotation[1].includes("matching-true")){ - matching.push(splitAnnotation[0].trim()); - } - } + if (annotation == null || annotation.length<1){ + $scope.isCheck = true; + }else { + $scope.isCheck = false; + var annoationList = annotation.split(splitComma); + for (k = 0; k < annoationList.length; k++){ + var splitAnnotation = annoationList[k].split(splitEqual); + if (splitAnnotation[1].includes("matching-true")){ + matching.push(splitAnnotation[0].trim()); + } + } - } + } - if (dictionary!= null && dictionary.length>1){ - for (m=0; m < dictionary.length; m += 1){ - var keyCompare = dictionary[m].name; - var valueCompare = dictionary[m].value; - var valueModel = dictionary[m].modelName; - var conpairService = serviceName; - if (valueModel.includes('-v')){ - conpairService = service; - } - if(valueModel.localeCompare(conpairService) == 0){ - console.log(valueCompare); - dictionaryList.push(dictionary[m]); - if (!dictionaryNameList.includes(dictionary[m].name)){ - dictionaryNameList.push(dictionary[m].name) - } - } - } - } + if (dictionary!= null && dictionary.length>1){ + for (m=0; m < dictionary.length; m += 1){ + var valueCompare = dictionary[m].value; + var valueModel = dictionary[m].modelName; + var conpairService = serviceName; + if (valueModel.includes('-v')){ + conpairService = service; + } + if(valueModel.localeCompare(conpairService) == 0){ + dictionaryList.push(dictionary[m]); + if (!dictionaryNameList.includes(dictionary[m].name)){ + dictionaryNameList.push(dictionary[m].name) + } + } + } + } - $scope.temp.policy.ruleGridData = []; - - if($scope.temp.policy.editPolicy || $scope.temp.policy.readOnly){ - dataOrderInfo = $scope.dataOrderInfo; - } - - $scope.jsonLayout($scope.dcaeJsonDate); - + $scope.temp.policy.ruleGridData = []; + + if($scope.temp.policy.editPolicy || $scope.temp.policy.readOnly){ + dataOrderInfo = $scope.dataOrderInfo; + } + + $scope.jsonLayout($scope.dcaeJsonDate); + }); if($scope.temp.policy.editPolicy || $scope.temp.policy.readOnly){ // If it's veiw or edit - isInitViewEdit = true; - var checkData = []; - var data = []; - // If ruleData contains extra elements created by clicked add button - console.log("$scope.temp.policy.ruleData:" + $scope.temp.policy.ruleData); - if($scope.temp.policy.ruleData != null){ - var propNames = Object.getOwnPropertyNames($scope.temp.policy.ruleData); - propNames.forEach(function(name) { - data.push(name); - }); - - var extraElements = data; - - if(plainAttributeKeys != null){ - for(var b = 0; b < plainAttributeKeys.length; b++){ // Remove already populated elements from data array - var newValue = plainAttributeKeys[b].split("*"); - for(var a = 0; a < data.length; a++){ - if(data[a] === newValue[0] || data[a] === (newValue[0]+"@0")){ - extraElements.splice(a, 1); - } - } - } - - //--- Populate these extra elements created by clicked add button - for(var a = 0; a < extraElements.length; a++){ - if(extraElements[a].includes("@")){ - var index = extraElements[a].lastIndexOf("@"); - if(index > 0){ - // Get the number after @ - var n = getNumOfDigits(extraElements[a], index+1); - - var key = extraElements[a].substring(0, index+n+1); //include @x in key also by n+2 since x can be 1,12, etc - console.log("key: " + key); - checkData.push(key); - } - } - } - var unique = checkData.filter(onlyUnique); - var parentLevelElements = []; - if(unique){ - //--- get all root level exta elments first (only contains one "@") - for(var i =0; i < unique.length; i++){ - var firstIndex = unique[i].indexOf("@"); - var lastIndex = unique[i].lastIndexOf("@"); - if(firstIndex == lastIndex){ - var newKey = unique[i].substring(0, firstIndex); - console.log("root element: " + newKey); - parentLevelElements.push(newKey); - unique[i] = "*processed*"; - } - } - } - - - for (var i = 0; i < $scope.labelManyKeys.length; i++) { - var label = $scope.labelManyKeys[i]; - if(parentLevelElements){ - for (var k = 0; k < parentLevelElements.length; k++){ - if(label == parentLevelElements[k]){ - addNewChoice(label); - } - } - } - } - - //if no layout order info, keep the process as before - if(!dataOrderInfo){ - for(var i =0; i < unique.length; i++){ - if(unique[i] != "*processed*"){ - var index = unique[i].lastIndexOf("@"); - var newKey = unique[i].substring(0, index); - console.log("newKey: " + newKey); - - var newElement = document.getElementById("div."+unique[j]); - //check weather it has been created already + isInitViewEdit = true; + var checkData = []; + var data = []; + // If ruleData contains extra elements created by clicked add button + if($scope.temp.policy.ruleData != null){ + var propNames = Object.getOwnPropertyNames($scope.temp.policy.ruleData); + propNames.forEach(function(name) { + if(document.getElementById(name) != null){ + if(document.getElementById(name).getAttribute("class") == "onoffswitch-checkbox"){ + if($scope.temp.policy.ruleData[name] == "true"){ + document.getElementById(name).setAttribute("checked", true); + } + else{ + document.getElementById(name).removeAttribute("checked"); + } + } + } + data.push(name); + }); + var extraElements = data; + if(plainAttributeKeys != null){ + for(var b = 0; b < plainAttributeKeys.length; b++){ // Remove already populated elements from data array + var newValue = plainAttributeKeys[b].split("*"); + for(var a = 0; a < data.length; a++){ + if(data[a] === newValue[0] || data[a] === (newValue[0]+"@0")){ + extraElements.splice(a, 1); + } + } + } + // --- Populate these extra elements created by clicked add button + for(var a = 0; a < extraElements.length; a++){ + if(extraElements[a].includes("@")){ + var index = extraElements[a].lastIndexOf("@"); + if(index > 0){ + // Get the number after @ + var n = getNumOfDigits(extraElements[a], index+1); + var key = extraElements[a].substring(0, index+n+1); // include @x in key also by n+2 since x can be 1,12,etc + checkData.push(key); + } + } + } + var unique = checkData.filter(onlyUnique); + var parentLevelElements = []; + if(unique){ + // --- get all root level exta elments first (only contains one "@") + for(var i =0; i < unique.length; i++){ + var firstIndex = unique[i].indexOf("@"); + var lastIndex = unique[i].lastIndexOf("@"); + if(firstIndex == lastIndex){ + var newKey = unique[i].substring(0, firstIndex); + parentLevelElements.push(newKey); + unique[i] = "*processed*"; + } + } + } + for (var i = 0; i < $scope.labelManyKeys.length; i++) { + var label = $scope.labelManyKeys[i]; + if(parentLevelElements){ + for (var k = 0; k < parentLevelElements.length; k++){ + if(label == parentLevelElements[k]){ + addNewChoice(label); + } + } + } + } + + // if no layout order info, keep the process as before + if(!dataOrderInfo){ + for(var i =0; i < unique.length; i++){ + if(unique[i] != "*processed*"){ + var index = unique[i].lastIndexOf("@"); + var newKey = unique[i].substring(0, index); + + var newElement = document.getElementById("div."+unique[j]); + // check weather it has been created already if(newElement != null){ - continue; + continue; }else{ - newElement = document.getElementById(unique[j]); - if(newElement != null){ - continue; - } + newElement = document.getElementById(unique[j]); + if(newElement != null){ + continue; + } } - if(newKey){ - addNewChoice(newKey); - } - } - } - }else{ - //---reset to default - dataOrderInfo = []; - $scope.labelManyKeys = []; - - //---process none labels - for (var j = 0; j < unique.length; j++){ - if(unique[j] != "*processed*"){ - // if not created yet - if(!document.getElementById(unique[j])){ - var index = unique[j].lastIndexOf("@"); - var newKey = unique[j].substring(0, index); - - var newElement = document.getElementById("div."+unique[j]); - - //check weather it has been created already + if(newKey){ + addNewChoice(newKey); + } + } + } + }else{ + // ---reset to default + dataOrderInfo = []; + $scope.labelManyKeys = []; + + // ---process none labels + for (var j = 0; j < unique.length; j++){ + if(unique[j] != "*processed*"){ + // if not created yet + if(!document.getElementById(unique[j])){ + var index = unique[j].lastIndexOf("@"); + var newKey = unique[j].substring(0, index); + + var newElement = document.getElementById("div."+unique[j]); + + // check weather it has been created already if(newElement != null){ - continue; + continue; }else{ - newElement = document.getElementById(unique[j]); - if(newElement != null){ - continue; - } + newElement = document.getElementById(unique[j]); + if(newElement != null){ + continue; + } } - //if not created yet, then create it. - addNewChoice(newKey); - - } - } - } - } - } - } + // if not created yet,then create it. + addNewChoice(newKey); + + } + } + } + } + } + } } var ele = angular.element(document.getElementById("DynamicTemplate")); - $compile(ele.contents())($scope); + $compile(ele.contents())($scope); $scope.$apply(); isInitViewEdit = false; }, error : function(data){ - alert("Error While Retriving the Template Layout Pattren."); + Notification.error("Error While Retriving the Template Layout Pattren."); } }); @@ -602,991 +555,967 @@ angular.module('abs').controller('dcaeMicroServiceController', ['$scope', '$wind }; function getNumOfDigits(str_value, index){ - // Get the number after @ - var str = str_value.substring(index, str_value.length); - var c = ''; - var n = 0; - for (var x = 0; x < str.length; x++){ - c = str.charAt(x); - if(!isNaN(c)){ + // Get the number after @ + var str = str_value.substring(index, str_value.length); + var c = ''; + var n = 0; + for (var x = 0; x < str.length; x++){ + c = str.charAt(x); + if(!isNaN(c)){ n++; - }else{ + }else{ break; } - } - return n; + } + return n; } function getDictionary(attribute){ - var dicName = attribute; - if(attribute){ - if(attribute.includes(":")){ - dicName = attribute.split(":")[0]; - } - } - var dictionaryRegExp = new RegExp(dicName); - listemunerateValues = []; - if (dictionaryRegExp.test(dictionaryNameList)) { - for (p=0; p < dictionaryList.length; p += 1) { - if (dicName == dictionaryList[p].name) { - listemunerateValues.push(dictionaryList[p].value); - } - } - } - return listemunerateValues; + var dicName = attribute; + if(attribute){ + if(attribute.includes(":")){ + dicName = attribute.split(":")[0]; + } + } + var dictionaryRegExp = new RegExp(dicName); + listemunerateValues = []; + if (dictionaryRegExp.test(dictionaryNameList)) { + for (p=0; p < dictionaryList.length; p += 1) { + if (dicName == dictionaryList[p].name) { + listemunerateValues.push(dictionaryList[p].value); + } + } + } + return listemunerateValues; } function getList(attribute) { - var enumName = attribute; - console.log("In getList: attribute => " + attribute); - if(attribute){ - if(attribute.includes(":")){ - enumName = attribute.split(":")[0]; - } - } + var enumName = attribute; + if(attribute){ + if(attribute.includes(":")){ + enumName = attribute.split(":")[0]; + } + } var baseEnum = $scope.dcaeModelData.enumValues; var enumList = []; if(baseEnum != null){ - enumList = baseEnum.split(splitEnum); + enumList = baseEnum.split(splitEnum); } - var enumAttributes; - var patternTest = new RegExp(enumName); - for (k=0; k < enumList.length; k += 1){ - if(patternTest.test(enumList[k]) == true){ - enumAttributes = enumList[k].trim(); - } - } + var enumAttributes; + var patternTest = new RegExp(enumName); + for (k=0; k < enumList.length; k += 1){ + if(patternTest.test(enumList[k]) == true){ + enumAttributes = enumList[k].trim(); + } + } if(enumAttributes){ - enumAttributes = enumAttributes.replace("[", ""); - enumAttributes = enumAttributes.replace("]", ""); - enumAttributes = enumAttributes.replace(/ /g, ''); - var dropListAfterCommaSplit = enumAttributes.split(splitEqual); - listemunerateValues = dropListAfterCommaSplit[1].split(splitComma); - //enumKeyList.push(attribute); - return listemunerateValues; + enumAttributes = enumAttributes.replace("[", ""); + enumAttributes = enumAttributes.replace("]", ""); + enumAttributes = enumAttributes.replace(/ /g, ''); + var dropListAfterCommaSplit = enumAttributes.split(splitEqual); + listemunerateValues = dropListAfterCommaSplit[1].split(splitComma); + // enumKeyList.push(attribute); + return listemunerateValues; } return []; - } - - function getBooleanList(){ - var booleanList = []; - booleanList.push(true); - booleanList.push(false); - return booleanList; - } - - - function isArray(arrayTest) { - return Object.prototype.toString.call(arrayTest) === '[object Array]'; - } - var lableList = []; - - $scope.layOutElementList = []; - $scope.layOutOnlyLableList = []; - - var elementOrderNum = 0; - - function deconstructJSON(layOutData, level , name) { + } + + function getBooleanList(){ + var booleanList = []; + booleanList.push(true); + booleanList.push(false); + return booleanList; + } + - var array = false; - var label = level; - var stringValue = "java.lang.String"; - var string = "string"; - var intValue = "int"; - var integerValue = "integer"; - var double = "double"; - var boolean = "boolean"; - var baseLevel = level; - var list = "list"; - var String = "String"; - - var attributekey = ""; - - if (name.length > 1){ - label = label + name + '.'; - } - - for (key in layOutData) { - array = isArray(layOutData[key]); - console.log("key: " + key , "value: " + layOutData[key]); - - if (!!layOutData[key] && typeof(layOutData[key])=="object") { - - if (array==false && key!=="0"){ - - if($scope.dataOrderInfo){ - var labelObject = {"label" : key, "level" : label, "array" : array}; - //save it to the list - $scope.layOutOnlyLableList.push(labelObject); - - }else { - //call label layout - $scope.labelLayout(label, key, array ); - } - - } - - if (array == true && key!=0){ - lableList.push(key); - } - - if (lableList.length > 0){ - array = true; - } - if ( key==="0"){ - var newKey = lableList.pop(); - - if($scope.dataOrderInfo){ - - var labelObject = {"label" : newKey, "level" : baseLevel, "array" : array}; - //save it to the list - $scope.layOutOnlyLableList.push(labelObject); - - }else { - //call label layout - $scope.labelLayout(baseLevel, newKey, array ); - } - - if (array){ - label = baseLevel + newKey + '@0.'; - } else { - label = baseLevel + newKey + '.'; - } - } - deconstructJSON(layOutData[key] , label, key); - } else { - var attirbuteLabel = label; - var defaultValue=''; - var description=''; - var isRequired = false; - if (layOutData[key].includes('defaultValue-')){ - defaultValue = layOutData[key].split('defaultValue-')[1]; - } - - if (layOutData[key].includes('description-')){ - description = layOutData[key].split('description-')[1]; - } - + function isArray(arrayTest) { + return Object.prototype.toString.call(arrayTest) === '[object Array]'; + } + var lableList = []; + + $scope.layOutElementList = []; + $scope.layOutOnlyLableList = []; + + var elementOrderNum = 0; + + function deconstructJSON(layOutData, level , name) { - if (key==="0"){ - array = true; - attributekey = lableList.pop(); - attirbuteLabel = baseLevel; - } else { - attributekey = key.split(); - } - - if (layOutData[key].includes('required-true')){ - isRequired = true; - } - - var subAttributes = $scope.dcaeModelData.sub_attributes; - - if(subAttributes){ - var jsonObject = JSON.parse(subAttributes); - - var lablInfo = findVal(jsonObject, attributekey); - console.log("deconstructJSON:findValue : " + attributekey +": "+ lablInfo); - if (lablInfo){ - if(lablInfo.includes('required-true')){ - isRequired = true; - } - if(lablInfo.includes('defaultValue-')){ - defaultValue = lablInfo.split('defaultValue-')[1]; - } - - if(lablInfo.includes('description-')){ - description = lablInfo.split('description-')[1]; - } - - }else{ - var allkeys = Object.keys(jsonObject); - if(allkeys){ - for (var k = 0; k < allkeys.length; k++) { - var keyValue = allkeys[k]; - console.log(" keyValue:jsonObject["+keyValue+ "]: " + jsonObject[keyValue]); - if(jsonObject[keyValue]){ - var tempObject = jsonObject[keyValue]; - if(tempObject && tempObject[key]){ - if (tempObject[key].includes('required-true')){ - isRequired = true; - } - - if(tempObject[key].includes('defaultValue-')){ - defaultValue = tempObject[key].split('defaultValue-')[1]; - } - - if(tempObject[key].includes('description-')){ - description = tempObject[key].split('description-')[1]; - } + var array = false; + var label = level; + var stringValue = "java.lang.String"; + var string = "string"; + var intValue = "int"; + var integerValue = "integer"; + var double = "double"; + var boolean = "boolean"; + var baseLevel = level; + + var attributekey = ""; + + if (name.length > 1){ + label = label + name + '.'; + } + + for (key in layOutData) { + array = isArray(layOutData[key]); + + if (!!layOutData[key] && typeof(layOutData[key])=="object") { + + if (array==false && key!=="0"){ + + if($scope.dataOrderInfo){ + var labelObject = {"label" : key, "level" : label, "array" : array}; + // save it to the list + $scope.layOutOnlyLableList.push(labelObject); + + }else { + // call label layout + $scope.labelLayout(label, key, array ); + } + + } + + if (array == true && key!=0){ + lableList.push(key); + } + + if (lableList.length > 0){ + array = true; + } + if ( key==="0"){ + var newKey = lableList.pop(); + + if($scope.dataOrderInfo){ + + var labelObject = {"label" : newKey, "level" : baseLevel, "array" : array}; + // save it to the list + $scope.layOutOnlyLableList.push(labelObject); + + }else { + // call label layout + $scope.labelLayout(baseLevel, newKey, array ); + } + + if (array){ + label = baseLevel + newKey + '@0.'; + } else { + label = baseLevel + newKey + '.'; + } + } + deconstructJSON(layOutData[key] , label, key); + } else { + var attirbuteLabel = label; + var defaultValue=''; + var description=''; + var isRequired = false; + if (layOutData[key].includes('defaultValue-')){ + defaultValue = layOutData[key].split('defaultValue-')[1]; + } + + if (layOutData[key].includes('description-')){ + description = layOutData[key].split('description-')[1]; + } + - } - } - } - } - } - } - - var elementObject = {}; - switch (layOutData[key].split(splitcolon)[0]){ - - case stringValue: - case string: - if($scope.dataOrderInfo){ - elementOrderNum++; - elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue, "isRequired": isRequired, "type":"text", "description":description}; - $scope.layOutElementList.push(elementObject); - }else{ - $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "text"); - } - break; - case intValue: - case integerValue: - if($scope.dataOrderInfo){ - elementOrderNum++; - elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "type":"number" , "description":description}; - $scope.layOutElementList.push(elementObject); - }else{ - $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "number"); - } - break; - case double: - if($scope.dataOrderInfo){ - elementOrderNum++; - elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "type":"double", "description":description}; - $scope.layOutElementList.push(elementObject); - }else{ - $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "double"); - } - break; - case boolean: - if($scope.dataOrderInfo){ - elementOrderNum++; - elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue, "isRequired": isRequired, "type":"boolean", "description":description}; - $scope.layOutElementList.push(elementObject); - }else{ - $scope.dropBoxLayout(attirbuteLabel, attributekey, array, layOutData[key], getBooleanList()); - } - break; - default: - if (layOutData[key].includes('dictionary-')){ - var list = getDictionary(layOutData[key].split('dictionary-')[1]); - }else{ - //--- get dropdown values from enumValues - var list = getList(layOutData[key]); - } - if (list.length===0){ //not dropdown element - if($scope.dataOrderInfo){ - elementOrderNum++; - elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "type":"text", "description":description}; - $scope.layOutElementList.push(elementObject); - - }else{ - $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "text"); - } - }else{ - if($scope.dataOrderInfo){ - elementOrderNum++; - elementObject = {"id": elementOrderNum, "attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "list":list, "type":"dropBox", "description":description}; - $scope.layOutElementList.push(elementObject); - }else{ - $scope.dropBoxLayout(attirbuteLabel, attributekey, array, layOutData[key], list, isRequired); - } - } - break; - } - } - } - } - - - $scope.validContionalRequired = function(parentId) { - console.log("ng-blur event: parentId : " + parentId); - var c = document.getElementById(parentId).children; - var i; - var hasValue = false; - for (i = 0; i < c.length; i++) { - if(c[i].getAttribute("data-conditional")){ - console.log(c[i].getAttribute("data-conditional")); - console.log(c[i].value); - if(c[i].value != null && c[i].value.trim() != ""){ - hasValue = true; - } - } - } + if (key==="0"){ + array = true; + attributekey = lableList.pop(); + attirbuteLabel = baseLevel; + } else { + attributekey = key.split(); + } + + if (layOutData[key].includes('required-true')){ + isRequired = true; + } + + var subAttributes = $scope.dcaeModelData.subAttributes; + + if(subAttributes){ + var jsonObject = JSON.parse(subAttributes); + + var lablInfo = findVal(jsonObject, attributekey); + if (lablInfo){ + if(lablInfo.includes('required-true')){ + isRequired = true; + } + if(lablInfo.includes('defaultValue-')){ + defaultValue = lablInfo.split('defaultValue-')[1]; + } + + if(lablInfo.includes('description-')){ + description = lablInfo.split('description-')[1]; + } + + }else{ + var allkeys = Object.keys(jsonObject); + if(allkeys){ + for (var k = 0; k < allkeys.length; k++) { + var keyValue = allkeys[k]; + if(jsonObject[keyValue]){ + var tempObject = jsonObject[keyValue]; + if(tempObject && tempObject[key]){ + if (tempObject[key].includes('required-true')){ + isRequired = true; + } + + if(tempObject[key].includes('defaultValue-')){ + defaultValue = tempObject[key].split('defaultValue-')[1]; + } + + if(tempObject[key].includes('description-')){ + description = tempObject[key].split('description-')[1]; + } - for (i = 0; i < c.length; i++) { - if(c[i].getAttribute("data-conditional")){ - if(hasValue){ - c[i].setAttribute("required", true); - }else{ - c[i].removeAttribute("required"); - } - } - } - } - - $scope.jsonLayout = function(layOutData){ - - deconstructJSON(layOutData , "", ""); - - var orderValue = $scope.dataOrderInfo; - var layOutElementList = $scope.layOutElementList; - var labelList = $scope.layOutOnlyLableList; - - //reset to default - elementOrderNum = 0; - $scope.layOutElementList = []; - $scope.layOutOnlyLableList = []; - - // Only layout in order if order info provided - if(orderValue){ - - if(orderValue.includes("[")){ - orderValue = orderValue.replace("[", "") ; - orderValue = orderValue.replace("]", "") ; - } - - orderValue = orderValue.split(',') ; - - for (var i = 0; i < orderValue.length; i++) { - console.log("orderValue["+i+"]"+ orderValue[i]); - var key = orderValue[i].trim(); - - //--- Create labels first {"label" : newKey, "level" : baseLevel, "array" : array}; - if(labelList){ - for (var k = 0; k < labelList.length; k++){ - - var label = labelList[k].label.toString().trim(); - var level = labelList[k].level.toString().trim(); - var array = labelList[k].array; - - if(key == label){ - $scope.labelLayout(level, label, array); - //in case to have duplicate label names - labelList[k].label = "*processed*"; - break; - } - } - } - //--- then layout each element based on its order defined in YAML file - for (var j = 0; j < layOutElementList.length; j++) { - - var attributekey = layOutElementList[j].attributekey.toString().trim(); - - if(key == attributekey){ + } + } + } + } + } + } + + var elementObject = {}; + switch (layOutData[key].split(splitcolon)[0]){ + + case stringValue: + case string: + if($scope.dataOrderInfo){ + elementOrderNum++; + elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue, "isRequired": isRequired, "type":"text", "description":description}; + $scope.layOutElementList.push(elementObject); + }else{ + $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "text"); + } + break; + case intValue: + case integerValue: + if($scope.dataOrderInfo){ + elementOrderNum++; + elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "type":"number" , "description":description}; + $scope.layOutElementList.push(elementObject); + }else{ + $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "number"); + } + break; + case double: + if($scope.dataOrderInfo){ + elementOrderNum++; + elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "type":"double", "description":description}; + $scope.layOutElementList.push(elementObject); + }else{ + $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "double"); + } + break; + case boolean: + if($scope.dataOrderInfo){ + elementOrderNum++; + elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue, "isRequired": isRequired, "type":"boolean", "description":description}; + $scope.layOutElementList.push(elementObject); + }else{ + $scope.dropBoxLayout(attirbuteLabel, attributekey, array, layOutData[key], getBooleanList()); + } + break; + default: + if (layOutData[key].includes('dictionary-')){ + var list = getDictionary(layOutData[key].split('dictionary-')[1]); + }else{ + // --- get dropdown values from enumValues + var list = getList(layOutData[key]); + } + if (list.length===0){ // not dropdown element + if($scope.dataOrderInfo){ + elementOrderNum++; + elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "type":"text", "description":description}; + $scope.layOutElementList.push(elementObject); + + }else{ + $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "text"); + } + }else{ + if($scope.dataOrderInfo){ + elementOrderNum++; + elementObject = {"id": elementOrderNum, "attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "list":list, "type":"dropBox", "description":description}; + $scope.layOutElementList.push(elementObject); + }else{ + $scope.dropBoxLayout(attirbuteLabel, attributekey, array, layOutData[key], list, isRequired); + } + } + break; + } + } + } + } + + + $scope.validContionalRequired = function(parentId) { + var c = document.getElementById(parentId).children; + var i; + var hasValue = false; + for (i = 0; i < c.length; i++) { + if(c[i].getAttribute("data-conditional")){ + if(c[i].value != null && c[i].value.trim() != ""){ + hasValue = true; + } + } + } - var attirbuteLabel = layOutElementList[j].attirbuteLabel.toString().trim(); - var defaultValue = layOutElementList[j].defaultValue.toString().trim(); - var description = layOutElementList[j].description; - var isRequired = layOutElementList[j].isRequired; - - console.log("layOutElementList[" +j+ "]: id:" + layOutElementList[j].id + ", attributekey:"+ layOutElementList[j].attributekey + ", attirbuteLabel:" + layOutElementList[j].attirbuteLabel); - console.log("layOutElementList[" +j+ "]: type:" + layOutElementList[j].type); - if (layOutElementList[j].type == "dropBox"){ - $scope.dropBoxLayout(attirbuteLabel, attributekey, layOutElementList[j].array, defaultValue, layOutElementList[j].list, isRequired, description); - - }else{ - $scope.attributeBox(attributekey, layOutElementList[j].array, attirbuteLabel, defaultValue, isRequired, layOutElementList[j].type, description); - - } - - //in case to have duplicate attribute names - layOutElementList[j].attributekey = "*processed*"; - break; - } - } - } - } - } - - - $scope.attributeBox = function(attibuteKey, attributeManyKey, labelValue, defaultValue, isRequired, dataType, description){ - $scope.temp.policy.ruleGridData.push(attibuteKey); - var br = document.createElement("BR"); - - var label = document.createElement("Label"); - var labeltext = null; - var requiredLabName = ""; - if (matching.includes(attibuteKey)){ - labeltext = document.createTextNode(attibuteKey + "*!"); - isRequired = true; //set required as true for matching element - }else { - if(isRequired){ - requiredLabName = attibuteKey + " * "; - labeltext = document.createTextNode(requiredLabName); - }else{ - labeltext = document.createTextNode(attibuteKey); - } - } + for (i = 0; i < c.length; i++) { + if(c[i].getAttribute("data-conditional")){ + if(hasValue){ + c[i].setAttribute("required", true); + }else{ + c[i].removeAttribute("required"); + } + } + } + } + + $scope.jsonLayout = function(layOutData){ + + deconstructJSON(layOutData , "", ""); + + var orderValue = $scope.dataOrderInfo; + var layOutElementList = $scope.layOutElementList; + var labelList = $scope.layOutOnlyLableList; + + // reset to default + elementOrderNum = 0; + $scope.layOutElementList = []; + $scope.layOutOnlyLableList = []; + + // Only layout in order if order info provided + if(orderValue){ + + if(orderValue.includes("[")){ + orderValue = orderValue.replace("[", "") ; + orderValue = orderValue.replace("]", "") ; + } + + orderValue = orderValue.split(',') ; + + for (var i = 0; i < orderValue.length; i++) { + var key = orderValue[i].trim(); + + // --- Create labels first {"label" : newKey, "level" : baseLevel, "array" : array}; + if(labelList){ + for (var k = 0; k < labelList.length; k++){ + + var label = labelList[k].label.toString().trim(); + var level = labelList[k].level.toString().trim(); + var array = labelList[k].array; + + if(key == label){ + $scope.labelLayout(level, label, array); + // in case to have duplicate label names + labelList[k].label = "*processed*"; + break; + } + } + } + // --- then layout each element based on its order defined in YAML file + for (var j = 0; j < layOutElementList.length; j++) { + + var attributekey = layOutElementList[j].attributekey.toString().trim(); + + if(key == attributekey){ - - var divID = labelValue; - - if (labelValue.length < 1){ - divID = "DynamicTemplate"; - }else if (labelValue.endsWith('.')){ - var divID = 'div.'+ labelValue.substring(0, labelValue.length-1); - } - - label.appendChild(labeltext); - - var textField = document.createElement("INPUT"); - - textField.setAttribute("class" , "form-control"); - if(dataType){ - if(dataType == "double"){ - textField.setAttribute("type" , "number"); - textField.setAttribute("step" , "any"); + var attirbuteLabel = layOutElementList[j].attirbuteLabel.toString().trim(); + var defaultValue = layOutElementList[j].defaultValue.toString().trim(); + var description = layOutElementList[j].description; + var isRequired = layOutElementList[j].isRequired; + + if (layOutElementList[j].type == "dropBox"){ + $scope.dropBoxLayout(attirbuteLabel, attributekey, layOutElementList[j].array, defaultValue, layOutElementList[j].list, isRequired, description); + + }else{ + $scope.attributeBox(attributekey, layOutElementList[j].array, attirbuteLabel, defaultValue, isRequired, layOutElementList[j].type, description); + + } + + // in case to have duplicate attribute names + layOutElementList[j].attributekey = "*processed*"; + break; + } + } + } + } + } + + + $scope.attributeBox = function(attibuteKey, attributeManyKey, labelValue, defaultValue, isRequired, dataType, description){ + $scope.temp.policy.ruleGridData.push(attibuteKey); + var br = document.createElement("BR"); + + var label = document.createElement("Label"); + var labeltext = null; + var requiredLabName = ""; + if (matching.includes(attibuteKey)){ + labeltext = document.createTextNode(attibuteKey + "*!"); + isRequired = true; // set required as true for matching element + }else { + if(isRequired){ + requiredLabName = attibuteKey + " * "; + labeltext = document.createTextNode(requiredLabName); + }else{ + labeltext = document.createTextNode(attibuteKey); + } + } - }else if(dataType == "boolean"){ //gw1218 testing boolean - var booleanDiv = document.createElement("div"); + + var divID = labelValue; + + if (labelValue.length < 1){ + divID = "DynamicTemplate"; + }else if (labelValue.endsWith('.')){ + var divID = 'div.'+ labelValue.substring(0, labelValue.length-1); + } + + label.appendChild(labeltext); + + var textField = document.createElement("INPUT"); + + textField.setAttribute("class" , "form-control"); + if(dataType){ + if(dataType == "double"){ + textField.setAttribute("type" , "number"); + textField.setAttribute("step" , "any"); - booleanDiv.setAttribute("class" , "onoffswitch"); + }else if(dataType == "boolean"){ // gw1218 testing boolean + var booleanDiv = document.createElement("div"); - //var checkField = document.createElement("INPUT"); - textField.setAttribute("type" , "checkbox"); - textField.setAttribute("name" , "onoffswitch"); - textField.setAttribute("class" , "onoffswitch-checkbox"); - textField.setAttribute("id" , ''+labelValue +attibuteKey+''); - if(defaultValue.substring(0,defaultValue.indexOf(":")) == "true") { - textField.setAttribute("checked" , true); - }else{ - textField.removeAttribute("checked"); - } + booleanDiv.setAttribute("class" , "onoffswitch"); - var booleanlabel = document.createElement("Label"); - booleanlabel.setAttribute("class" , "onoffswitch-label"); - booleanlabel.setAttribute("for" , ''+labelValue +attibuteKey+''); - - var span1 = document.createElement("span"); - span1.setAttribute("class" , "onoffswitch-inner"); - - var span2 = document.createElement("span"); - span2.setAttribute("class" , "onoffswitch-switch"); - - - booleanlabel.appendChild(span1); - booleanlabel.appendChild(span2); - booleanDiv.appendChild(textField); - booleanDiv.appendChild(booleanlabel); - - document.getElementById(divID).appendChild(label); - document.getElementById(divID).appendChild(booleanDiv); + // var checkField = document.createElement("INPUT"); + textField.setAttribute("type" , "checkbox"); + textField.setAttribute("name" , "onoffswitch"); + textField.setAttribute("class" , "onoffswitch-checkbox"); + textField.setAttribute("id" , ''+labelValue +attibuteKey+''); + if(defaultValue.substring(0,defaultValue.indexOf(":")) == "true") { + textField.setAttribute("checked" , true); + }else{ + textField.removeAttribute("checked"); + } + textField.setAttribute("ng-click" , "validateOnAndOff('"+labelValue +attibuteKey+"', $event)"); + var booleanlabel = document.createElement("Label"); + booleanlabel.setAttribute("class" , "onoffswitch-label"); + booleanlabel.setAttribute("for" , ''+labelValue +attibuteKey+''); + + var span1 = document.createElement("span"); + span1.setAttribute("class" , "onoffswitch-inner"); + + var span2 = document.createElement("span"); + span2.setAttribute("class" , "onoffswitch-switch"); + + + booleanlabel.appendChild(span1); + booleanlabel.appendChild(span2); + booleanDiv.appendChild(textField); + booleanDiv.appendChild(booleanlabel); + + document.getElementById(divID).appendChild(label); + document.getElementById(divID).appendChild(booleanDiv); - //return; - } else{ - textField.setAttribute("type" , dataType); - } - - + // return; + } else{ + textField.setAttribute("type" , dataType); + } + + - } - - if(dataType != "boolean"){ - textField.setAttribute("style" , "width:300px;"); - textField.setAttribute("ng-disabled" , "temp.policy.readOnly"); - if(description && description != "null"){ - textField.setAttribute("title", description); - } - } + } + + if(dataType != "boolean"){ + textField.setAttribute("style" , "width:300px;"); + textField.setAttribute("ng-disabled" , "temp.policy.readOnly"); + if(description && description != "null"){ + textField.setAttribute("title", description); + } + } - var checkKey; - var id = ""; - if(attributeManyKey){ - checkKey = labelValue + attibuteKey+'@0'; - textField.setAttribute("id" , ''+labelValue + attibuteKey+'@0'+''); - var divTag = document.createElement("div"); - divTag.setAttribute("id", "div."+ labelValue +attibuteKey); - var addButton = document.createElement("BUTTON"); - var buttonaddLabel = document.createTextNode("+"); - addButton.appendChild(buttonaddLabel); - addButton.setAttribute("id", labelValue + attibuteKey); - addButton.setAttribute("class", "btn btn-add-remove"); - addButton.setAttribute("onclick" , 'addNewChoice("'+labelValue + attibuteKey+'");'); - addButton.setAttribute("ng-disabled" , "temp.policy.readOnly"); - var removeButton = document.createElement("BUTTON"); - var buttonremoveLabel = document.createTextNode("-"); - removeButton.appendChild(buttonremoveLabel); - removeButton.setAttribute("class", "btn btn-add-remove"); - removeButton.setAttribute("onclick" , 'removeChoice("'+labelValue + attibuteKey+'");'); - removeButton.setAttribute("ng-disabled" , "temp.policy.readOnly"); - document.getElementById(divID).appendChild(addButton); - document.getElementById(divID).appendChild(removeButton); - document.getElementById(divID).appendChild(label); - id = "div."+labelValue+attibuteKey; - //var divTag = document.createElement("div"); - divTag.setAttribute("id", id); - document.getElementById(divID).appendChild(divTag); - textField.className += ' first_child'; - if(isRequired){ - textField.setAttribute("required", "true"); - } - - divTag.appendChild(textField); - document.getElementById(divID).appendChild(divTag); - - }else if (dataType != "boolean"){ - checkKey = labelValue + attibuteKey; - textField.setAttribute("id" , ''+labelValue +attibuteKey+''); - if(document.getElementById(divID).hasAttribute('required') || !document.getElementById(divID).hasAttribute('data-conditional')){ - if(requiredLabName.includes("*") || isRequired){ - textField.setAttribute("required", "true"); - } - }else if (document.getElementById(divID).hasAttribute('data-conditional')){ - if(requiredLabName.includes("*")){ - var requiredNode = document.createElement('span'); - requiredNode.setAttribute("class", "mstooltip"); - requiredNode.textContent = "?"; - label.appendChild(requiredNode); - - var requiredNodeToolTip = document.createElement('span'); - requiredNodeToolTip.setAttribute("class", "tooltiptext"); - requiredNodeToolTip.textContent = "Conditional Required"; - requiredNode.appendChild(requiredNodeToolTip); - - textField.setAttribute("data-conditional", divID); - textField.setAttribute("ng-blur", "validContionalRequired('"+divID+"')"); - } - } + var checkKey; + var id = ""; + if(attributeManyKey){ + checkKey = labelValue + attibuteKey+'@0'; + textField.setAttribute("id" , ''+labelValue + attibuteKey+'@0'+''); + var divTag = document.createElement("div"); + divTag.setAttribute("id", "div."+ labelValue +attibuteKey); + var addButton = document.createElement("BUTTON"); + var buttonaddLabel = document.createTextNode("+"); + addButton.appendChild(buttonaddLabel); + addButton.setAttribute("id", labelValue + attibuteKey); + addButton.setAttribute("class", "btn btn-add-remove"); + addButton.setAttribute("onclick" , 'addNewChoice("'+labelValue + attibuteKey+'");'); + addButton.setAttribute("ng-disabled" , "temp.policy.readOnly"); + var removeButton = document.createElement("BUTTON"); + var buttonremoveLabel = document.createTextNode("-"); + removeButton.appendChild(buttonremoveLabel); + removeButton.setAttribute("class", "btn btn-add-remove"); + removeButton.setAttribute("onclick" , 'removeChoice("'+labelValue + attibuteKey+'");'); + removeButton.setAttribute("ng-disabled" , "temp.policy.readOnly"); + document.getElementById(divID).appendChild(addButton); + document.getElementById(divID).appendChild(removeButton); + document.getElementById(divID).appendChild(label); + id = "div."+labelValue+attibuteKey; + // var divTag = document.createElement("div"); + divTag.setAttribute("id", id); + document.getElementById(divID).appendChild(divTag); + textField.className += ' first_child'; + if(isRequired){ + textField.setAttribute("required", "true"); + } + + divTag.appendChild(textField); + document.getElementById(divID).appendChild(divTag); + + }else if (dataType != "boolean"){ + checkKey = labelValue + attibuteKey; + textField.setAttribute("id" , ''+labelValue +attibuteKey+''); + if(document.getElementById(divID).hasAttribute('required') || !document.getElementById(divID).hasAttribute('data-conditional')){ + if(requiredLabName.includes("*") || isRequired){ + textField.setAttribute("required", "true"); + } + }else if (document.getElementById(divID).hasAttribute('data-conditional')){ + if(requiredLabName.includes("*")){ + var requiredNode = document.createElement('span'); + requiredNode.setAttribute("class", "mstooltip"); + requiredNode.textContent = "?"; + label.appendChild(requiredNode); + + var requiredNodeToolTip = document.createElement('span'); + requiredNodeToolTip.setAttribute("class", "tooltiptext"); + requiredNodeToolTip.textContent = "Conditional Required"; + requiredNode.appendChild(requiredNodeToolTip); + + textField.setAttribute("data-conditional", divID); + textField.setAttribute("ng-blur", "validContionalRequired('"+divID+"')"); + } + } - document.getElementById(divID).appendChild(label); - document.getElementById(divID).appendChild(textField); - document.getElementById(divID).appendChild(br); + document.getElementById(divID).appendChild(label); + document.getElementById(divID).appendChild(textField); + document.getElementById(divID).appendChild(br); - } + } - if(dataType != "boolean" && divID.includes("@0") && divID.includes("div.")){ - var firstChild_Id = divID.split("@0")[0]; - var firstChild_element = document.getElementById(firstChild_Id); - if(firstChild_element){ - - if(!firstChild_element.className.includes('children_group border')){ - layer++; - if(layer > 4){ - layer = 1 - }; - firstChild_element.className += ' children_group border' + layer; //here is div with a group of children. - } - } - } - console.log('firstChild_Id: ' + firstChild_Id); - console.log('divID: ' + divID); - - if(dataType != "boolean" && defaultValue.length > 0){ - if(defaultValue.includes(":")){ - defaultValue = defaultValue.split(":")[0]; - if(defaultValue === "NA") { - defaultValue = ""; - } - } - if(defaultValue != "undefined" && defaultValue != undefined && defaultValue != "null"){ - document.getElementById(checkKey).value = defaultValue; - } - } - - if($scope.temp.policy.ruleData != null){ - //document.getElementById(checkKey).value = $scope.temp.policy.ruleData[checkKey]; - if (attributeManyKey){ - var newCheckKey = checkKey.replace(attibuteKey + '@0',attibuteKey); - if($scope.temp.policy.ruleData[newCheckKey +'@0'] != undefined && $scope.temp.policy.ruleData[newCheckKey +'@0'] != "undefined"){ - document.getElementById(newCheckKey +'@0').value = $scope.temp.policy.ruleData[newCheckKey +'@0']; - } - }else{ - if($scope.temp.policy.ruleData[checkKey] != undefined && $scope.temp.policy.ruleData[checkKey] != "undefined"){ - document.getElementById(checkKey).value = $scope.temp.policy.ruleData[checkKey]; - } - } - } - - if (dataType != "boolean"){ - plainAttributeKeys.push(labelValue + attibuteKey+'*'+attributeManyKey); - }else{ - plainAttributeKeys.push(labelValue + attibuteKey+'*'+"boolean"); - } + if(dataType != "boolean" && divID.includes("@0") && divID.includes("div.")){ + var firstChild_Id = divID.split("@0")[0]; + var firstChild_element = document.getElementById(firstChild_Id); + if(firstChild_element){ + + if(!firstChild_element.className.includes('children_group border')){ + layer++; + if(layer > 4){ + layer = 1 + } + firstChild_element.className += ' children_group border' + layer; // here is div with a group of children. + } + } + } + + if(dataType != "boolean" && defaultValue.length > 0){ + if(defaultValue.includes(":")){ + defaultValue = defaultValue.split(":")[0]; + if(defaultValue === "NA") { + defaultValue = ""; + } + } + if(defaultValue != "undefined" && defaultValue != undefined && defaultValue != "null"){ + document.getElementById(checkKey).value = defaultValue; + } + } + + if($scope.temp.policy.ruleData != null){ + // document.getElementById(checkKey).value = + // $scope.temp.policy.ruleData[checkKey]; + if (attributeManyKey){ + var newCheckKey = checkKey.replace(attibuteKey + '@0',attibuteKey); + if($scope.temp.policy.ruleData[newCheckKey +'@0'] != undefined && $scope.temp.policy.ruleData[newCheckKey +'@0'] != "undefined"){ + document.getElementById(newCheckKey +'@0').value = $scope.temp.policy.ruleData[newCheckKey +'@0']; + } + }else{ + if($scope.temp.policy.ruleData[checkKey] != undefined && $scope.temp.policy.ruleData[checkKey] != "undefined"){ + document.getElementById(checkKey).value = $scope.temp.policy.ruleData[checkKey]; + } + } + } + + if (dataType != "boolean"){ + plainAttributeKeys.push(labelValue + attibuteKey+'*'+attributeManyKey); + }else{ + plainAttributeKeys.push(labelValue + attibuteKey+'*'+"boolean"); + } + }; + + $scope.validateOnAndOff = function(id , value) { + console.log(id, value); + if (value.target.checked) { + document.getElementById(id).setAttribute("checked", true); + } else { + document.getElementById(id).removeAttribute("checked"); + } }; - + $scope.labelManyKeys = []; $scope.labelLayout = function(labelValue, lableName, labelManyKey ){ - var label = document.createElement("Label") - var divID = labelValue; - if (labelValue.endsWith('.')){ - var workingLabel = labelValue.substring(0, labelValue.length-1); - }else { - var workingLabel = labelValue; - } - - if (labelValue.length < 1){ - divID = "DynamicTemplate"; - } else if (labelValue.endsWith('.')){ - var divID = 'div.'+ labelValue.substring(0, labelValue.length-1); - } - - var subAttributes = $scope.dcaeModelData.sub_attributes; - var jsonObject = JSON.parse(subAttributes); - var lablInfo = findVal(jsonObject, lableName); - console.log("findValue : " + lableName +": "+ lablInfo); - var star = ""; - var required = null; - if(lablInfo){ - if(typeof lablInfo === 'string' ){ - if(lablInfo.includes("required-true")){ - star = " *"; - required = true; - }else if (lablInfo.includes("required-false")){ - required = false - } - } - } - - var labeltext = document.createTextNode(lableName + star); - - label.appendChild(labeltext); + var label = document.createElement("Label") + var divID = labelValue; + if (labelValue.endsWith('.')){ + var workingLabel = labelValue.substring(0, labelValue.length-1); + }else { + var workingLabel = labelValue; + } + if (labelValue.length < 1){ + divID = "DynamicTemplate"; + } else if (labelValue.endsWith('.')){ + var divID = 'div.'+ labelValue.substring(0, labelValue.length-1); + } + + var subAttributes = $scope.dcaeModelData.subAttributes; + var jsonObject = JSON.parse(subAttributes); + var lablInfo = findVal(jsonObject, lableName); + var star = ""; + var required = null; + if(lablInfo){ + if(typeof lablInfo === 'string' ){ + if(lablInfo.includes("required-true")){ + star = " *"; + required = true; + }else if (lablInfo.includes("required-false")){ + required = false + } + } + } + + var labeltext = document.createTextNode(lableName + star); + + label.appendChild(labeltext); - if(labelManyKey){ - var addButton = document.createElement("BUTTON"); - var buttonLabel = document.createTextNode("+"); - addButton.appendChild(buttonLabel); - addButton.setAttribute("class", "btn btn-add-remove"); - addButton.setAttribute("onclick" , 'addNewChoice("'+labelValue + lableName+'");'); - addButton.setAttribute("ng-disabled" , "temp.policy.readOnly"); - var removeButton = document.createElement("BUTTON"); - var buttonremoveLabel = document.createTextNode("-"); - removeButton.appendChild(buttonremoveLabel); - removeButton.setAttribute("class", "btn btn-add-remove"); - removeButton.setAttribute("onclick" , 'removeChoice("'+labelValue +lableName+'");'); - removeButton.setAttribute("ng-disabled" , "temp.policy.readOnly"); - document.getElementById(divID).appendChild(addButton); - document.getElementById(divID).appendChild(removeButton); - document.getElementById(divID).appendChild(label); - var id = "div."+labelValue+lableName; - var divTag = document.createElement("div"); - divTag.setAttribute("id", id); - document.getElementById(divID).appendChild(divTag); - - var divTag = document.createElement("div"); - divTag.setAttribute("id", id +'@0'); - - if(!divTag.className.includes('children_group border')){ - layer++; - if(layer > 4){ - layer = 1 - }; - divTag.className += ' children_group border' + layer; //here is div with a group of children. - } - if(required){ - divTag.setAttribute("required", required); - }else if(required == false){ - divTag.setAttribute("data-conditional", "yes"); - } - - document.getElementById(id).appendChild(divTag); - - $scope.labelManyKeys.push(lableName); - - }else{ - var divTag = document.createElement("div"); - divTag.setAttribute("id", "div."+labelValue+lableName); - - if(!divTag.className.includes('children_group border')){ - layer++; - if(layer > 4){ - layer = 1 - }; - divTag.className += ' children_group border' + layer; //here is div with a group of children. - } - if(required){ - divTag.setAttribute("required", required); - }else if(required == false){ - divTag.setAttribute("data-conditional", "yes"); - } - document.getElementById(divID).appendChild(label); - document.getElementById(divID).appendChild(divTag); - } + if(labelManyKey){ + var addButton = document.createElement("BUTTON"); + var buttonLabel = document.createTextNode("+"); + addButton.appendChild(buttonLabel); + addButton.setAttribute("class", "btn btn-add-remove"); + addButton.setAttribute("onclick" , 'addNewChoice("'+labelValue + lableName+'");'); + addButton.setAttribute("ng-disabled" , "temp.policy.readOnly"); + var removeButton = document.createElement("BUTTON"); + var buttonremoveLabel = document.createTextNode("-"); + removeButton.appendChild(buttonremoveLabel); + removeButton.setAttribute("class", "btn btn-add-remove"); + removeButton.setAttribute("onclick" , 'removeChoice("'+labelValue +lableName+'");'); + removeButton.setAttribute("ng-disabled" , "temp.policy.readOnly"); + document.getElementById(divID).appendChild(addButton); + document.getElementById(divID).appendChild(removeButton); + document.getElementById(divID).appendChild(label); + var id = "div."+labelValue+lableName; + var divTag = document.createElement("div"); + divTag.setAttribute("id", id); + document.getElementById(divID).appendChild(divTag); + + var divTag = document.createElement("div"); + divTag.setAttribute("id", id +'@0'); + + if(!divTag.className.includes('children_group border')){ + layer++; + if(layer > 4){ + layer = 1 + } + divTag.className += ' children_group border' + layer; // here is div with a group of children. + } + if(required){ + divTag.setAttribute("required", required); + }else if(required == false){ + divTag.setAttribute("data-conditional", "yes"); + } + + document.getElementById(id).appendChild(divTag); + + $scope.labelManyKeys.push(lableName); + + }else{ + var divTag = document.createElement("div"); + divTag.setAttribute("id", "div."+labelValue+lableName); + + if(!divTag.className.includes('children_group border')){ + layer++; + if(layer > 4){ + layer = 1 + } + divTag.className += ' children_group border' + layer; // here is div with a group of children. + } + if(required){ + divTag.setAttribute("required", required); + }else if(required == false){ + divTag.setAttribute("data-conditional", "yes"); + } + document.getElementById(divID).appendChild(label); + document.getElementById(divID).appendChild(divTag); + } }; $scope.dropBoxLayout = function(labelLevel, attributeName, many , defaultValue, listemunerateValues, isRequired, description){ - var br = document.createElement("BR"); - - if (labelLevel.length < 1){ - var divID = "DynamicTemplate"; - } else if (labelLevel.endsWith('.')){ - var divID = 'div.'+ labelLevel.substring(0, labelLevel.length-1); - } - - - var label = document.createElement("Label") - - var refAttributes = $scope.dcaeModelData.ref_attributes; - if(isRequired != true && refAttributes){ //check refAttributes also - var refAttributesList = refAttributes.split(splitComma); - for (k = 0; k < refAttributesList.length; k++){ - var refAttribute = refAttributesList[k].split(splitEqual); - if (attributeName == refAttribute[0].trim() && refAttribute[1].includes("required-true")){ - isRequired = true; - } - } - } - - if (matching.includes(attributeName)){ - var labeltext = document.createTextNode(attributeName + "*!"); - label.appendChild(labeltext); - isRequired = true; //set required as true for matching element - }else { - var labeltext = document.createTextNode(attributeName); - if(isRequired){ - var requiredLabName = attributeName+ " * "; - labeltext = document.createTextNode(requiredLabName); - }else{ - labeltext = document.createTextNode(attributeName); - } - - label.appendChild(labeltext); - } - label.appendChild(labeltext); - // if this field is required, but its parent is not required - if(isRequired && document.getElementById(divID).hasAttribute('data-conditional')){ - var requiredNode = document.createElement('span'); - requiredNode.setAttribute("class", "mstooltip"); - requiredNode.textContent = "?"; - label.appendChild(requiredNode); - - var requiredNodeToolTip = document.createElement('span'); - requiredNodeToolTip.setAttribute("class", "tooltiptext"); - requiredNodeToolTip.textContent = "Conditional Required"; - requiredNode.appendChild(requiredNodeToolTip); - - } - - var listField = document.createElement("SELECT"); - listField.setAttribute("class" , "form-control"); - listField.setAttribute("style" , "width:300px;"); - listField.setAttribute("ng-disabled" , "temp.policy.readOnly"); + var br = document.createElement("BR"); + + if (labelLevel.length < 1){ + var divID = "DynamicTemplate"; + } else if (labelLevel.endsWith('.')){ + var divID = 'div.'+ labelLevel.substring(0, labelLevel.length-1); + } + + + var label = document.createElement("Label") + + var refAttributes = $scope.dcaeModelData.refAttributes; + if(isRequired != true && refAttributes){ // check refAttributes also + var refAttributesList = refAttributes.split(splitComma); + for (k = 0; k < refAttributesList.length; k++){ + var refAttribute = refAttributesList[k].split(splitEqual); + if (attributeName == refAttribute[0].trim() && refAttribute[1].includes("required-true")){ + isRequired = true; + } + } + } + + if (matching.includes(attributeName)){ + var labeltext = document.createTextNode(attributeName + "*!"); + label.appendChild(labeltext); + isRequired = true; // set required as true for matching element + }else { + var labeltext = document.createTextNode(attributeName); + if(isRequired){ + var requiredLabName = attributeName+ " * "; + labeltext = document.createTextNode(requiredLabName); + }else{ + labeltext = document.createTextNode(attributeName); + } + + label.appendChild(labeltext); + } + label.appendChild(labeltext); + // if this field is required, but its parent is not required + if(isRequired && document.getElementById(divID).hasAttribute('data-conditional')){ + var requiredNode = document.createElement('span'); + requiredNode.setAttribute("class", "mstooltip"); + requiredNode.textContent = "?"; + label.appendChild(requiredNode); + + var requiredNodeToolTip = document.createElement('span'); + requiredNodeToolTip.setAttribute("class", "tooltiptext"); + requiredNodeToolTip.textContent = "Conditional Required"; + requiredNode.appendChild(requiredNodeToolTip); - if(description && description != "null"){ - listField.setAttribute("title", description); - } + } - if(isRequired){ - if(document.getElementById(divID).hasAttribute('data-conditional')){ - listField.setAttribute("data-conditional", divID); - listField.setAttribute("ng-blur", "validContionalRequired('"+divID+"')"); - }else{ - listField.setAttribute("required", true); - } - } - if( many != true || isRequired != true){ // add an empty option for not required or not multiple select element - var optionFirst = document.createElement('option'); - var optionValue = ""; - if($scope.temp.policy.ruleData != null){ - if($scope.temp.policy.ruleData[labelLevel + attributeName] != undefined && $scope.temp.policy.ruleData[labelLevel + attributeName] != "undefined"){ - optionValue = $scope.temp.policy.ruleData[labelLevel + attributeName]; - } - } - optionFirst.setAttribute('value', optionValue); - optionFirst.appendChild(document.createTextNode(optionValue)); - listField.appendChild(optionFirst); - } - var ruleFormationCheck = false; - if(listemunerateValues.length !== 0 && typeof listemunerateValues[0] == "string" && listemunerateValues[0].includes("dictionary:")) { - var ruleCheck = listemunerateValues[0].split("&"); - var dictParams = ruleCheck[0].split(":"); - var dictParamsSplit = dictParams[1].split("@"); - if (ruleCheck[1] != undefined && ruleCheck[1] == 'Rule') { - ruleFormationCheck = true; - } - PolicyAppService.getData(dictParamsSplit[0]).then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.listDictionarys = JSON.parse($scope.data[dictParamsSplit[1]]); - for (i=0; i < $scope.listDictionarys.length; i += 1) { - option = document.createElement('option'); - option.setAttribute('value', $scope.listDictionarys[i]); - option.appendChild(document.createTextNode($scope.listDictionarys[i])); - listField.appendChild(option); - } - }, function (error) { - console.log("failed"); - }); + var listField = document.createElement("SELECT"); + listField.setAttribute("class" , "form-control"); + listField.setAttribute("style" , "width:300px;"); + listField.setAttribute("ng-disabled" , "temp.policy.readOnly"); - } - else{ - for (i=0; i < listemunerateValues.length; i += 1) { - if(typeof listemunerateValues[i] == "string" && listemunerateValues[i].includes("equal-sign")){ - listemunerateValues[i] = listemunerateValues[i].replace('equal-sign','='); - } - - option = document.createElement('option'); - option.setAttribute('value', listemunerateValues[i]); - option.appendChild(document.createTextNode(listemunerateValues[i])); - option.setAttribute('value', listemunerateValues[i]); - listField.appendChild(option); - } - } - listField.setAttribute("id" , ''+ labelLevel + attributeName + ''); + if(description && description != "null"){ + listField.setAttribute("title", description); + } - enumKeyList.push(attributeName); + if(isRequired){ + if(document.getElementById(divID).hasAttribute('data-conditional')){ + listField.setAttribute("data-conditional", divID); + listField.setAttribute("ng-blur", "validContionalRequired('"+divID+"')"); + }else{ + listField.setAttribute("required", true); + } + } + if( many != true || isRequired != true){ // add an empty option for not required or not multiple select element + var optionFirst = document.createElement('option'); + var optionValue = ""; + if($scope.temp.policy.ruleData != null){ + if($scope.temp.policy.ruleData[labelLevel + attributeName] != undefined && $scope.temp.policy.ruleData[labelLevel + attributeName] != "undefined"){ + optionValue = $scope.temp.policy.ruleData[labelLevel + attributeName]; + } + } + optionFirst.setAttribute('value', optionValue); + optionFirst.appendChild(document.createTextNode(optionValue)); + listField.appendChild(optionFirst); + } + var ruleFormationCheck = false; + if(listemunerateValues.length !== 0 && typeof listemunerateValues[0] == "string" && listemunerateValues[0].includes("dictionary:")) { + var ruleCheck = listemunerateValues[0].split("&"); + var dictParams = ruleCheck[0].split(":"); + var dictParamsSplit = dictParams[1].split("@"); + if (ruleCheck[1] != undefined && ruleCheck[1] == 'Rule') { + ruleFormationCheck = true; + } + PolicyAppService.getData(dictParamsSplit[0]).then(function (data) { + var j = data; + $scope.data = JSON.parse(j.data); + $scope.listDictionarys = JSON.parse($scope.data[dictParamsSplit[1]]); + for (i=0; i < $scope.listDictionarys.length; i += 1) { + option = document.createElement('option'); + option.setAttribute('value', $scope.listDictionarys[i]); + option.appendChild(document.createTextNode($scope.listDictionarys[i])); + listField.appendChild(option); + } + }); - document.getElementById(divID).appendChild(label); - document.getElementById(divID).appendChild(br); + } + else{ + for (i=0; i < listemunerateValues.length; i += 1) { + if(typeof listemunerateValues[i] == "string" && listemunerateValues[i].includes("equal-sign")){ + listemunerateValues[i] = listemunerateValues[i].replace('equal-sign','='); + } + + option = document.createElement('option'); + option.setAttribute('value', listemunerateValues[i]); + option.appendChild(document.createTextNode(listemunerateValues[i])); + option.setAttribute('value', listemunerateValues[i]); + listField.appendChild(option); + } + } + listField.setAttribute("id" , ''+ labelLevel + attributeName + ''); - if(many == true){ - document.getElementById(divID).appendChild(listField).multiple = true; - plainAttributeKeys.push(labelLevel + attributeName+'*'+true); - }else { - document.getElementById(divID).appendChild(listField).multiple = false; - plainAttributeKeys.push(labelLevel + attributeName+'*'+false); + enumKeyList.push(attributeName); - if (defaultValue){ - if(defaultValue.includes(':')){ - defaultValue = defaultValue.split(':')[0]; - } - var location = listemunerateValues.indexOf(defaultValue); - document.getElementById(labelLevel +attributeName).options[location+1].selected = true; - } - } + document.getElementById(divID).appendChild(label); + document.getElementById(divID).appendChild(br); - if (ruleFormationCheck) { - var optionInput = document.createElement("INPUT"); - optionInput.setAttribute("type" , "text"); - optionInput.setAttribute("id" , ''+ labelLevel + attributeName + '.input'); - optionInput.setAttribute("name" , "ruleName"); - optionInput.setAttribute("value" , " "); - optionInput.setAttribute("style" , "width:300px;"); - optionInput.setAttribute("ng-disabled" , "temp.policy.readOnly"); - optionInput.removeAttribute("required"); + if(many == true){ + document.getElementById(divID).appendChild(listField).multiple = true; + plainAttributeKeys.push(labelLevel + attributeName+'*'+true); + }else { + document.getElementById(divID).appendChild(listField).multiple = false; + plainAttributeKeys.push(labelLevel + attributeName+'*'+false); - document.getElementById(divID).appendChild(optionInput); + if (defaultValue){ + if(defaultValue.includes(':')){ + defaultValue = defaultValue.split(':')[0]; + } + var location = listemunerateValues.indexOf(defaultValue); + document.getElementById(labelLevel +attributeName).options[location+1].selected = true; + } + } - var optionButton = document.createElement("BUTTON"); - optionButton.setAttribute("ng-disabled" , "temp.policy.readOnly"); - var buttonLabel = document.createTextNode("+"); - optionButton.appendChild(buttonLabel); - optionButton.setAttribute("class", "btn btn-add-remove"); - optionButton.setAttribute("onclick" , 'addDynamicOptions("'+ labelLevel + attributeName + '");'); - optionButton.removeAttribute("required"); + if (ruleFormationCheck) { + var optionInput = document.createElement("INPUT"); + optionInput.setAttribute("type" , "text"); + optionInput.setAttribute("id" , ''+ labelLevel + attributeName + '.input'); + optionInput.setAttribute("name" , "ruleName"); + optionInput.setAttribute("value" , " "); + optionInput.setAttribute("style" , "width:300px;"); + optionInput.setAttribute("ng-disabled" , "temp.policy.readOnly"); + optionInput.removeAttribute("required"); + document.getElementById(divID).appendChild(optionInput); - document.getElementById(divID).appendChild(optionButton); - document.getElementById(divID).appendChild(br); - } + var optionButton = document.createElement("BUTTON"); + optionButton.setAttribute("ng-disabled" , "temp.policy.readOnly"); + var buttonLabel = document.createTextNode("+"); + optionButton.appendChild(buttonLabel); + optionButton.setAttribute("class", "btn btn-add-remove"); + optionButton.setAttribute("onclick" , 'addDynamicOptions("'+ labelLevel + attributeName + '");'); + optionButton.removeAttribute("required"); - if($scope.temp.policy.ruleData != null){ - if (many == true){ - document.getElementById(labelLevel +attributeName).options[0].selected = false; - for (i=0; i < listemunerateValues.length; i += 1) { - var testValue = $scope.temp.policy.ruleData[labelLevel +attributeName+'@' + i]; - if (testValue === undefined){ - testValue = $scope.temp.policy.ruleData[labelLevel +attributeName]; - } - var location = listemunerateValues.indexOf(testValue); - if (location!=-1){ - document.getElementById(labelLevel +attributeName).options[location].selected = true; - } - } - }else { - if($scope.temp.policy.ruleData[labelLevel + attributeName] != undefined && $scope.temp.policy.ruleData[labelLevel + attributeName] != "undefined"){ - document.getElementById(labelLevel + attributeName).value = $scope.temp.policy.ruleData[labelLevel + attributeName]; - } - } - } - }; - addDynamicOptions = function(id) { - var option = document.createElement("option"); - var value = document.getElementById(id+".input").value; - option.setAttribute('value', value); - option.appendChild(document.createTextNode(value)); - document.getElementById(id).options.add(option); - document.getElementById(id+".input").value = ""; - }; + document.getElementById(divID).appendChild(optionButton); + document.getElementById(divID).appendChild(br); + } - function onlyUnique(value, index, self) { - return self.indexOf(value) === index; - }; + if($scope.temp.policy.ruleData != null){ + if (many == true){ + document.getElementById(labelLevel +attributeName).options[0].selected = false; + for (i=0; i < listemunerateValues.length; i += 1) { + var testValue = $scope.temp.policy.ruleData[labelLevel +attributeName+'@' + i]; + if (testValue === undefined){ + testValue = $scope.temp.policy.ruleData[labelLevel +attributeName]; + } + var location = listemunerateValues.indexOf(testValue); + if (location!=-1){ + document.getElementById(labelLevel +attributeName).options[location].selected = true; + } + } + }else { + if($scope.temp.policy.ruleData[labelLevel + attributeName] != undefined && $scope.temp.policy.ruleData[labelLevel + attributeName] != "undefined"){ + document.getElementById(labelLevel + attributeName).value = $scope.temp.policy.ruleData[labelLevel + attributeName]; + } + } + } + }; + addDynamicOptions = function(id) { + var option = document.createElement("option"); + var value = document.getElementById(id+".input").value; + option.setAttribute('value', value); + option.appendChild(document.createTextNode(value)); + document.getElementById(id).options.add(option); + document.getElementById(id+".input").value = ""; + }; - function checkDictionary(value){ - for (i = 0; i < $scope.microServiceAttributeDictionaryDatas.length; i++) { - if ($scope.microServiceAttributeDictionaryDatas[i].name.localeCompare(value)){ - return true; - } - } + function onlyUnique(value, index, self) { + return self.indexOf(value) === index; + } - } - $scope.savePolicy = function(policy){ - if(policy.itemContent != undefined){ - $scope.refreshCheck = true; - $scope.policyNavigator = policy.itemContent; - policy.itemContent = ""; - } - $scope.savebutton = false; - var splitAt = '*'; - var dot ='.'; - var jsonPolicy = {}; - if(plainAttributeKeys != null){ - for(a = 0; a < plainAttributeKeys.length; a++){ - var splitPlainAttributeKey = plainAttributeKeys[a].split(splitAt); - console.log("splitPlainAttributeKey: " + splitPlainAttributeKey); - var searchElement = document.getElementById(splitPlainAttributeKey[0]); - var key = splitPlainAttributeKey[0]; - if(searchElement == null){ - searchElement = document.getElementById(splitPlainAttributeKey[0]+'@0'); - key = splitPlainAttributeKey[0]+'@0'; - }else if (searchElement.nodeName == 'BUTTON'){ - searchElement = document.getElementById(splitPlainAttributeKey[0]+'@0'); - key = splitPlainAttributeKey[0]+'@0'; - } - if(searchElement != null){ - var keySplit = key.split(dot); - var elumentLocation = keySplit.length; - var enumKey = key; - if (elumentLocation > 1){ - enumKey = keySplit[keySplit.length - 1]; - } - //check it is undefined or not - if (enumKeyList != undefined && enumKeyList.indexOf(enumKey) != -1){ - if (splitPlainAttributeKey[1]!= undefined && splitPlainAttributeKey[1].indexOf("true") !== -1){ - var multiSlect = []; - for ( var i = 0; i < searchElement.selectedOptions.length; i++) { - multiSlect.push(searchElement.selectedOptions[i].value); - } - jsonPolicy[key]= multiSlect; - }else{ - console.log(" searchElement.value = > " + searchElement.value); - if(splitPlainAttributeKey[1]!= undefined && splitPlainAttributeKey[1] == "boolean"){ - jsonPolicy[key]= false; - for(var i=0; i<booleanTrueElements.length; i++){ - if(booleanTrueElements[i] == key){ - jsonPolicy[key]= true; - } - } + $scope.savePolicy = function(policy){ + if(policy.itemContent != undefined){ + $scope.refreshCheck = true; + $scope.policyNavigator = policy.itemContent; + policy.itemContent = ""; + } + $scope.savebutton = false; + var splitAt = '*'; + var dot ='.'; + var jsonPolicy = {}; + if(plainAttributeKeys != null){ + for(a = 0; a < plainAttributeKeys.length; a++){ + var splitPlainAttributeKey = plainAttributeKeys[a].split(splitAt); + var searchElement = document.getElementById(splitPlainAttributeKey[0]); + var key = splitPlainAttributeKey[0]; + if(searchElement == null){ + searchElement = document.getElementById(splitPlainAttributeKey[0]+'@0'); + key = splitPlainAttributeKey[0]+'@0'; + }else if (searchElement.nodeName == 'BUTTON'){ + searchElement = document.getElementById(splitPlainAttributeKey[0]+'@0'); + key = splitPlainAttributeKey[0]+'@0'; + } + if(searchElement != null){ + var keySplit = key.split(dot); + var elumentLocation = keySplit.length; + var enumKey = key; + if (elumentLocation > 1){ + enumKey = keySplit[keySplit.length - 1]; + } + // check it is undefined or not + if (enumKeyList != undefined && enumKeyList.indexOf(enumKey) != -1){ + if (splitPlainAttributeKey[1]!= undefined && splitPlainAttributeKey[1].indexOf("true") !== -1){ + var multiSlect = []; + for ( var i = 0; i < searchElement.selectedOptions.length; i++) { + multiSlect.push(searchElement.selectedOptions[i].value); + } + jsonPolicy[key]= multiSlect; + }else{ + if(splitPlainAttributeKey[1]!= undefined && splitPlainAttributeKey[1] == "boolean"){ + jsonPolicy[key]= false; + for(var i=0; i<booleanTrueElements.length; i++){ + if(booleanTrueElements[i] == key){ + jsonPolicy[key]= true; + } + } - }else{ - jsonPolicy[key]= searchElement.value; - } - } - } else { - if(searchElement.value != null){ - jsonPolicy[key]= searchElement.value; - console.log(" searchElement.value = > " + searchElement.value); - if(splitPlainAttributeKey[1] == "boolean"){ - jsonPolicy[key]= false; - for(var i=0; i<booleanTrueElements.length; i++){ - if(booleanTrueElements[i] == key){ - jsonPolicy[key]= true; - } - } - } - } - } - } - } - } + }else{ + jsonPolicy[key]= searchElement.value; + } + } + } else { + if(searchElement.value != null){ + if(searchElement.parentElement.children[0].checked == true){ + jsonPolicy[key]= searchElement.checked; + } + else{ + jsonPolicy[key]= window.btoa(searchElement.value); + } + } + } + } + } + } var uuu = "policycreation/save_policy"; var postData={policyData: policy, policyJSON : jsonPolicy}; $.ajax({ @@ -1597,199 +1526,192 @@ angular.module('abs').controller('dcaeMicroServiceController', ['$scope', '$wind data: JSON.stringify(postData), success : function(data){ $scope.$apply(function(){ - $scope.data=data.policyData; - if($scope.data == 'success'){ - $scope.temp.policy.readOnly = 'true'; - $scope.safetyChecker = data.policyData.split("#")[2]; - if ($scope.safetyChecker!=undefined) { - Notification.success($scope.safetyChecker); - } - $scope.pushStatus=data.policyData.split("&")[1]; - if($scope.pushStatus=="successPush"){ - Notification.success("Policy pushed successfully"); - } - Notification.success("Policy Saved Successfully."); - }else if ($scope.data == 'PolicyExists'){ - $scope.savebutton = true; - Notification.error("Policy Already Exists with Same Name in Scope."); - } + $scope.data=data.policyData; + if($scope.data == 'success'){ + $scope.temp.policy.readOnly = 'true'; + $scope.safetyChecker = data.policyData.split("#")[2]; + if ($scope.safetyChecker!=undefined) { + Notification.success($scope.safetyChecker); + } + $scope.pushStatus=data.policyData.split("&")[1]; + if($scope.pushStatus=="successPush"){ + Notification.success("Policy pushed successfully"); + } + $scope.temp.policy.readOnly = 'true'; + $scope.savebutton = 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."); + Notification.error("Error Occured while saving Policy."); } }); }; var booleanTrueElements = []; $scope.validatePolicy = function(policy){ - document.getElementById("validate").innerHTML = ""; - var splitAt = '*'; - var dot ='.'; - var jsonPolicy = {}; - if(plainAttributeKeys != null){ - for(a = 0; a < plainAttributeKeys.length; a++){ - var splitPlainAttributeKey = plainAttributeKeys[a].split(splitAt); - console.log(splitPlainAttributeKey[1]); - var searchElement = document.getElementById(splitPlainAttributeKey[0]); - var key = splitPlainAttributeKey[0]; - if(searchElement == null){ - searchElement = document.getElementById(splitPlainAttributeKey[0]+'@0'); - key = splitPlainAttributeKey[0]+'@0'; - }else if (searchElement.nodeName == 'BUTTON'){ - searchElement = document.getElementById(splitPlainAttributeKey[0]+'@0'); - key = splitPlainAttributeKey[0]+'@0'; - } - if(searchElement != null){ - if (enumKeyList.indexOf(key) != -1){ - if (splitPlainAttributeKey[1].indexOf("true") !== -1){ - var multiSlect = []; - for ( var i = 0; i < searchElement.selectedOptions.length; i++) { - multiSlect.push(searchElement.selectedOptions[i].value); - } - jsonPolicy[key]= multiSlect; - }else{ - jsonPolicy[key]= searchElement.value; - } - if(searchElement.getAttribute("required")){ - if(!searchElement.value){ - return; - } - } - } else { - if(searchElement.value != null){ - jsonPolicy[key]= searchElement.value; - if(searchElement.getAttribute("required")){ - if(!searchElement.value){ - return; - } - } - } - } - } - } - - - var checkedValue = $('.onoffswitch-checkbox:checked').val(); - - var x = document.getElementsByClassName("onoffswitch-checkbox"); - - - if(checkedValue){ - console.log("checkedValue:" + checkedValue); - for(var i=0; i<x.length; x++){ - console.log("checkbox id: " + x[i].id); - booleanTrueElements.push(x[i].id) - } - } - } + document.getElementById("validate").innerHTML = ""; + var splitAt = '*'; + var jsonPolicy = {}; + if(plainAttributeKeys != null){ + for(a = 0; a < plainAttributeKeys.length; a++){ + var splitPlainAttributeKey = plainAttributeKeys[a].split(splitAt); + var searchElement = document.getElementById(splitPlainAttributeKey[0]); + var key = splitPlainAttributeKey[0]; + if(searchElement == null){ + searchElement = document.getElementById(splitPlainAttributeKey[0]+'@0'); + key = splitPlainAttributeKey[0]+'@0'; + }else if (searchElement.nodeName == 'BUTTON'){ + searchElement = document.getElementById(splitPlainAttributeKey[0]+'@0'); + key = splitPlainAttributeKey[0]+'@0'; + } + if(searchElement != null){ + if (enumKeyList.indexOf(key) != -1){ + if (splitPlainAttributeKey[1].indexOf("true") !== -1){ + var multiSlect = []; + for ( var i = 0; i < searchElement.selectedOptions.length; i++) { + multiSlect.push(searchElement.selectedOptions[i].value); + } + jsonPolicy[key]= multiSlect; + }else{ + jsonPolicy[key]= searchElement.value; + } + if(searchElement.getAttribute("required")){ + if(!searchElement.value){ + return; + } + } + } else { + if(searchElement.value != null){ + if(searchElement.parentElement.children[0].checked == true){ + jsonPolicy[key]= searchElement.checked; + } + else{ + jsonPolicy[key]= searchElement.value; + } + if(searchElement.getAttribute("required")){ + if(!searchElement.value){ + return; + } + } + } + } + } + } + + + var checkedValue = $('.onoffswitch-checkbox:checked').val(); + + var x = document.getElementsByClassName("onoffswitch-checkbox"); + + + if(checkedValue){ + for(var i=0; i<x.length; x++){ + booleanTrueElements.push(x[i].id) + } + } + } var uuu = "policyController/validate_policy.htm"; - console.log("$scope.isCheck:" + $scope.isCheck); if($scope.isCheck == true){ - if(("configName" in policy) == false){ - Notification.error("Validation Failed: configName is required"); - $scope.savebutton = true; - return; - } - if(("location" in policy) == false){ - Notification.error("Validation Failed: location is required"); - $scope.savebutton = true; - return; - } - if(("uuid" in policy) == false){ - Notification.error("Validation Failed: uuid is required"); - $scope.savebutton = true; - return; - } - if(("policyScope" in policy) == false){ - Notification.error("Validation Failed: policyScope is required"); - $scope.savebutton = true; - return; - } + if(("configName" in policy) == false){ + Notification.error("Validation Failed: configName is required"); + $scope.savebutton = true; + return; + } + if(("location" in policy) == false){ + Notification.error("Validation Failed: location is required"); + $scope.savebutton = true; + return; + } + if(("uuid" in policy) == false){ + Notification.error("Validation Failed: uuid is required"); + $scope.savebutton = true; + return; + } + if(("policyScope" in policy) == false){ + Notification.error("Validation Failed: policyScope is required"); + $scope.savebutton = true; + return; + } } var postData={policyData: policy, policyJSON : jsonPolicy}; - $.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.substring(1,8); - var size = data.data.length; - if($scope.data == 'success'){ - Notification.success("Validation Success."); - $scope.savebutton = false; - if (size > 18){ - var displayWarning = data.data.substring(19,size - 1); - document.getElementById("validate").innerHTML = "Safe Policy Warning Message : "+displayWarning; - document.getElementById("validate").style.color = "white"; - document.getElementById("validate").style.backgroundColor = "skyblue"; - } - }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.validateData = data.data.replace(/\"/g, ""); + $scope.data=data.data.substring(1,8); + var size = data.data.length; + if($scope.data == 'success'){ + Notification.success("Validation Success."); + $scope.savebutton = false; + if (size > 18){ + var displayWarning = data.data.substring(19,size - 1); + document.getElementById("validate").innerHTML = "Safe Policy Warning Message : "+displayWarning; + document.getElementById("validate").style.color = "white"; + document.getElementById("validate").style.backgroundColor = "skyblue"; + } + }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; + } + }); }; - function extend(obj, src) { - for (var key in src) { - if (src.hasOwnProperty(key)) obj[key] = src[key]; + // Switch Click + $('.Switch').click(function() { + // Check If Enabled (Has 'On' Class) + if ($(this).hasClass('On')){ + // Try To Find Checkbox Within Parent Div, And Check It + $(this).parent().find('input:checkbox').attr('checked', true); + // Change Button Style - Remove On Class, Add Off Class + $(this).removeClass('On').addClass('Off'); + } else { // If Button Is Disabled (Has 'Off' Class) + // Try To Find Checkbox Within Parent Div, And Uncheck It + $(this).parent().find('input:checkbox').attr('checked', false); + // Change Button Style - Remove Off Class, Add On Class + $(this).removeClass('Off').addClass('On'); + } + }); + // Loops Through Each Toggle Switch On Page + $('.Switch').each(function() { + // Search of a checkbox within the parent + if ($(this).parent().find('input:checkbox').length){ + + // If checkbox doesnt have the show class then hide it + if (!$(this).parent().find('input:checkbox').hasClass("show")){ + $(this).parent().find('input:checkbox').hide(); } + + // Look at the checkbox's checkked state + if ($(this).parent().find('input:checkbox').is(':checked')){ + // Checkbox is not checked, Remove the On Class and Add the Off Class + $(this).removeClass('On').addClass('Off'); + } else { + // Checkbox Is Checked Remove Off Class, and Add the On Class + $(this).removeClass('Off').addClass('On'); } - return obj; } - - // Switch Click - $('.Switch').click(function() { - // Check If Enabled (Has 'On' Class) - if ($(this).hasClass('On')){ - // Try To Find Checkbox Within Parent Div, And Check It - $(this).parent().find('input:checkbox').attr('checked', true); - // Change Button Style - Remove On Class, Add Off Class - $(this).removeClass('On').addClass('Off'); - } else { // If Button Is Disabled (Has 'Off' Class) - // Try To Find Checkbox Within Parent Div, And Uncheck It - $(this).parent().find('input:checkbox').attr('checked', false); - // Change Button Style - Remove Off Class, Add On Class - $(this).removeClass('Off').addClass('On'); - } - }); - // Loops Through Each Toggle Switch On Page - $('.Switch').each(function() { - // Search of a checkbox within the parent - if ($(this).parent().find('input:checkbox').length){ - - // If checkbox doesnt have the show class then hide it - if (!$(this).parent().find('input:checkbox').hasClass("show")){ - $(this).parent().find('input:checkbox').hide(); } - - // Look at the checkbox's checkked state - if ($(this).parent().find('input:checkbox').is(':checked')){ - // Checkbox is not checked, Remove the On Class and Add the Off Class - $(this).removeClass('On').addClass('Off'); - } else { - // Checkbox Is Checked Remove Off Class, and Add the On Class - $(this).removeClass('Off').addClass('On'); - } - } - }); + }); }]); 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 0e53ce9de..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,447 +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) { - $("#dialog").hide(); - - $scope.policyNavigator; - $scope.savebutton = true; - $scope.refreshCheck = false; - $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'); - }; - - 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"); - }); - - function extend(obj, src) { - for (var key in src) { - if (src.hasOwnProperty(key)) - obj[key] = src[key]; - } - return obj; - } - - $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.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; - } - }); - }; - - 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)); - +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; + $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'); + }; + + 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); + }); + + 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.savebutton = false; + 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."); + } + }); + + }, + 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 + }; + $.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=="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.addNewChoice = function() { - 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); - }; - - $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 - }); - }; - $scope.removeSettingsChoice = function() { - var lastItem = $scope.temp.policy.settings.length - 1; - $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(''); - }; + 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; + $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); + }; + + $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 + }); + }; + $scope.removeSettingsChoice = function() { + var lastItem = $scope.temp.policy.settings.length - 1; + $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(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.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 - } ]; - - $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 - }); - }; - - $scope.removeRuleAlgorithm = function() { - 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 === "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."); - }); - console.log($scope.data); - }, - error : function(data) { - Notification.error("Error Occured while Exporting BlackList Entries."); - } - }); - }; -} ]);
\ No newline at end of file + $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.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 + } ]; + + $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 + }); + }; + + $scope.removeRuleAlgorithm = function() { + 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 === "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."); + } + }); + }; +} ]); diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/FirewallPolicyController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/FirewallPolicyController.js index 1051ecd9a..b62f91d0d 100644 --- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/FirewallPolicyController.js +++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/FirewallPolicyController.js @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * 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. @@ -17,7 +17,9 @@ * limitations under the License. * ============LICENSE_END========================================================= */ -angular.module('abs').controller('fwPolicyController', ['$scope', '$window', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification', function ($scope, $window, PolicyAppService, PolicyNavigator, modalService, $modal, Notification) { +angular.module('abs').controller('fwPolicyController', + ['$scope', '$window', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification', + function ($scope, $window, PolicyAppService, PolicyNavigator, modalService, $modal, Notification) { $("#dialog").hide(); $scope.policyNavigator; @@ -25,18 +27,18 @@ angular.module('abs').controller('fwPolicyController', ['$scope', '$window', 'Po $scope.refreshCheck = false; if(!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly){ - $scope.temp.policy = { - policyType : "Config", - configPolicyType : "Firewall Config" - } + $scope.temp.policy = { + policyType : "Config", + configPolicyType : "Firewall Config" + } }; $scope.refresh = function(){ - if($scope.refreshCheck){ - $scope.policyNavigator.refresh(); - } - $scope.modal('createNewPolicy', true); - $scope.temp.policy = ""; + if($scope.refreshCheck){ + $scope.policyNavigator.refresh(); + } + $scope.modal('createNewPolicy', true); + $scope.temp.policy = ""; }; $scope.modal = function(id, hide) { @@ -44,83 +46,51 @@ angular.module('abs').controller('fwPolicyController', ['$scope', '$window', 'Po }; $('#ttlDate').datepicker({ - dateFormat: 'dd/mm/yy', - changeMonth: true, - changeYear: true, - onSelect: function(date) { - angular.element($('#ttlDate')).triggerHandler('input'); - } + dateFormat: 'dd/mm/yy', + changeMonth: true, + changeYear: true, + onSelect: function(date) { + angular.element($('#ttlDate')).triggerHandler('input'); + } }); - + PolicyAppService.getData('getDictionary/get_SecurityZoneDataByName').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.securityZoneDictionaryDatas = JSON.parse($scope.data.securityZoneDictionaryDatas); - console.log($scope.securityZoneDictionaryDatas); - }, function (error) { - console.log("failed"); + var j = data; + $scope.data = JSON.parse(j.data); + $scope.securityZoneDictionaryDatas = JSON.parse($scope.data.securityZoneDictionaryDatas); }); PolicyAppService.getData('getDictionary/get_TermListDataByName').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.termListDictionaryDatas = JSON.parse($scope.data.termListDictionaryDatas); - console.log($scope.termListDictionaryDatas); - }, function (error) { - console.log("failed"); + var j = data; + $scope.data = JSON.parse(j.data); + $scope.termListDictionaryDatas = JSON.parse($scope.data.termListDictionaryDatas); }); PolicyAppService.getData('getDictionary/get_FWDictionaryListDataByName').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.fwDictListDictionaryDatas = JSON.parse($scope.data.fwDictListDictionaryDatas); - console.log($scope.fwDictListDictionaryDatas); - }, function (error) { - console.log("failed"); + var j = data; + $scope.data = JSON.parse(j.data); + $scope.fwDictListDictionaryDatas = JSON.parse($scope.data.fwDictListDictionaryDatas); }); PolicyAppService.getData('getDictionary/get_FWParentListDataByName').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.fwParentListDictionaryDatas = JSON.parse($scope.data.fwParentListDictionaryDatas); - console.log($scope.fwParentListDictionaryDatas); - }, function (error) { - console.log("failed"); + var j = data; + $scope.data = JSON.parse(j.data); + $scope.fwParentListDictionaryDatas = JSON.parse($scope.data.fwParentListDictionaryDatas); }); PolicyAppService.getData('getDictionary/get_TagPickerNameByName').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.fwTagPickerDictionaryDatas = JSON.parse($scope.data.fwTagPickerDictionaryDatas); - console.log($scope.fwTagPickerDictionaryDatas); - }, function (error) { - console.log("failed"); + var j = data; + $scope.data = JSON.parse(j.data); + $scope.fwTagPickerDictionaryDatas = JSON.parse($scope.data.fwTagPickerDictionaryDatas); }); PolicyAppService.getData('getDictionary/get_RiskTypeDataByName').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas); - console.log($scope.riskTypeDictionaryDatas); - }, function (error) { - console.log("failed"); + var j = data; + $scope.data = JSON.parse(j.data); + $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas); }); - function extend(obj, src) { - for (var key in src) { - if (src.hasOwnProperty(key)) obj[key] = src[key]; - } - return obj; - } - $scope.viewFWRule = function(policy){ - console.log(policy); var uuu = "policyController/ViewFWPolicyRule.htm"; var postData={policyData: policy}; $.ajax({ @@ -131,110 +101,106 @@ angular.module('abs').controller('fwPolicyController', ['$scope', '$window', 'Po data: JSON.stringify(postData), success : function(data){ $scope.$apply(function(){ - window.alert(data.policyData); + window.alert(data.policyData); }); }, error : function(data){ - Notification.error("Error Occured while Showing Rule."); + Notification.error("Error Occured while Showing Rule."); } }); }; $scope.saveFWPolicy = function(policy){ - if(policy.itemContent != undefined){ - $scope.refreshCheck = true; - $scope.policyNavigator = policy.itemContent; - policy.itemContent = ""; - } - $scope.savebutton = false; - console.log(policy); + if(policy.itemContent != undefined){ + $scope.refreshCheck = true; + $scope.policyNavigator = policy.itemContent; + policy.itemContent = ""; + } + $scope.savebutton = false; 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'; - $scope.pushStatus=data.policyData.split("&")[1]; - if($scope.pushStatus=="successPush"){ - Notification.success("Policy pushed successfully"); - } - 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."); - } - }); + 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'; + $scope.pushStatus=data.policyData.split("&")[1]; + if($scope.pushStatus=="successPush"){ + Notification.success("Policy pushed successfully"); + } + 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){ - console.log(policy); - document.getElementById("validate").innerHTML = ""; + 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.substring(1,8); - var size = data.data.length; - if($scope.data == 'success'){ - Notification.success("Validation Success."); - $scope.savebutton = false; - if (size > 18){ - var displayWarning = data.data.substring(19,size); - document.getElementById("validate").innerHTML = "Safe Policy Warning Message : "+displayWarning; - document.getElementById("validate").style.color = "white"; - document.getElementById("validate").style.backgroundColor = "skyblue"; - } - }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; - } - }); + 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.substring(1,8); + var size = data.data.length; + if($scope.data == 'success'){ + Notification.success("Validation Success."); + $scope.savebutton = false; + if (size > 18){ + var displayWarning = data.data.substring(19,size); + document.getElementById("validate").innerHTML = "Safe Policy Warning Message : "+displayWarning; + document.getElementById("validate").style.color = "white"; + document.getElementById("validate").style.backgroundColor = "skyblue"; + } + }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.fwattributes = []; + $scope.temp.policy.attributes = []; + $scope.temp.policy.fwattributes = []; }else{ if($scope.temp.policy.attributes.length == 0){ - $scope.temp.policy.attributes = []; + $scope.temp.policy.attributes = []; } if($scope.temp.policy.fwPolicyType == 'Parent Policy'){ - if($scope.temp.policy.fwattributes.length == 0){ - $scope.temp.policy.fwattributes = []; - } + if($scope.temp.policy.fwattributes.length == 0){ + $scope.temp.policy.fwattributes = []; + } } } @@ -258,4 +224,4 @@ angular.module('abs').controller('fwPolicyController', ['$scope', '$window', 'Po $scope.temp.policy.fwattributes.splice(lastItem); }; -}]);
\ No newline at end of file +}]); diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/OptimizationPolicyController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/OptimizationPolicyController.js index cdeaefdea..58594bc43 100644 --- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/OptimizationPolicyController.js +++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/OptimizationPolicyController.js @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP Policy Engine * ================================================================================ - * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2018-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,7 +17,9 @@ * limitations under the License. * ============LICENSE_END========================================================= */ -angular.module('abs').controller('optimizationController', ['$scope', '$window', '$compile', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification', function ($scope, $window, $compile, PolicyAppService, PolicyNavigator, modalService, $modal, Notification) { +angular.module('abs').controller('optimizationController', + ['$scope', '$window', '$compile', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification', + function ($scope, $window, $compile, PolicyAppService, PolicyNavigator, modalService, $modal, Notification) { $("#dialog").hide(); $scope.policyNavigator; @@ -26,18 +28,18 @@ angular.module('abs').controller('optimizationController', ['$scope', '$window', $scope.refreshCheck = false; if(!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly){ - $scope.temp.policy = { - policyType : "Config", - configPolicyType : "Optimization" - } - }; + $scope.temp.policy = { + policyType : "Config", + configPolicyType : "Optimization" + } + } $scope.refresh = function(){ - if($scope.refreshCheck){ - $scope.policyNavigator.refresh(); - } - $scope.modal('createNewPolicy', true); - $scope.temp.policy = ""; + if($scope.refreshCheck){ + $scope.policyNavigator.refresh(); + } + $scope.modal('createNewPolicy', true); + $scope.temp.policy = ""; }; $scope.modal = function(id, hide) { @@ -45,247 +47,226 @@ angular.module('abs').controller('optimizationController', ['$scope', '$window', }; $('#ttlDate').datepicker({ - dateFormat: 'dd/mm/yy', - changeMonth: true, - changeYear: true, - onSelect: function(date) { - angular.element($('#ttlDate')).triggerHandler('input'); - } + dateFormat: 'dd/mm/yy', + changeMonth: true, + changeYear: true, + onSelect: function(date) { + angular.element($('#ttlDate')).triggerHandler('input'); + } }); - if ($scope.temp.policy.editPolicy != undefined|| $scope.temp.policy.readOnly != undefined){ - if ($scope.temp.policy.configName == undefined){ - $scope.isCheck = false; - }else{ - $scope.isCheck = true; - } - }else { - $scope.isCheck = false; - } - - 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"); - }); + if ($scope.temp.policy.editPolicy != undefined|| $scope.temp.policy.readOnly != undefined){ + if ($scope.temp.policy.configName == undefined){ + $scope.isCheck = false; + }else{ + $scope.isCheck = true; + } + }else { + $scope.isCheck = false; + } + + PolicyAppService.getData('getDictionary/get_OnapNameDataByName').then(function (data) { + var j = data; + $scope.data = JSON.parse(j.data); + $scope.onapNameDictionaryDatas = JSON.parse($scope.data.onapNameDictionaryDatas); + }); - PolicyAppService.getData('get_DCAEPriorityValues').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.priorityDatas = JSON.parse($scope.data.priorityDatas); - console.log($scope.priorityDatas); - }, function (error) { - console.log("failed"); - }); + PolicyAppService.getData('get_DCAEPriorityValues').then(function (data) { + var j = data; + $scope.data = JSON.parse(j.data); + $scope.priorityDatas = JSON.parse($scope.data.priorityDatas); + }); - PolicyAppService.getData('getDictionary/get_OptimizationModelsDataByName').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - var inputModelList = JSON.parse($scope.data.optimizationModelsDictionaryDatas); - var unique = {}; - var uniqueList = []; - for(var i = 0; i < inputModelList.length; i++){ - if(typeof unique[inputModelList[i]] == "undefined"){ - unique[inputModelList[i]] = ""; - uniqueList.push(inputModelList[i]); - } - } - $scope.optimizationModelsDictionaryDatas = uniqueList; - console.log($scope.optimizationModelsDictionaryDatas); - }, function (error) { - console.log("failed"); - }); + PolicyAppService.getData('getDictionary/get_OptimizationModelsDataByName').then(function (data) { + var j = data; + $scope.data = JSON.parse(j.data); + var inputModelList = JSON.parse($scope.data.optimizationModelsDictionaryDatas); + var unique = {}; + var uniqueList = []; + for(var i = 0; i < inputModelList.length; i++){ + if(typeof unique[inputModelList[i]] == "undefined"){ + unique[inputModelList[i]] = ""; + uniqueList.push(inputModelList[i]); + } + } + $scope.optimizationModelsDictionaryDatas = uniqueList; + }); - PolicyAppService.getData('getDictionary/get_RiskTypeDataByName').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas); - console.log($scope.riskTypeDictionaryDatas); - }, function (error) { - console.log("failed"); - }); + PolicyAppService.getData('getDictionary/get_RiskTypeDataByName').then(function (data) { + var j = data; + $scope.data = JSON.parse(j.data); + $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas); + }); - $scope.choices = []; - $scope.attributeDatas = [{"attributes" : $scope.choices}]; - $scope.isInitEditTemplate = true; //just initially create the edit template, didn't click add button yet. - $scope.addNewChoice = function(value) { - console.log("input value : " + value); - if(value != undefined){ - if (value.startsWith('div.')){ - value = value.replace('div.',''); - } - var parentElement = document.getElementById("div."+value); - var div = document.getElementById(value+"@0"); - if(div != null){ - var clone = div.cloneNode(true); - var addElement = parentElement.childElementCount; - clone.id = ''+value+'@'+addElement; - clone.value = ''; - if($scope.temp.policy.editPolicy || $scope.temp.policy.readOnly){ //if it's view or edit - if($scope.temp.policy.ruleData[clone.id] || ($scope.temp.policy.editPolicy && !$scope.isInitEditTemplate)){ // Only append child if its value found in ruleData or edit mode - if($scope.temp.policy.ruleData[clone.id]){ - clone.value = $scope.temp.policy.ruleData[clone.id]; - } - if(!clone.className.includes("child_single")){ - clone.className += ' child_single'; //single element clone - } - document.getElementById("div."+value).appendChild(clone); - plainAttributeKeys.push(''+value+'@'+addElement); - } - }else{ //not view or edit - if(!clone.className.includes("child_single")){ - clone.className += ' child_single'; //single element clone - } - document.getElementById("div."+value).appendChild(clone); - plainAttributeKeys.push(''+value+'@'+addElement); - } - }else{ - div = document.getElementById("div."+value+"@0"); - - if(div){ - div.className += ' children_group'; //div with a group of children. - } - var childElement = parentElement.firstElementChild; - var countParent = parentElement.childElementCount; - var childElementString = childElement.innerHTML; - var find = value+"@0"; - var re = new RegExp(find, 'g'); - childElementString = childElementString.replace(re,value+'@' + countParent); - var clone = childElement.cloneNode(true); - for (var ii = 0; ii < parentElement.childNodes.length; ii++){ - var childId = parentElement.childNodes[ii].id; - if(ii = parentElement.childNodes.length){ - var childnewId = childId.slice(0, -1); - var count = childId.slice(-1); - } - } - var countvalue = parseInt(count) + 1; - clone.id = childnewId+countvalue; - clone.value = ''; - clone.innerHTML=childElementString; - document.getElementById("div."+value).appendChild(clone); - var selects = clone.getElementsByTagName("select"); - var inputs = clone.getElementsByTagName("input"); - var removeValues = []; - for(var i=0; i<inputs.length; i++){ - if ($scope.temp.policy.ruleData!=undefined){ - var checkValue = $scope.temp.policy.ruleData[inputs[i].id]; - if (checkValue!=undefined && checkValue != "undefined"){ - if($scope.temp.policy.ruleData != null){ - var checkValue = $scope.temp.policy.ruleData[inputs[i].id]; - document.getElementById(inputs[i].id).value = $scope.temp.policy.ruleData[inputs[i].id]; - plainAttributeKeys.push(inputs[i].id); - } - } else { - plainAttributeKeys.push(inputs[i].id); - } - }else { - plainAttributeKeys.push(inputs[i].id); - } - } - - for(var i=0; i<selects.length; i++){ - if ($scope.temp.policy.ruleData!=undefined){ - var checkValue = $scope.temp.policy.ruleData[selects[i].id]; - if (checkValue!=undefined && checkValue!="undefined"){ - if($scope.temp.policy.ruleData != null){ - var checkValue = $scope.temp.policy.ruleData[selects[i].id]; - document.getElementById(selects[i].id).value = $scope.temp.policy.ruleData[selects[i].id]; - plainAttributeKeys.push(selects[i].id); - } - } else { - plainAttributeKeys.push(selects[i].id); - } - }else { - plainAttributeKeys.push(selects[i].id); - } - } - - for (var k=0; k<removeValues.length; k++){ - var elem = document.getElementById(removeValues[k]); - elem.parentNode.removeChild(elem); - } - var ele = angular.element(document.getElementById("div."+value)); - $compile(ele.contents())($scope); - $scope.$apply(); - } - } - }; - - function findVal(object, key) { - var value; - Object.keys(object).some(function(k) { - if (k === key) { - value = object[k]; - return true; - } - if (object[k] && typeof object[k] === 'object') { - value = findVal(object[k], key); - return value !== undefined; - } - }); - return value; - } - - $scope.removeChoice = function(value) { - console.log(value); - if(value != undefined){ - var c = document.getElementById("div."+value).childElementCount; - - if(c == 1){ - Notification.error("The original one is not removable."); - return; - } - document.getElementById("div."+value).removeChild(document.getElementById("div."+value).lastChild); - } - }; - - $scope.pullVersion = function(serviceName) { - console.log(serviceName); - if(serviceName != undefined){ - var uuu = "policyController/getModelServiceVersionData.htm"; - var postData={policyData: serviceName}; - $.ajax({ - type : 'POST', - url : uuu, - dataType: 'json', - contentType: 'application/json', - data: JSON.stringify(postData), - success : function(data){ - $scope.$apply(function(){ - $scope.optimizationModelsDictionaryVersionDatas = data[0].optimizationModelVersionData; - }); - }, - error : function(data){ - alert("Error While Retrieving the Template Layout Pattern."); - } - }); - } - }; + $scope.choices = []; + $scope.attributeDatas = [{"attributes" : $scope.choices}]; + $scope.isInitEditTemplate = true; //just initially create the edit template, didn't click add button yet. + $scope.addNewChoice = function(value) { + if(value != undefined){ + if (value.startsWith('div.')){ + value = value.replace('div.',''); + } + var parentElement = document.getElementById("div."+value); + var div = document.getElementById(value+"@0"); + if(div != null){ + var clone = div.cloneNode(true); + var addElement = parentElement.childElementCount; + clone.id = ''+value+'@'+addElement; + clone.value = ''; + if($scope.temp.policy.editPolicy || $scope.temp.policy.readOnly){ //if it's view or edit + if($scope.temp.policy.ruleData[clone.id] || ($scope.temp.policy.editPolicy && !$scope.isInitEditTemplate)){ // Only append child if its value found in ruleData or edit mode + if($scope.temp.policy.ruleData[clone.id]){ + clone.value = $scope.temp.policy.ruleData[clone.id]; + } + if(!clone.className.includes("child_single")){ + clone.className += ' child_single'; //single element clone + } + document.getElementById("div."+value).appendChild(clone); + plainAttributeKeys.push(''+value+'@'+addElement); + } + }else{ //not view or edit + if(!clone.className.includes("child_single")){ + clone.className += ' child_single'; //single element clone + } + document.getElementById("div."+value).appendChild(clone); + plainAttributeKeys.push(''+value+'@'+addElement); + } + }else{ + div = document.getElementById("div."+value+"@0"); + + if(div){ + div.className += ' children_group'; //div with a group of children. + } + var childElement = parentElement.firstElementChild; + var countParent = parentElement.childElementCount; + var childElementString = childElement.innerHTML; + var find = value+"@0"; + var re = new RegExp(find, 'g'); + childElementString = childElementString.replace(re,value+'@' + countParent); + var clone = childElement.cloneNode(true); + for (var ii = 0; ii < parentElement.childNodes.length; ii++){ + var childId = parentElement.childNodes[ii].id; + if(ii = parentElement.childNodes.length){ + var childnewId = childId.slice(0, -1); + var count = childId.slice(-1); + } + } + var countvalue = parseInt(count) + 1; + clone.id = childnewId+countvalue; + clone.value = ''; + clone.innerHTML=childElementString; + document.getElementById("div."+value).appendChild(clone); + var selects = clone.getElementsByTagName("select"); + var inputs = clone.getElementsByTagName("input"); + var removeValues = []; + for(var i=0; i<inputs.length; i++){ + if ($scope.temp.policy.ruleData!=undefined){ + var checkValue = $scope.temp.policy.ruleData[inputs[i].id]; + if (checkValue!=undefined && checkValue != "undefined"){ + if($scope.temp.policy.ruleData != null){ + var checkValue = $scope.temp.policy.ruleData[inputs[i].id]; + document.getElementById(inputs[i].id).value = $scope.temp.policy.ruleData[inputs[i].id]; + plainAttributeKeys.push(inputs[i].id); + } + } else { + plainAttributeKeys.push(inputs[i].id); + } + }else { + plainAttributeKeys.push(inputs[i].id); + } + } + + for(var i=0; i<selects.length; i++){ + if ($scope.temp.policy.ruleData!=undefined){ + var checkValue = $scope.temp.policy.ruleData[selects[i].id]; + if (checkValue!=undefined && checkValue!="undefined"){ + if($scope.temp.policy.ruleData != null){ + var checkValue = $scope.temp.policy.ruleData[selects[i].id]; + document.getElementById(selects[i].id).value = $scope.temp.policy.ruleData[selects[i].id]; + plainAttributeKeys.push(selects[i].id); + } + } else { + plainAttributeKeys.push(selects[i].id); + } + }else { + plainAttributeKeys.push(selects[i].id); + } + } + + for (var k=0; k<removeValues.length; k++){ + var elem = document.getElementById(removeValues[k]); + elem.parentNode.removeChild(elem); + } + var ele = angular.element(document.getElementById("div."+value)); + $compile(ele.contents())($scope); + $scope.$apply(); + } + } + }; + + function findVal(object, key) { + var value; + Object.keys(object).some(function(k) { + if (k === key) { + value = object[k]; + return true; + } + if (object[k] && typeof object[k] === 'object') { + value = findVal(object[k], key); + return value !== undefined; + } + }); + return value; + } + + $scope.removeChoice = function(value) { + if(value != undefined){ + var c = document.getElementById("div."+value).childElementCount; + + if(c == 1){ + Notification.error("The original one is not removable."); + return; + } + document.getElementById("div."+value).removeChild(document.getElementById("div."+value).lastChild); + } + }; + + $scope.pullVersion = function(serviceName) { + if(serviceName != undefined){ + var uuu = "policyController/getModelServiceVersionData.htm"; + var postData={policyData: serviceName}; + $.ajax({ + type : 'POST', + url : uuu, + dataType: 'json', + contentType: 'application/json', + data: JSON.stringify(postData), + success : function(data){ + $scope.$apply(function(){ + $scope.optimizationModelsDictionaryVersionDatas = data[0].optimizationModelVersionData; + }); + }, + error : function(data){ + Notification.error("Error While Retrieving the Template Layout Pattern."); + } + }); + } + }; - var splitDash = '-'; - var splitEqual = '='; - var splitComma = ','; - var splitcolon = ':'; - var splitsemicolon = ";"; - var splitEnum = "],"; - var plainAttributeKeys = []; - var matching = []; - var enumKeyList = []; - var dictionaryList = []; - var dictionaryNameList = []; + var splitEqual = '='; + var splitComma = ','; + var splitcolon = ':'; + var splitEnum = "],"; + var plainAttributeKeys = []; + var matching = []; + var enumKeyList = []; + var dictionaryList = []; + var dictionaryNameList = []; $scope.addDataToFields = function(serviceName, version){ if(serviceName != null && version !=null){ - var service=serviceName+"-v"+version; - var myNode = document.getElementById("DynamicTemplate"); - myNode.innerHTML = ''; + var service=serviceName+"-v"+version; + var myNode = document.getElementById("DynamicTemplate"); + myNode.innerHTML = ''; var uuu = "policyController/getOptimizationTemplateData.htm"; var postData={policyData: service}; var dataOrderInfo = ""; @@ -298,967 +279,931 @@ angular.module('abs').controller('optimizationController', ['$scope', '$window', data: JSON.stringify(postData), success : function(data){ $scope.$apply(function(){ - var plainAttributeKeys = []; - $scope.optimizationModelData = data[0].optimizationModelData; - $scope.optimizationJsonDate = data[0].jsonValue; + $scope.optimizationModelData = data[0].optimizationModelData; + $scope.optimizationJsonDate = data[0].jsonValue; $scope.dataOrderInfo = null; - $scope.dataOrderInfo = data[0].dataOrderInfo; - console.log("data[0].dataOrderInfo: " + data[0].dataOrderInfo); - console.log("$scope.dataOrderInfo: " + $scope.dataOrderInfo); - if(data[0].allManyTrueKeys){ - console.log("$scope.allManyTrueKeys: " + $scope.allManyTrueKeys); - } - console.log("$scope.optimizationJsonDate: " + $scope.optimizationJsonDate); - var attributes = $scope.optimizationModelData.attributes; - var refAttributes = $scope.optimizationModelData.ref_attributes; - var subAttributes = $scope.optimizationModelData.sub_attributes; - console.log("attributes: " +attributes); - console.log("subAttributes: " + subAttributes); - console.log("refAttributes: " + refAttributes); - - var headDefautlsData = data[0].headDefautlsData; - if(headDefautlsData != null){ - $scope.temp.policy.onapName = headDefautlsData.onapName; - $scope.temp.policy.guard = headDefautlsData.guard; - $scope.temp.policy.riskType = headDefautlsData.riskType; - $scope.temp.policy.riskLevel = headDefautlsData.riskLevel; - $scope.temp.policy.priority = headDefautlsData.priority; - - }else if(!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly){ - $scope.temp.policy.onapName = ""; - $scope.temp.policy.guard = ""; - $scope.temp.policy.riskType = ""; - $scope.temp.policy.riskLevel = ""; - $scope.temp.policy.priority = ""; - } - - var enumAttributes = $scope.optimizationModelData.enumValues; - var annotation = $scope.optimizationModelData.annotation; - var dictionary = $scope.microServiceAttributeDictionaryDatas; + var headDefautlsData = data[0].headDefautlsData; + if(headDefautlsData != null){ + $scope.temp.policy.onapName = headDefautlsData.onapName; + $scope.temp.policy.guard = headDefautlsData.guard; + $scope.temp.policy.riskType = headDefautlsData.riskType; + $scope.temp.policy.riskLevel = headDefautlsData.riskLevel; + $scope.temp.policy.priority = headDefautlsData.priority; + + }else if(!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly){ + $scope.temp.policy.onapName = ""; + $scope.temp.policy.guard = ""; + $scope.temp.policy.riskType = ""; + $scope.temp.policy.riskLevel = ""; + $scope.temp.policy.priority = ""; + } + + var annotation = $scope.optimizationModelData.annotation; + var dictionary = $scope.microServiceAttributeDictionaryDatas; - if (annotation == null || annotation.length<1){ - $scope.isCheck = true; - }else { - $scope.isCheck = false; - var annoationList = annotation.split(splitComma); - for (k = 0; k < annoationList.length; k++){ - var splitAnnotation = annoationList[k].split(splitEqual); - if (splitAnnotation[1].includes("matching-true")){ - matching.push(splitAnnotation[0].trim()); - } - } + if (annotation == null || annotation.length<1){ + $scope.isCheck = true; + }else { + $scope.isCheck = false; + var annoationList = annotation.split(splitComma); + for (k = 0; k < annoationList.length; k++){ + var splitAnnotation = annoationList[k].split(splitEqual); + if (splitAnnotation[1].includes("matching-true")){ + matching.push(splitAnnotation[0].trim()); + } + } - } + } - if (dictionary!= null && dictionary.length>1){ - for (m=0; m < dictionary.length; m += 1){ - var keyCompare = dictionary[m].name; - var valueCompare = dictionary[m].value; - var valueModel = dictionary[m].modelName; - var conpairService = serviceName; - if (valueModel.includes('-v')){ - conpairService = service; - } - if(valueModel.localeCompare(conpairService) == 0){ - console.log(valueCompare); - dictionaryList.push(dictionary[m]); - if (!dictionaryNameList.includes(dictionary[m].name)){ - dictionaryNameList.push(dictionary[m].name) - } - } - } - } + if (dictionary!= null && dictionary.length>1){ + for (m=0; m < dictionary.length; m += 1){ + var valueCompare = dictionary[m].value; + var valueModel = dictionary[m].modelName; + var conpairService = serviceName; + if (valueModel.includes('-v')){ + conpairService = service; + } + if(valueModel.localeCompare(conpairService) == 0){ + dictionaryList.push(dictionary[m]); + if (!dictionaryNameList.includes(dictionary[m].name)){ + dictionaryNameList.push(dictionary[m].name) + } + } + } + } - $scope.temp.policy.ruleGridData = []; - - if($scope.temp.policy.editPolicy || $scope.temp.policy.readOnly){ - dataOrderInfo = $scope.dataOrderInfo; - } - - $scope.jsonLayout($scope.optimizationJsonDate); - + $scope.temp.policy.ruleGridData = []; + + if($scope.temp.policy.editPolicy || $scope.temp.policy.readOnly){ + dataOrderInfo = $scope.dataOrderInfo; + } + + $scope.jsonLayout($scope.optimizationJsonDate); + }); if($scope.temp.policy.editPolicy || $scope.temp.policy.readOnly){ // If it's veiw or edit - - if($scope.temp.policy.editPolicy){ - $scope.isInitEditTemplate = true; - } - - var checkData = []; - var data = []; - // If ruleData contains extra elements created by clicked add button - if($scope.temp.policy.ruleData != null){ - var propNames = Object.getOwnPropertyNames($scope.temp.policy.ruleData); - propNames.forEach(function(name) { - data.push(name); - }); - - var extraElements = data; - - if(plainAttributeKeys != null){ - for(b = 0; b < plainAttributeKeys.length; b++){ // Remove already populated elements from data array - var newValue = plainAttributeKeys[b].split("*"); - for(a = 0; a < data.length; a++){ - if(data[a] === newValue[0] || data[a] === (newValue[0]+"@0")){ - extraElements.splice(a, 1); - } - } - - } - - //--- Populate these extra elements created by clicked add button - for(a = 0; a < extraElements.length; a++){ - if(extraElements[a].includes("@")){ - var index = extraElements[a].lastIndexOf("@"); - if(index > 0){ - // Get the number after @ - var n = getNumOfDigits(extraElements[a], index+1); - - var key = extraElements[a].substring(0, index+n+1); //include @x in key also by n+2 since x can be 1,12, etc - console.log("key: " + key); - checkData.push(key); - } - } - } - var unique = checkData.filter(onlyUnique); - //if no layout order info, keep the process as before - if(!dataOrderInfo){ - for(i =0; i < unique.length; i++){ - //remove @x and let addNewChoice add @1 or @2... - //var newKey = unique[i].substring(0, unique[i].length-2); - var index = unique[i].lastIndexOf("@"); - var newKey = unique[i].substring(0, index); - console.log("newKey: " + newKey); - $scope.addNewChoice(newKey); - } - }else{ + + if($scope.temp.policy.editPolicy){ + $scope.isInitEditTemplate = true; + } + + var checkData = []; + var data = []; + // If ruleData contains extra elements created by clicked add button + if($scope.temp.policy.ruleData != null){ + var propNames = Object.getOwnPropertyNames($scope.temp.policy.ruleData); + propNames.forEach(function(name) { + data.push(name); + }); + + var extraElements = data; + + if(plainAttributeKeys != null){ + for(b = 0; b < plainAttributeKeys.length; b++){ // Remove already populated elements from data array + var newValue = plainAttributeKeys[b].split("*"); + for(a = 0; a < data.length; a++){ + if(data[a] === newValue[0] || data[a] === (newValue[0]+"@0")){ + extraElements.splice(a, 1); + } + } + + } + + //--- Populate these extra elements created by clicked add button + for(a = 0; a < extraElements.length; a++){ + if(extraElements[a].includes("@")){ + var index = extraElements[a].lastIndexOf("@"); + if(index > 0){ + // Get the number after @ + var n = getNumOfDigits(extraElements[a], index+1); + + var key = extraElements[a].substring(0, index+n+1); //include @x in key also by n+2 since x can be 1,12, etc + checkData.push(key); + } + } + } + var unique = checkData.filter(onlyUnique); + //if no layout order info, keep the process as before + if(!dataOrderInfo){ + for(i =0; i < unique.length; i++){ + //remove @x and let addNewChoice add @1 or @2... + //var newKey = unique[i].substring(0, unique[i].length-2); + var index = unique[i].lastIndexOf("@"); + var newKey = unique[i].substring(0, index); + $scope.addNewChoice(newKey); + } + }else{ - for (i = 0; i < $scope.labelManyKeys.length; i++) { - console.log("dataOrderInfo["+i+"]"+ dataOrderInfo[i]); - var label = $scope.labelManyKeys[i]; - // first add parent/label level - for (k = 0; k < unique.length; k++){ - var newindex = unique[k].lastIndexOf("@"); - var newKey = unique[k].substring(0, index); - if(label == newKey){ + for (i = 0; i < $scope.labelManyKeys.length; i++) { + var label = $scope.labelManyKeys[i]; + // first add parent/label level + for (k = 0; k < unique.length; k++){ + var newKey = unique[k].substring(0, index); + if(label == newKey){ //Check this label has bee created or not - if(!document.getElementById(unique[k])){ - $scope.addNewChoice(newKey); - } - unique[k] = "*processed*"; - break; - } - } - } - - //---reset to default - dataOrderInfo = []; - $scope.labelManyKeys = []; - - //---process none labels - for (j = 0; j < unique.length; j++){ - if(unique[j] != "*processed*"){ - // if not created yet - if(!document.getElementById(unique[j])){ - var index = unique[j].lastIndexOf("@"); - var newKey = unique[j].substring(0, index); - $scope.addNewChoice(newKey); - } - } - } - } - } - } - - if($scope.temp.policy.editPolicy){ - //clean all the events of addNewChoice - $scope.$on('$destroy', addNewChoice); - } - + if(!document.getElementById(unique[k])){ + $scope.addNewChoice(newKey); + } + unique[k] = "*processed*"; + break; + } + } + } + + //---reset to default + dataOrderInfo = []; + $scope.labelManyKeys = []; + + //---process none labels + for (j = 0; j < unique.length; j++){ + if(unique[j] != "*processed*"){ + // if not created yet + if(!document.getElementById(unique[j])){ + var index = unique[j].lastIndexOf("@"); + var newKey = unique[j].substring(0, index); + $scope.addNewChoice(newKey); + } + } + } + } + } + } + + if($scope.temp.policy.editPolicy){ + //clean all the events of addNewChoice + $scope.$on('$destroy', addNewChoice); + } + } var ele = angular.element(document.getElementById("DynamicTemplate")); - $compile(ele.contents())($scope); + $compile(ele.contents())($scope); $scope.$apply(); }, error : function(data){ - alert("Error While Retrieving the Template Layout Pattern."); + Notification.error("Error While Retrieving the Template Layout Pattern."); } }); } }; function getNumOfDigits(str_value, index){ - // Get the number after @ - var str = str_value.substring(index, str_value.length); - var c = ''; - var n = 0; - for (var x = 0; x < str.length; x++){ - c = str.charAt(x); - if(!isNaN(c)){ + // Get the number after @ + var str = str_value.substring(index, str_value.length); + var c = ''; + var n = 0; + for (var x = 0; x < str.length; x++){ + c = str.charAt(x); + if(!isNaN(c)){ n++; - }else{ + }else{ break; } - } - return n; + } + return n; } function getDictionary(attribute){ - var dicName = attribute; - if(attribute){ - if(attribute.includes(":")){ - dicName = attribute.split(":")[0]; - } - } - var dictionaryRegExp = new RegExp(dicName); - listemunerateValues = []; - if (dictionaryRegExp.test(dictionaryNameList)) { - for (p=0; p < dictionaryList.length; p += 1) { - if (dicName == dictionaryList[p].name) { - listemunerateValues.push(dictionaryList[p].value); - } - } - } - return listemunerateValues; + var dicName = attribute; + if(attribute){ + if(attribute.includes(":")){ + dicName = attribute.split(":")[0]; + } + } + var dictionaryRegExp = new RegExp(dicName); + listemunerateValues = []; + if (dictionaryRegExp.test(dictionaryNameList)) { + for (p=0; p < dictionaryList.length; p += 1) { + if (dicName == dictionaryList[p].name) { + listemunerateValues.push(dictionaryList[p].value); + } + } + } + return listemunerateValues; } function getList(attribute) { - var enumName = attribute; - console.log("In getList: attribute => " + attribute); - if(attribute){ - if(attribute.includes(":")){ - enumName = attribute.split(":")[0]; - } - } + var enumName = attribute; + if(attribute){ + if(attribute.includes(":")){ + enumName = attribute.split(":")[0]; + } + } var baseEnum = $scope.optimizationModelData.enumValues; var enumList = []; if(baseEnum != null){ - enumList = baseEnum.split(splitEnum); + enumList = baseEnum.split(splitEnum); } - var enumAttributes; - var patternTest = new RegExp(enumName); - for (k=0; k < enumList.length; k += 1){ - if(patternTest.test(enumList[k]) == true){ - enumAttributes = enumList[k].trim(); - } - } + var enumAttributes; + var patternTest = new RegExp(enumName); + for (k=0; k < enumList.length; k += 1){ + if(patternTest.test(enumList[k]) == true){ + enumAttributes = enumList[k].trim(); + } + } - if(enumAttributes){ - enumAttributes = enumAttributes.replace("[", ""); - enumAttributes = enumAttributes.replace("]", ""); - enumAttributes = enumAttributes.replace(/ /g, ''); - var dropListAfterCommaSplit = enumAttributes.split(splitEqual); - listemunerateValues = dropListAfterCommaSplit[1].split(splitComma); - return listemunerateValues; - } + if(enumAttributes){ + enumAttributes = enumAttributes.replace("[", ""); + enumAttributes = enumAttributes.replace("]", ""); + enumAttributes = enumAttributes.replace(/ /g, ''); + var dropListAfterCommaSplit = enumAttributes.split(splitEqual); + listemunerateValues = dropListAfterCommaSplit[1].split(splitComma); + return listemunerateValues; + } return []; } - + function getBooleanList(){ - var booleanList = []; - booleanList.push(true); - booleanList.push(false); - return booleanList; + var booleanList = []; + booleanList.push(true); + booleanList.push(false); + return booleanList; } function isArray(arrayTest) { return Object.prototype.toString.call(arrayTest) === '[object Array]'; } - - var lableList = []; - + + var lableList = []; + $scope.layOutElementList = []; $scope.layOutOnlyLableList = []; var elementOrderNum = 0; - - function deconstructJSON(layOutData, level , name) { + + function deconstructJSON(layOutData, level , name) { - var array = false; - var label = level; - var stringValue = "java.lang.String"; - var string = "string"; - var intValue = "int"; - var integerValue = "integer"; - var double = "double"; - var boolean = "boolean"; - var baseLevel = level; - var list = "list"; - var String = "String"; - - var attributekey = ""; - - if (name.length > 1){ - label = label + name + '.'; - } - - for (key in layOutData) { - array = isArray(layOutData[key]); - console.log("key: " + key , "value: " + layOutData[key]); - - if (!!layOutData[key] && typeof(layOutData[key])=="object") { - - if (array==false && key!=="0"){ - - if($scope.dataOrderInfo){ - var labelObject = {"label" : key, "level" : label, "array" : array}; - //save it to the list - $scope.layOutOnlyLableList.push(labelObject); - - }else { - //call label layout - $scope.labelLayout(label, key, array ); - } - - } - - if (array == true && key!=0){ - lableList.push(key); - } - - if (lableList.length > 0){ - array = true; - } - if ( key==="0"){ - var newKey = lableList.pop(); - - if($scope.dataOrderInfo){ - - var labelObject = {"label" : newKey, "level" : baseLevel, "array" : array}; - //save it to the list - $scope.layOutOnlyLableList.push(labelObject); - - }else { - //call label layout - $scope.labelLayout(baseLevel, newKey, array ); - } - - if (array){ - label = baseLevel + newKey + '@0.'; - } else { - label = baseLevel + newKey + '.'; - } - } - deconstructJSON(layOutData[key] , label, key); - } else { - var attirbuteLabel = label; - var defaultValue=''; - var isRequired = false; - if (layOutData[key].includes('defaultValue-')){ - defaultValue = layOutData[key].split('defaultValue-')[1]; - } + var array = false; + var label = level; + var stringValue = "java.lang.String"; + var string = "string"; + var intValue = "int"; + var integerValue = "integer"; + var double = "double"; + var boolean = "boolean"; + var baseLevel = level; + var list = "list"; + var String = "String"; + + var attributekey = ""; + + if (name.length > 1){ + label = label + name + '.'; + } + + for (key in layOutData) { + array = isArray(layOutData[key]); + + if (!!layOutData[key] && typeof(layOutData[key])=="object") { + + if (array==false && key!=="0"){ + + if($scope.dataOrderInfo){ + var labelObject = {"label" : key, "level" : label, "array" : array}; + //save it to the list + $scope.layOutOnlyLableList.push(labelObject); + + }else { + //call label layout + $scope.labelLayout(label, key, array ); + } + + } + + if (array == true && key!=0){ + lableList.push(key); + } + + if (lableList.length > 0){ + array = true; + } + if ( key==="0"){ + var newKey = lableList.pop(); + + if($scope.dataOrderInfo){ + + var labelObject = {"label" : newKey, "level" : baseLevel, "array" : array}; + //save it to the list + $scope.layOutOnlyLableList.push(labelObject); + + }else { + //call label layout + $scope.labelLayout(baseLevel, newKey, array ); + } + + if (array){ + label = baseLevel + newKey + '@0.'; + } else { + label = baseLevel + newKey + '.'; + } + } + deconstructJSON(layOutData[key] , label, key); + } else { + var attirbuteLabel = label; + var defaultValue=''; + var isRequired = false; + if (layOutData[key].includes('defaultValue-')){ + defaultValue = layOutData[key].split('defaultValue-')[1]; + } - if (key==="0"){ - array = true; - attributekey = lableList.pop(); - attirbuteLabel = baseLevel; - } else { - attributekey = key.split(); - } - - if (layOutData[key].includes('required-true')){ - isRequired = true; - } - - var subAttributes = $scope.optimizationModelData.sub_attributes; - - if(subAttributes){ - var jsonObject = JSON.parse(subAttributes); - var allkeys = Object.keys(jsonObject); - if(allkeys){ - for (var k = 0; k < allkeys.length; k++) { - var keyValue = allkeys[k]; - console.log(" keyValue:jsonObject["+keyValue+ "]: " + jsonObject[keyValue]); - if(jsonObject[keyValue]){ - var tempObject = jsonObject[keyValue]; - if(tempObject && tempObject[key]){ - if (tempObject[key].includes('required-true')){ - isRequired = true; - } - } - } - } - } - } - - var elementObject = {}; - switch (layOutData[key].split(splitcolon)[0]){ - - case stringValue: - case string: - if($scope.dataOrderInfo){ - elementOrderNum++; - elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue, "isRequired": isRequired, "type":"text"}; - $scope.layOutElementList.push(elementObject); - }else{ - $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "text"); - } - break; - case intValue: - case integerValue: - if($scope.dataOrderInfo){ - elementOrderNum++; - elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "type":"number"}; - $scope.layOutElementList.push(elementObject); - }else{ - $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "number"); - } - break; - case double: - if($scope.dataOrderInfo){ - elementOrderNum++; - elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "type":"double"}; - $scope.layOutElementList.push(elementObject); - }else{ - $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "double"); - } - break; - case boolean: - if($scope.dataOrderInfo){ - elementOrderNum++; - elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": layOutData[key], "list": getBooleanList, "isRequired": isRequired, "type":"dropBox"}; - $scope.layOutElementList.push(elementObject); - }else{ - $scope.dropBoxLayout(attirbuteLabel, attributekey, array, layOutData[key], getBooleanList()); - } - break; - default: - if (layOutData[key].includes('dictionary-')){ - var list = getDictionary(layOutData[key].split('dictionary-')[1]); - }else{ - //--- get dropdown values from enumValues - var list = getList(layOutData[key]); - } - if (list.length===0){ //not dropdown element - if($scope.dataOrderInfo){ - elementOrderNum++; - elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "type":"text"}; - $scope.layOutElementList.push(elementObject); - - }else{ - $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "text"); - } - }else{ - if($scope.dataOrderInfo){ - elementOrderNum++; - elementObject = {"id": elementOrderNum, "attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": layOutData[key],"isRequired": isRequired, "list":list, "type":"dropBox"}; - $scope.layOutElementList.push(elementObject); - }else{ - $scope.dropBoxLayout(attirbuteLabel, attributekey, array, layOutData[key], list, isRequired); - } - } - break; - } - } - } - } + if (key==="0"){ + array = true; + attributekey = lableList.pop(); + attirbuteLabel = baseLevel; + } else { + attributekey = key.split(); + } + + if (layOutData[key].includes('required-true')){ + isRequired = true; + } + + var subAttributes = $scope.optimizationModelData.sub_attributes; + + if(subAttributes){ + var jsonObject = JSON.parse(subAttributes); + var allkeys = Object.keys(jsonObject); + if(allkeys){ + for (var k = 0; k < allkeys.length; k++) { + var keyValue = allkeys[k]; + if(jsonObject[keyValue]){ + var tempObject = jsonObject[keyValue]; + if(tempObject && tempObject[key]){ + if (tempObject[key].includes('required-true')){ + isRequired = true; + } + } + } + } + } + } + + var elementObject = {}; + switch (layOutData[key].split(splitcolon)[0]){ + + case stringValue: + case string: + if($scope.dataOrderInfo){ + elementOrderNum++; + elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue, "isRequired": isRequired, "type":"text"}; + $scope.layOutElementList.push(elementObject); + }else{ + $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "text"); + } + break; + case intValue: + case integerValue: + if($scope.dataOrderInfo){ + elementOrderNum++; + elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "type":"number"}; + $scope.layOutElementList.push(elementObject); + }else{ + $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "number"); + } + break; + case double: + if($scope.dataOrderInfo){ + elementOrderNum++; + elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "type":"double"}; + $scope.layOutElementList.push(elementObject); + }else{ + $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "double"); + } + break; + case boolean: + if($scope.dataOrderInfo){ + elementOrderNum++; + elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": layOutData[key], "list": getBooleanList, "isRequired": isRequired, "type":"dropBox"}; + $scope.layOutElementList.push(elementObject); + }else{ + $scope.dropBoxLayout(attirbuteLabel, attributekey, array, layOutData[key], getBooleanList()); + } + break; + default: + if (layOutData[key].includes('dictionary-')){ + var list = getDictionary(layOutData[key].split('dictionary-')[1]); + }else{ + //--- get dropdown values from enumValues + var list = getList(layOutData[key]); + } + if (list.length===0){ //not dropdown element + if($scope.dataOrderInfo){ + elementOrderNum++; + elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "type":"text"}; + $scope.layOutElementList.push(elementObject); + + }else{ + $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "text"); + } + }else{ + if($scope.dataOrderInfo){ + elementOrderNum++; + elementObject = {"id": elementOrderNum, "attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": layOutData[key],"isRequired": isRequired, "list":list, "type":"dropBox"}; + $scope.layOutElementList.push(elementObject); + }else{ + $scope.dropBoxLayout(attirbuteLabel, attributekey, array, layOutData[key], list, isRequired); + } + } + break; + } + } + } + } $scope.validContionalRequired = function(parentId) { - console.log("ng-blur event: parentId : " + parentId); var c = document.getElementById(parentId).children; var i; var hasValue = false; for (i = 0; i < c.length; i++) { - if(c[i].getAttribute("data-conditional")){ - console.log(c[i].getAttribute("data-conditional")); - console.log(c[i].value); - if(c[i].value != null && c[i].value.trim() != ""){ - hasValue = true; - } - } + if(c[i].getAttribute("data-conditional")){ + if(c[i].value != null && c[i].value.trim() != ""){ + hasValue = true; + } + } } - for (i = 0; i < c.length; i++) { - if(c[i].getAttribute("data-conditional")){ - if(hasValue){ - c[i].setAttribute("required", true); - }else{ - c[i].removeAttribute("required"); - } - } - } + for (i = 0; i < c.length; i++) { + if(c[i].getAttribute("data-conditional")){ + if(hasValue){ + c[i].setAttribute("required", true); + }else{ + c[i].removeAttribute("required"); + } + } + } } - + $scope.jsonLayout = function(layOutData){ - + deconstructJSON(layOutData , "", ""); - - var orderValue = $scope.dataOrderInfo; - var layOutElementList = $scope.layOutElementList; - var labelList = $scope.layOutOnlyLableList; - - //reset to default - elementOrderNum = 0; - $scope.layOutElementList = []; - $scope.layOutOnlyLableList = []; - - // Only layout in order if order info provided - if(orderValue){ - - if(orderValue.includes("[")){ - orderValue = orderValue.replace("[", "") ; - orderValue = orderValue.replace("]", "") ; - } - - orderValue = orderValue.split(',') ; - - for (i = 0; i < orderValue.length; i++) { - console.log("orderValue["+i+"]"+ orderValue[i]); - var key = orderValue[i].trim(); - - //--- Create labels first {"label" : newKey, "level" : baseLevel, "array" : array}; - if(labelList){ - for (k = 0; k < labelList.length; k++){ - - var label = labelList[k].label.toString().trim(); - var level = labelList[k].level.toString().trim(); - var array = labelList[k].array; - - if(key == label){ - $scope.labelLayout(level, label, array); - //in case to have duplicate label names - labelList[k].label = "*processed*"; - break; - } - } - } - //--- then layout each element based on its order defined in YAML file - for (j = 0; j < layOutElementList.length; j++) { - - var attributekey = layOutElementList[j].attributekey.toString().trim(); - - if(key == attributekey){ - - var attirbuteLabel = layOutElementList[j].attirbuteLabel.toString().trim(); - var defaultValue = layOutElementList[j].defaultValue.toString().trim(); - var isRequired = layOutElementList[j].isRequired; - - console.log("layOutElementList[" +j+ "]: id:" + layOutElementList[j].id + ", attributekey:"+ layOutElementList[j].attributekey + ", attirbuteLabel:" + layOutElementList[j].attirbuteLabel); - - if (layOutElementList[j].type == "dropBox"){ - $scope.dropBoxLayout(attirbuteLabel, attributekey, layOutElementList[j].array, defaultValue, layOutElementList[j].list, isRequired); - - }else{ - $scope.attributeBox(attributekey, layOutElementList[j].array, attirbuteLabel, defaultValue, isRequired, layOutElementList[j].type); - - } - - //in case to have duplicate attribute names - layOutElementList[j].attributekey = "*processed*"; - break; - } - - } - - } - } + + var orderValue = $scope.dataOrderInfo; + var layOutElementList = $scope.layOutElementList; + var labelList = $scope.layOutOnlyLableList; + + //reset to default + elementOrderNum = 0; + $scope.layOutElementList = []; + $scope.layOutOnlyLableList = []; + + // Only layout in order if order info provided + if(orderValue){ + + if(orderValue.includes("[")){ + orderValue = orderValue.replace("[", "") ; + orderValue = orderValue.replace("]", "") ; + } + + orderValue = orderValue.split(',') ; + + for (i = 0; i < orderValue.length; i++) { + var key = orderValue[i].trim(); + + //--- Create labels first {"label" : newKey, "level" : baseLevel, "array" : array}; + if(labelList){ + for (k = 0; k < labelList.length; k++){ + + var label = labelList[k].label.toString().trim(); + var level = labelList[k].level.toString().trim(); + var array = labelList[k].array; + + if(key == label){ + $scope.labelLayout(level, label, array); + //in case to have duplicate label names + labelList[k].label = "*processed*"; + break; + } + } + } + //--- then layout each element based on its order defined in YAML file + for (j = 0; j < layOutElementList.length; j++) { + + var attributekey = layOutElementList[j].attributekey.toString().trim(); + + if(key == attributekey){ + + var attirbuteLabel = layOutElementList[j].attirbuteLabel.toString().trim(); + var defaultValue = layOutElementList[j].defaultValue.toString().trim(); + var isRequired = layOutElementList[j].isRequired; + + + if (layOutElementList[j].type == "dropBox"){ + $scope.dropBoxLayout(attirbuteLabel, attributekey, layOutElementList[j].array, defaultValue, layOutElementList[j].list, isRequired); + + }else{ + $scope.attributeBox(attributekey, layOutElementList[j].array, attirbuteLabel, defaultValue, isRequired, layOutElementList[j].type); + + } + + //in case to have duplicate attribute names + layOutElementList[j].attributekey = "*processed*"; + break; + } + + } + + } + } } $scope.attributeBox = function(attibuteKey, attributeManyKey, labelValue, defaultValue, isRequired, dataType ){ - $scope.temp.policy.ruleGridData.push(attibuteKey); - var br = document.createElement("BR"); - - var label = document.createElement("Label"); - var labeltext = null; - var requiredLabName = ""; - if (matching.includes(attibuteKey)){ - labeltext = document.createTextNode(attibuteKey + "*!"); - isRequired = true; //set required as true for matching element - }else { - if(isRequired){ - requiredLabName = attibuteKey + " * "; - labeltext = document.createTextNode(requiredLabName); - }else{ - labeltext = document.createTextNode(attibuteKey); - } - } + $scope.temp.policy.ruleGridData.push(attibuteKey); + var br = document.createElement("BR"); + + var label = document.createElement("Label"); + var labeltext = null; + var requiredLabName = ""; + if (matching.includes(attibuteKey)){ + labeltext = document.createTextNode(attibuteKey + "*!"); + isRequired = true; //set required as true for matching element + }else { + if(isRequired){ + requiredLabName = attibuteKey + " * "; + labeltext = document.createTextNode(requiredLabName); + }else{ + labeltext = document.createTextNode(attibuteKey); + } + } - - var divID = labelValue; - - if (labelValue.length < 1){ - divID = "DynamicTemplate"; - }else if (labelValue.endsWith('.')){ - var divID = 'div.'+ labelValue.substring(0, labelValue.length-1); - } - - label.appendChild(labeltext); - - var textField = document.createElement("INPUT"); - - textField.setAttribute("class" , "form-control"); - if(dataType){ - if(dataType == "double"){ - textField.setAttribute("type" , "number"); - textField.setAttribute("step" , "any"); - }else{ - textField.setAttribute("type" , dataType); - } - } - textField.setAttribute("style" , "width:300px;"); - textField.setAttribute("ng-disabled" , "temp.policy.readOnly"); - var checkKey; - var id = ""; - if(attributeManyKey){ - checkKey = labelValue + attibuteKey+'@0'; - textField.setAttribute("id" , ''+labelValue + attibuteKey+'@0'+''); - var divTag = document.createElement("div"); - divTag.setAttribute("id", "div."+ labelValue +attibuteKey); - var addButton = document.createElement("BUTTON"); - var buttonaddLabel = document.createTextNode("+"); - addButton.appendChild(buttonaddLabel); - addButton.setAttribute("id", labelValue + attibuteKey); - addButton.setAttribute("class", "btn btn-add-remove"); - addButton.setAttribute("ng-click" , 'addNewChoice("'+labelValue + attibuteKey+'");'); - addButton.setAttribute("ng-disabled" , "temp.policy.readOnly"); - var removeButton = document.createElement("BUTTON"); - var buttonremoveLabel = document.createTextNode("-"); - removeButton.appendChild(buttonremoveLabel); - removeButton.setAttribute("class", "btn btn-add-remove"); - removeButton.setAttribute("ng-click" , 'removeChoice("'+labelValue + attibuteKey+'");'); - removeButton.setAttribute("ng-disabled" , "temp.policy.readOnly"); - document.getElementById(divID).appendChild(addButton); - document.getElementById(divID).appendChild(removeButton); - document.getElementById(divID).appendChild(label); - id = "div."+labelValue+attibuteKey; - divTag.setAttribute("id", id); - document.getElementById(divID).appendChild(divTag); - textField.className += ' first_child'; - if(isRequired){ - textField.setAttribute("required", "true"); - } - divTag.appendChild(textField); - document.getElementById(divID).appendChild(divTag); - - }else{ - checkKey = labelValue + attibuteKey; - textField.setAttribute("id" , ''+labelValue +attibuteKey+''); - if(document.getElementById(divID).hasAttribute('required') || !document.getElementById(divID).hasAttribute('data-conditional')){ - if(requiredLabName.includes("*") || isRequired){ - textField.setAttribute("required", "true"); - } - }else if (document.getElementById(divID).hasAttribute('data-conditional')){ - if(requiredLabName.includes("*")){ - var requiredNode = document.createElement('span'); - requiredNode.setAttribute("class", "mstooltip"); - requiredNode.textContent = "?"; - label.appendChild(requiredNode); - - var requiredNodeToolTip = document.createElement('span'); - requiredNodeToolTip.setAttribute("class", "tooltiptext"); - requiredNodeToolTip.textContent = "Conditional Required"; - requiredNode.appendChild(requiredNodeToolTip); - - textField.setAttribute("data-conditional", divID); - textField.setAttribute("ng-blur", "validContionalRequired('"+divID+"')"); - } - } - - document.getElementById(divID).appendChild(label); - document.getElementById(divID).appendChild(textField); - document.getElementById(divID).appendChild(br); - - } + + var divID = labelValue; + + if (labelValue.length < 1){ + divID = "DynamicTemplate"; + }else if (labelValue.endsWith('.')){ + var divID = 'div.'+ labelValue.substring(0, labelValue.length-1); + } + + label.appendChild(labeltext); + + var textField = document.createElement("INPUT"); + + textField.setAttribute("class" , "form-control"); + if(dataType){ + if(dataType == "double"){ + textField.setAttribute("type" , "number"); + textField.setAttribute("step" , "any"); + }else{ + textField.setAttribute("type" , dataType); + } + } + textField.setAttribute("style" , "width:300px;"); + textField.setAttribute("ng-disabled" , "temp.policy.readOnly"); + var checkKey; + var id = ""; + if(attributeManyKey){ + checkKey = labelValue + attibuteKey+'@0'; + textField.setAttribute("id" , ''+labelValue + attibuteKey+'@0'+''); + var divTag = document.createElement("div"); + divTag.setAttribute("id", "div."+ labelValue +attibuteKey); + var addButton = document.createElement("BUTTON"); + var buttonaddLabel = document.createTextNode("+"); + addButton.appendChild(buttonaddLabel); + addButton.setAttribute("id", labelValue + attibuteKey); + addButton.setAttribute("class", "btn btn-add-remove"); + addButton.setAttribute("ng-click" , 'addNewChoice("'+labelValue + attibuteKey+'");'); + addButton.setAttribute("ng-disabled" , "temp.policy.readOnly"); + var removeButton = document.createElement("BUTTON"); + var buttonremoveLabel = document.createTextNode("-"); + removeButton.appendChild(buttonremoveLabel); + removeButton.setAttribute("class", "btn btn-add-remove"); + removeButton.setAttribute("ng-click" , 'removeChoice("'+labelValue + attibuteKey+'");'); + removeButton.setAttribute("ng-disabled" , "temp.policy.readOnly"); + document.getElementById(divID).appendChild(addButton); + document.getElementById(divID).appendChild(removeButton); + document.getElementById(divID).appendChild(label); + id = "div."+labelValue+attibuteKey; + divTag.setAttribute("id", id); + document.getElementById(divID).appendChild(divTag); + textField.className += ' first_child'; + if(isRequired){ + textField.setAttribute("required", "true"); + } + divTag.appendChild(textField); + document.getElementById(divID).appendChild(divTag); + + }else{ + checkKey = labelValue + attibuteKey; + textField.setAttribute("id" , ''+labelValue +attibuteKey+''); + if(document.getElementById(divID).hasAttribute('required') || !document.getElementById(divID).hasAttribute('data-conditional')){ + if(requiredLabName.includes("*") || isRequired){ + textField.setAttribute("required", "true"); + } + }else if (document.getElementById(divID).hasAttribute('data-conditional')){ + if(requiredLabName.includes("*")){ + var requiredNode = document.createElement('span'); + requiredNode.setAttribute("class", "mstooltip"); + requiredNode.textContent = "?"; + label.appendChild(requiredNode); + + var requiredNodeToolTip = document.createElement('span'); + requiredNodeToolTip.setAttribute("class", "tooltiptext"); + requiredNodeToolTip.textContent = "Conditional Required"; + requiredNode.appendChild(requiredNodeToolTip); + + textField.setAttribute("data-conditional", divID); + textField.setAttribute("ng-blur", "validContionalRequired('"+divID+"')"); + } + } + + document.getElementById(divID).appendChild(label); + document.getElementById(divID).appendChild(textField); + document.getElementById(divID).appendChild(br); + + } - if(divID.includes("@0") && divID.includes("div.")){ - var firstChild_Id = divID.split("@0")[0]; - var firstChild_element = document.getElementById(firstChild_Id); - if(firstChild_element){ - firstChild_element.className += ' children_group'; //here is a div with a group of children. - } - } - console.log('firstChild_Id: ' + firstChild_Id); - console.log('divID: ' + divID); - - if (defaultValue.length > 0){ - if(defaultValue.includes(":")){ - defaultValue = defaultValue.split(":")[0]; - if(defaultValue === "NA") { - defaultValue = ""; - } - } - if(defaultValue != "undefined" && defaultValue != undefined && defaultValue != "null"){ - document.getElementById(checkKey).value = defaultValue; - } - } - - if($scope.temp.policy.ruleData != null){ - if (attributeManyKey){ - var newCheckKey = checkKey.replace(attibuteKey + '@0',attibuteKey); - if($scope.temp.policy.ruleData[newCheckKey +'@0'] != undefined && $scope.temp.policy.ruleData[newCheckKey +'@0'] != "undefined"){ - document.getElementById(newCheckKey +'@0').value = $scope.temp.policy.ruleData[newCheckKey +'@0']; - } - }else{ - if($scope.temp.policy.ruleData[checkKey] != undefined && $scope.temp.policy.ruleData[checkKey] != "undefined"){ - document.getElementById(checkKey).value = $scope.temp.policy.ruleData[checkKey]; - } - } - } - plainAttributeKeys.push(labelValue + attibuteKey+'*'+attributeManyKey); + if(divID.includes("@0") && divID.includes("div.")){ + var firstChild_Id = divID.split("@0")[0]; + var firstChild_element = document.getElementById(firstChild_Id); + if(firstChild_element){ + firstChild_element.className += ' children_group'; //here is a div with a group of children. + } + } + + if (defaultValue.length > 0){ + if(defaultValue.includes(":")){ + defaultValue = defaultValue.split(":")[0]; + if(defaultValue === "NA") { + defaultValue = ""; + } + } + if(defaultValue != "undefined" && defaultValue != undefined && defaultValue != "null"){ + document.getElementById(checkKey).value = defaultValue; + } + } + + if($scope.temp.policy.ruleData != null){ + if (attributeManyKey){ + var newCheckKey = checkKey.replace(attibuteKey + '@0',attibuteKey); + if($scope.temp.policy.ruleData[newCheckKey +'@0'] != undefined && $scope.temp.policy.ruleData[newCheckKey +'@0'] != "undefined"){ + document.getElementById(newCheckKey +'@0').value = $scope.temp.policy.ruleData[newCheckKey +'@0']; + } + }else{ + if($scope.temp.policy.ruleData[checkKey] != undefined && $scope.temp.policy.ruleData[checkKey] != "undefined"){ + document.getElementById(checkKey).value = $scope.temp.policy.ruleData[checkKey]; + } + } + } + plainAttributeKeys.push(labelValue + attibuteKey+'*'+attributeManyKey); }; $scope.labelManyKeys = []; $scope.labelLayout = function(labelValue, lableName, labelManyKey ){ - var label = document.createElement("Label") - var divID = labelValue; - if (labelValue.endsWith('.')){ - var workingLabel = labelValue.substring(0, labelValue.length-1); - }else { - var workingLabel = labelValue; - } - - if (labelValue.length < 1){ - divID = "DynamicTemplate"; - } else if (labelValue.endsWith('.')){ - var divID = 'div.'+ labelValue.substring(0, labelValue.length-1); - } - - var subAttributes = $scope.optimizationModelData.subattributes; - var jsonObject = JSON.parse(subAttributes); - var lablInfo = findVal(jsonObject, lableName); - console.log("findValue : " + lableName +": "+ lablInfo); - var star = ""; - var required = null; - if(lablInfo){ - if(lablInfo.includes("required-true")){ - star = " *"; - required = true; - }else if (lablInfo.includes("required-false")){ - required = false - } - } - - var labeltext = document.createTextNode(lableName + star); - - label.appendChild(labeltext); + var label = document.createElement("Label") + var divID = labelValue; + if (labelValue.endsWith('.')){ + var workingLabel = labelValue.substring(0, labelValue.length-1); + }else { + var workingLabel = labelValue; + } + + if (labelValue.length < 1){ + divID = "DynamicTemplate"; + } else if (labelValue.endsWith('.')){ + var divID = 'div.'+ labelValue.substring(0, labelValue.length-1); + } + + var subAttributes = $scope.optimizationModelData.subattributes; + var jsonObject = JSON.parse(subAttributes); + var lablInfo = findVal(jsonObject, lableName); + var star = ""; + var required = null; + if(lablInfo){ + if(lablInfo.includes("required-true")){ + star = " *"; + required = true; + }else if (lablInfo.includes("required-false")){ + required = false + } + } + + var labeltext = document.createTextNode(lableName + star); + + label.appendChild(labeltext); - if(labelManyKey){ - var addButton = document.createElement("BUTTON"); - var buttonLabel = document.createTextNode("+"); - addButton.appendChild(buttonLabel); - addButton.setAttribute("class", "btn btn-add-remove"); - addButton.setAttribute("ng-click" , 'addNewChoice("'+labelValue + lableName+'");'); - addButton.setAttribute("ng-disabled" , "temp.policy.readOnly"); - var removeButton = document.createElement("BUTTON"); - var buttonremoveLabel = document.createTextNode("-"); - removeButton.appendChild(buttonremoveLabel); - removeButton.setAttribute("class", "btn btn-add-remove"); - removeButton.setAttribute("ng-click" , 'removeChoice("'+labelValue +lableName+'");'); - removeButton.setAttribute("ng-disabled" , "temp.policy.readOnly"); - document.getElementById(divID).appendChild(addButton); - document.getElementById(divID).appendChild(removeButton); - document.getElementById(divID).appendChild(label); - var id = "div."+labelValue+lableName; - var divTag = document.createElement("div"); - divTag.setAttribute("id", id); - document.getElementById(divID).appendChild(divTag); - - var divTag = document.createElement("div"); - divTag.setAttribute("id", id +'@0'); - - divTag.className += ' children_group'; //here is div with a group of children. - - if(required){ - divTag.setAttribute("required", required); - }else if(required == false){ - divTag.setAttribute("data-conditional", "yes"); - } - - document.getElementById(id).appendChild(divTag); - - $scope.labelManyKeys.push(lableName); - - }else{ - var divTag = document.createElement("div"); - divTag.setAttribute("id", "div."+labelValue+lableName); - divTag.className += ' children_group'; //here is div with a group of children. - if(required){ - divTag.setAttribute("required", required); - }else if(required == false){ - divTag.setAttribute("data-conditional", "yes"); - } - document.getElementById(divID).appendChild(label); - document.getElementById(divID).appendChild(divTag); - } + if(labelManyKey){ + var addButton = document.createElement("BUTTON"); + var buttonLabel = document.createTextNode("+"); + addButton.appendChild(buttonLabel); + addButton.setAttribute("class", "btn btn-add-remove"); + addButton.setAttribute("ng-click" , 'addNewChoice("'+labelValue + lableName+'");'); + addButton.setAttribute("ng-disabled" , "temp.policy.readOnly"); + var removeButton = document.createElement("BUTTON"); + var buttonremoveLabel = document.createTextNode("-"); + removeButton.appendChild(buttonremoveLabel); + removeButton.setAttribute("class", "btn btn-add-remove"); + removeButton.setAttribute("ng-click" , 'removeChoice("'+labelValue +lableName+'");'); + removeButton.setAttribute("ng-disabled" , "temp.policy.readOnly"); + document.getElementById(divID).appendChild(addButton); + document.getElementById(divID).appendChild(removeButton); + document.getElementById(divID).appendChild(label); + var id = "div."+labelValue+lableName; + var divTag = document.createElement("div"); + divTag.setAttribute("id", id); + document.getElementById(divID).appendChild(divTag); + + var divTag = document.createElement("div"); + divTag.setAttribute("id", id +'@0'); + + divTag.className += ' children_group'; //here is div with a group of children. + + if(required){ + divTag.setAttribute("required", required); + }else if(required == false){ + divTag.setAttribute("data-conditional", "yes"); + } + + document.getElementById(id).appendChild(divTag); + + $scope.labelManyKeys.push(lableName); + + }else{ + var divTag = document.createElement("div"); + divTag.setAttribute("id", "div."+labelValue+lableName); + divTag.className += ' children_group'; //here is div with a group of children. + if(required){ + divTag.setAttribute("required", required); + }else if(required == false){ + divTag.setAttribute("data-conditional", "yes"); + } + document.getElementById(divID).appendChild(label); + document.getElementById(divID).appendChild(divTag); + } }; $scope.dropBoxLayout = function(labelLevel, attributeName, many , refValue, listemunerateValues, isRequired){ - var br = document.createElement("BR"); - - if (labelLevel.length < 1){ - var divID = "DynamicTemplate"; - } else if (labelLevel.endsWith('.')){ - var divID = 'div.'+ labelLevel.substring(0, labelLevel.length-1); - } - - - var label = document.createElement("Label") - - var refAttributes = $scope.optimizationModelData.ref_attributes; - if(isRequired != true && refAttributes){ //check refAttributes also - var refAttributesList = refAttributes.split(splitComma); - for (k = 0; k < refAttributesList.length; k++){ - var refAttribute = refAttributesList[k].split(splitEqual); - if (attributeName == refAttribute[0].trim() && refAttribute[1].includes("required-true")){ - isRequired = true; - } - } - } - - if (matching.includes(attributeName)){ - var labeltext = document.createTextNode(attributeName + "*!"); - label.appendChild(labeltext); - isRequired = true; //set required as true for matching element - }else { - var labeltext = document.createTextNode(attributeName); - if(isRequired){ - var requiredLabName = attributeName+ " * "; - labeltext = document.createTextNode(requiredLabName); - }else{ - labeltext = document.createTextNode(attributeName); - } - - label.appendChild(labeltext); - } - label.appendChild(labeltext); - // if this field is required, but its parent is not required - if(isRequired && document.getElementById(divID).hasAttribute('data-conditional')){ - var requiredNode = document.createElement('span'); - requiredNode.setAttribute("class", "mstooltip"); - requiredNode.textContent = "?"; - label.appendChild(requiredNode); - - var requiredNodeToolTip = document.createElement('span'); - requiredNodeToolTip.setAttribute("class", "tooltiptext"); - requiredNodeToolTip.textContent = "Conditional Required"; - requiredNode.appendChild(requiredNodeToolTip); + var br = document.createElement("BR"); + + if (labelLevel.length < 1){ + var divID = "DynamicTemplate"; + } else if (labelLevel.endsWith('.')){ + var divID = 'div.'+ labelLevel.substring(0, labelLevel.length-1); + } + + + var label = document.createElement("Label") + + var refAttributes = $scope.optimizationModelData.ref_attributes; + if(isRequired != true && refAttributes){ //check refAttributes also + var refAttributesList = refAttributes.split(splitComma); + for (k = 0; k < refAttributesList.length; k++){ + var refAttribute = refAttributesList[k].split(splitEqual); + if (attributeName == refAttribute[0].trim() && refAttribute[1].includes("required-true")){ + isRequired = true; + } + } + } + + if (matching.includes(attributeName)){ + var labeltext = document.createTextNode(attributeName + "*!"); + label.appendChild(labeltext); + isRequired = true; //set required as true for matching element + }else { + var labeltext = document.createTextNode(attributeName); + if(isRequired){ + var requiredLabName = attributeName+ " * "; + labeltext = document.createTextNode(requiredLabName); + }else{ + labeltext = document.createTextNode(attributeName); + } + + label.appendChild(labeltext); + } + label.appendChild(labeltext); + // if this field is required, but its parent is not required + if(isRequired && document.getElementById(divID).hasAttribute('data-conditional')){ + var requiredNode = document.createElement('span'); + requiredNode.setAttribute("class", "mstooltip"); + requiredNode.textContent = "?"; + label.appendChild(requiredNode); + + var requiredNodeToolTip = document.createElement('span'); + requiredNodeToolTip.setAttribute("class", "tooltiptext"); + requiredNodeToolTip.textContent = "Conditional Required"; + requiredNode.appendChild(requiredNodeToolTip); - } - - var listField = document.createElement("SELECT"); - listField.setAttribute("class" , "form-control"); - listField.setAttribute("style" , "width:300px;"); - listField.setAttribute("ng-disabled" , "temp.policy.readOnly"); - - if(isRequired){ - if(document.getElementById(divID).hasAttribute('data-conditional')){ - listField.setAttribute("data-conditional", divID); - listField.setAttribute("ng-blur", "validContionalRequired('"+divID+"')"); - }else{ - listField.setAttribute("required", true); - } - } - if( many != true || isRequired != true){ // add an empty option for not required or not multiple select element - var optionFirst = document.createElement('option'); - optionFirst.setAttribute('value', ""); - listField.appendChild(optionFirst); - } - - for (var i=0; i < listemunerateValues.length; i += 1) { - if(typeof listemunerateValues[i] == "string" && listemunerateValues[i].includes("equal-sign")){ - listemunerateValues[i] = listemunerateValues[i].replace('equal-sign','='); - } - var option = document.createElement('option'); - option.setAttribute('value', listemunerateValues[i]); - option.appendChild(document.createTextNode(listemunerateValues[i])); - option.setAttribute('value', listemunerateValues[i]); - listField.appendChild(option); - } - listField.setAttribute("id" , ''+ labelLevel + attributeName + ''); - - enumKeyList.push(attributeName); - - document.getElementById(divID).appendChild(label); - document.getElementById(divID).appendChild(br); - - if(many == true){ - document.getElementById(divID).appendChild(listField).multiple = true; - plainAttributeKeys.push(labelLevel + attributeName+'*'+true); - }else { - document.getElementById(divID).appendChild(listField).multiple = false; - plainAttributeKeys.push(labelLevel + attributeName+'*'+false); - } - - if($scope.temp.policy.ruleData != null){ - if (many == true){ - document.getElementById(labelLevel +attributeName).options[0].selected = false; - for (i=0; i < listemunerateValues.length; i += 1) { - var testValue = $scope.temp.policy.ruleData[labelLevel +attributeName+'@' + i]; - if (testValue === undefined){ - testValue = $scope.temp.policy.ruleData[labelLevel +attributeName]; - } - var location = listemunerateValues.indexOf(testValue); - if (location!=-1){ - document.getElementById(labelLevel +attributeName).options[location].selected = true; - } - } - }else { - if($scope.temp.policy.ruleData[labelLevel + attributeName] != undefined && $scope.temp.policy.ruleData[labelLevel + attributeName] != "undefined"){ - document.getElementById(labelLevel + attributeName).value = $scope.temp.policy.ruleData[labelLevel + attributeName]; - } - } - } - }; + } + + var listField = document.createElement("SELECT"); + listField.setAttribute("class" , "form-control"); + listField.setAttribute("style" , "width:300px;"); + listField.setAttribute("ng-disabled" , "temp.policy.readOnly"); + + if(isRequired){ + if(document.getElementById(divID).hasAttribute('data-conditional')){ + listField.setAttribute("data-conditional", divID); + listField.setAttribute("ng-blur", "validContionalRequired('"+divID+"')"); + }else{ + listField.setAttribute("required", true); + } + } + if( many != true || isRequired != true){ // add an empty option for not required or not multiple select element + var optionFirst = document.createElement('option'); + optionFirst.setAttribute('value', ""); + listField.appendChild(optionFirst); + } + + for (var i=0; i < listemunerateValues.length; i += 1) { + if(typeof listemunerateValues[i] == "string" && listemunerateValues[i].includes("equal-sign")){ + listemunerateValues[i] = listemunerateValues[i].replace('equal-sign','='); + } + var option = document.createElement('option'); + option.setAttribute('value', listemunerateValues[i]); + option.appendChild(document.createTextNode(listemunerateValues[i])); + option.setAttribute('value', listemunerateValues[i]); + listField.appendChild(option); + } + listField.setAttribute("id" , ''+ labelLevel + attributeName + ''); + + enumKeyList.push(attributeName); + + document.getElementById(divID).appendChild(label); + document.getElementById(divID).appendChild(br); + + if(many == true){ + document.getElementById(divID).appendChild(listField).multiple = true; + plainAttributeKeys.push(labelLevel + attributeName+'*'+true); + }else { + document.getElementById(divID).appendChild(listField).multiple = false; + plainAttributeKeys.push(labelLevel + attributeName+'*'+false); + } + + if($scope.temp.policy.ruleData != null){ + if (many == true){ + document.getElementById(labelLevel +attributeName).options[0].selected = false; + for (i=0; i < listemunerateValues.length; i += 1) { + var testValue = $scope.temp.policy.ruleData[labelLevel +attributeName+'@' + i]; + if (testValue === undefined){ + testValue = $scope.temp.policy.ruleData[labelLevel +attributeName]; + } + var location = listemunerateValues.indexOf(testValue); + if (location!=-1){ + document.getElementById(labelLevel +attributeName).options[location].selected = true; + } + } + }else { + if($scope.temp.policy.ruleData[labelLevel + attributeName] != undefined && $scope.temp.policy.ruleData[labelLevel + attributeName] != "undefined"){ + document.getElementById(labelLevel + attributeName).value = $scope.temp.policy.ruleData[labelLevel + attributeName]; + } + } + } + }; function onlyUnique(value, index, self) { return self.indexOf(value) === index; }; $scope.savePolicy = function(policy){ - if(policy.itemContent != undefined){ - $scope.refreshCheck = true; - $scope.policyNavigator = policy.itemContent; - policy.itemContent = ""; - } - $scope.savebutton = false; - var splitAt = '*'; - var dot ='.'; - var jsonPolicy = {}; - if(plainAttributeKeys != null){ - for(a = 0; a < plainAttributeKeys.length; a++){ - var splitPlainAttributeKey = plainAttributeKeys[a].split(splitAt); - console.log("splitPlainAttributeKey: " + splitPlainAttributeKey); - var searchElement = document.getElementById(splitPlainAttributeKey[0]); - var key = splitPlainAttributeKey[0]; - + if(policy.itemContent != undefined){ + $scope.refreshCheck = true; + $scope.policyNavigator = policy.itemContent; + policy.itemContent = ""; + } + $scope.savebutton = false; + var splitAt = '*'; + var dot ='.'; + var jsonPolicy = {}; + if(plainAttributeKeys != null){ + for(a = 0; a < plainAttributeKeys.length; a++){ + var splitPlainAttributeKey = plainAttributeKeys[a].split(splitAt); + var searchElement = document.getElementById(splitPlainAttributeKey[0]); + var key = splitPlainAttributeKey[0]; + if(searchElement == null || searchElement.nodeName == 'BUTTON'){ searchElement = document.getElementById(splitPlainAttributeKey[0]+'@0'); key = splitPlainAttributeKey[0]+'@0'; } - if(searchElement != null){ - var keySplit = key.split(dot); - var elumentLocation = keySplit.length; - var enumKey = key; - if (elumentLocation > 1){ - enumKey = keySplit[keySplit.length - 1]; - } - //check it is undefined or not - if (enumKeyList != undefined && enumKeyList.indexOf(enumKey) != -1){ - if (splitPlainAttributeKey[1]!= undefined && splitPlainAttributeKey[1].indexOf("true") !== -1){ - var multiSlect = []; - for ( var i = 0; i < searchElement.selectedOptions.length; i++) { - multiSlect.push(searchElement.selectedOptions[i].value); - } - jsonPolicy[key]= multiSlect; - }else{ - console.log(" searchElement.value = > " + searchElement.value); - jsonPolicy[key]= searchElement.value; - } - } else { - if(searchElement.value != null){ - console.log(" searchElement.value = > " + searchElement.value); - jsonPolicy[key]= searchElement.value; - } - } - } - } - } + if(searchElement != null){ + var keySplit = key.split(dot); + var elumentLocation = keySplit.length; + var enumKey = key; + if (elumentLocation > 1){ + enumKey = keySplit[keySplit.length - 1]; + } + //check it is undefined or not + if (enumKeyList != undefined && enumKeyList.indexOf(enumKey) != -1){ + if (splitPlainAttributeKey[1]!= undefined && splitPlainAttributeKey[1].indexOf("true") !== -1){ + var multiSlect = []; + for ( var i = 0; i < searchElement.selectedOptions.length; i++) { + multiSlect.push(searchElement.selectedOptions[i].value); + } + jsonPolicy[key]= multiSlect; + }else{ + jsonPolicy[key]= searchElement.value; + } + } else { + if(searchElement.value != null){ + jsonPolicy[key]= searchElement.value; + } + } + } + } + } var uuu = "policycreation/save_policy"; var postData={policyData: policy, policyJSON : jsonPolicy}; $.ajax({ @@ -1269,113 +1214,110 @@ angular.module('abs').controller('optimizationController', ['$scope', '$window', data: JSON.stringify(postData), success : function(data){ $scope.$apply(function(){ - $scope.data=data.policyData; - if($scope.data == 'success'){ - $scope.temp.policy.readOnly = 'true'; - $scope.safetyChecker = data.policyData.split("#")[2]; - if ($scope.safetyChecker!=undefined) { - Notification.success($scope.safetyChecker); - } - $scope.pushStatus=data.policyData.split("&")[1]; - if($scope.pushStatus=="successPush"){ - Notification.success("Policy pushed successfully"); - } - Notification.success("Policy Saved Successfully."); - }else if ($scope.data == 'PolicyExists'){ - $scope.savebutton = true; - Notification.error("Policy Already Exists with Same Name in Scope."); - } + $scope.data=data.policyData; + if($scope.data == 'success'){ + $scope.temp.policy.readOnly = 'true'; + $scope.safetyChecker = data.policyData.split("#")[2]; + if ($scope.safetyChecker!=undefined) { + Notification.success($scope.safetyChecker); + } + $scope.pushStatus=data.policyData.split("&")[1]; + if($scope.pushStatus=="successPush"){ + Notification.success("Policy pushed successfully"); + } + 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."); + Notification.error("Error Occured while saving Policy."); } }); }; $scope.validatePolicy = function(policy){ - document.getElementById("validate").innerHTML = ""; - var splitAt = '*'; - var dot ='.'; - var jsonPolicy = {}; - if(plainAttributeKeys != null){ - for(a = 0; a < plainAttributeKeys.length; a++){ - var splitPlainAttributeKey = plainAttributeKeys[a].split(splitAt); - console.log(splitPlainAttributeKey[1]); - var searchElement = document.getElementById(splitPlainAttributeKey[0]); - var key = splitPlainAttributeKey[0]; - if(searchElement == null || searchElement.nodeName == 'BUTTON'){ - searchElement = document.getElementById(splitPlainAttributeKey[0]+'@0'); - key = splitPlainAttributeKey[0]+'@0'; - } - if(searchElement != null){ - if (enumKeyList.indexOf(key) != -1){ - if (splitPlainAttributeKey[1].indexOf("true") !== -1){ - var multiSlect = []; - for ( var i = 0; i < searchElement.selectedOptions.length; i++) { - multiSlect.push(searchElement.selectedOptions[i].value); - } - jsonPolicy[key]= multiSlect; - }else{ - jsonPolicy[key]= searchElement.value; - } - if(searchElement.getAttribute("required")){ - if(!searchElement.value){ - return; - } - } - } else { - if(searchElement.value != null){ - jsonPolicy[key]= searchElement.value; - if(searchElement.getAttribute("required")){ - if(!searchElement.value){ - return; - } - } - } - } - } - } - } + document.getElementById("validate").innerHTML = ""; + var splitAt = '*'; + var dot ='.'; + var jsonPolicy = {}; + if(plainAttributeKeys != null){ + for(a = 0; a < plainAttributeKeys.length; a++){ + var splitPlainAttributeKey = plainAttributeKeys[a].split(splitAt); + var searchElement = document.getElementById(splitPlainAttributeKey[0]); + var key = splitPlainAttributeKey[0]; + if(searchElement == null || searchElement.nodeName == 'BUTTON'){ + searchElement = document.getElementById(splitPlainAttributeKey[0]+'@0'); + key = splitPlainAttributeKey[0]+'@0'; + } + if(searchElement != null){ + if (enumKeyList.indexOf(key) != -1){ + if (splitPlainAttributeKey[1].indexOf("true") !== -1){ + var multiSlect = []; + for ( var i = 0; i < searchElement.selectedOptions.length; i++) { + multiSlect.push(searchElement.selectedOptions[i].value); + } + jsonPolicy[key]= multiSlect; + }else{ + jsonPolicy[key]= searchElement.value; + } + if(searchElement.getAttribute("required")){ + if(!searchElement.value){ + return; + } + } + } else { + if(searchElement.value != null){ + jsonPolicy[key]= searchElement.value; + if(searchElement.getAttribute("required")){ + if(!searchElement.value){ + return; + } + } + } + } + } + } + } var uuu = "policyController/validate_policy.htm"; var postData={policyData: policy, policyJSON : jsonPolicy}; - $.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.substring(1,8); - var size = data.data.length; - if($scope.data == 'success'){ - Notification.success("Validation Success."); - $scope.savebutton = false; - if (size > 18){ - var displayWarning = data.data.substring(19,size - 1); - document.getElementById("validate").innerHTML = "Safe Policy Warning Message : "+displayWarning; - document.getElementById("validate").style.color = "white"; - document.getElementById("validate").style.backgroundColor = "skyblue"; - } - }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.validateData = data.data.replace(/\"/g, ""); + $scope.data=data.data.substring(1,8); + var size = data.data.length; + if($scope.data == 'success'){ + Notification.success("Validation Success."); + $scope.savebutton = false; + if (size > 18){ + var displayWarning = data.data.substring(19,size - 1); + document.getElementById("validate").innerHTML = "Safe Policy Warning Message : "+displayWarning; + document.getElementById("validate").style.color = "white"; + document.getElementById("validate").style.backgroundColor = "skyblue"; + } + }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; + } + }); }; function extend(obj, src) { @@ -1386,4 +1328,4 @@ angular.module('abs').controller('optimizationController', ['$scope', '$window', } }]);/** * - */
\ No newline at end of file + */ diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/controllers/policyManager.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/controllers/policyManager.js index 0aec30c1d..0cf655398 100644 --- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/controllers/policyManager.js +++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/controllers/policyManager.js @@ -2,13 +2,13 @@ * ============LICENSE_START======================================================= * ONAP Policy Engine * ================================================================================ - * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019-2020 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. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -18,326 +18,308 @@ * ============LICENSE_END========================================================= */ app.controller('PolicyManagerController', [ - '$scope', '$q', '$window', '$cookies', 'policyManagerConfig', 'item', 'policyNavigator', 'policyUploader', 'Notification','PolicyAppService', - function($scope, $q, $Window, $cookies, policyManagerConfig, Item, PolicyNavigator, PolicyUploader, Notification, PolicyAppService ) { + '$scope', '$q', '$window', '$cookies', 'policyManagerConfig', 'item', 'policyNavigator', 'policyUploader', 'Notification','PolicyAppService', + function($scope, $q, $Window, $cookies, policyManagerConfig, Item, PolicyNavigator, PolicyUploader, Notification, PolicyAppService ) { - $scope.isDisabled = true; - $scope.superAdminId = false; - $scope.exportPolicyId = false; - $scope.importPolicyId = false; - $scope.createScopeId = false; - $scope.deleteScopeId = false; - $scope.renameId = false; - $scope.createPolicyId = false; - $scope.cloneId = false; - $scope.editPolicyId = false; - $scope.switchVersionId = false; - $scope.describePolicyId = false; - $scope.viewPolicyId = false; - $scope.deletePolicyId = false; - PolicyAppService.getData('get_LockDownData').then(function(data) { - var j = data; - $scope.data = JSON.parse(j.data); - $scope.lockdowndata = JSON.parse($scope.data.lockdowndata); - if ($scope.lockdowndata[0].lockdown == true) { - $scope.isDisabled = true; - } else { - $scope.isDisabled = false; - } - console.log($scope.data); - }, function(error) { - console.log("failed"); - }); + $scope.isDisabled = true; + $scope.superAdminId = false; + $scope.exportPolicyId = false; + $scope.importPolicyId = false; + $scope.createScopeId = false; + $scope.deleteScopeId = false; + $scope.renameId = false; + $scope.createPolicyId = false; + $scope.cloneId = false; + $scope.editPolicyId = false; + $scope.switchVersionId = false; + $scope.describePolicyId = false; + $scope.viewPolicyId = false; + $scope.deletePolicyId = false; + PolicyAppService.getData('get_LockDownData').then(function(data) { + var j = data; + $scope.data = JSON.parse(j.data); + $scope.lockdowndata = JSON.parse($scope.data.lockdowndata); + if ($scope.lockdowndata[0].lockdown == true) { + $scope.isDisabled = true; + } else { + $scope.isDisabled = false; + } + }, function(error) { + }); - PolicyAppService.getData('getDictionary/get_DescriptiveScopeByName').then(function(data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.descriptiveScopeDictionaryDatas = JSON.parse($scope.data.descriptiveScopeDictionaryDatas); - }, function (error) { - console.log("failed"); - }); + PolicyAppService.getData('getDictionary/get_DescriptiveScopeByName').then(function(data) { + var j = data; + $scope.data = JSON.parse(j.data); + $scope.descriptiveScopeDictionaryDatas = JSON.parse($scope.data.descriptiveScopeDictionaryDatas); + }); - 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); - }, function (error) { - console.log("failed"); - }); + PolicyAppService.getData('getDictionary/get_OnapNameDataByName').then(function(data) { + var j = data; + $scope.data = JSON.parse(j.data); + $scope.onapNameDictionaryDatas = JSON.parse($scope.data.onapNameDictionaryDatas); + }); - PolicyAppService.getData('getDictionary/get_VSCLActionDataByName').then(function(data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.vsclActionDictionaryDatas = JSON.parse($scope.data.vsclActionDictionaryDatas); - }, function (error) { - console.log("failed"); - }); - - PolicyAppService.getData('getDictionary/get_VNFTypeDataByName').then(function(data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.vnfTypeDictionaryDatas = JSON.parse($scope.data.vnfTypeDictionaryDatas); - }, function (error) { - console.log("failed"); - }); + PolicyAppService.getData('getDictionary/get_VSCLActionDataByName').then(function(data) { + var j = data; + $scope.data = JSON.parse(j.data); + $scope.vsclActionDictionaryDatas = JSON.parse($scope.data.vsclActionDictionaryDatas); + }); + PolicyAppService.getData('getDictionary/get_VNFTypeDataByName').then(function(data) { + var j = data; + $scope.data = JSON.parse(j.data); + $scope.vnfTypeDictionaryDatas = JSON.parse($scope.data.vnfTypeDictionaryDatas); + }); - PolicyAppService.getData('get_UserRolesData').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.userRolesDatas = JSON.parse($scope.data.userRolesDatas); - console.log($scope.userRolesDatas); - if ($scope.userRolesDatas[0] == 'super-admin') { - $scope.superAdminId = true; - $scope.exportPolicyId = true; - $scope.importPolicyId = true; - } else if ($scope.userRolesDatas[0] == 'super-editor' || $scope.userRolesDatas[0] == 'editor' || $scope.userRolesDatas[0] == 'admin') { - $scope.exportPolicyId = true; - $scope.importPolicyId = true; - } - }, function (error) { - console.log("failed"); - }); - $scope.config = policyManagerConfig; - $scope.reverse = false; - $scope.predicate = ['model.type', 'model.name']; - $scope.order = function(predicate) { - $scope.reverse = ($scope.predicate[1] === predicate) ? !$scope.reverse : false; - $scope.predicate[1] = predicate; - }; + PolicyAppService.getData('get_UserRolesData').then(function (data) { + var j = data; + $scope.data = JSON.parse(j.data); + $scope.userRolesDatas = JSON.parse($scope.data.userRolesDatas); + if ($scope.userRolesDatas[0] == 'super-admin') { + $scope.superAdminId = true; + $scope.exportPolicyId = true; + $scope.importPolicyId = true; + } else if ($scope.userRolesDatas[0] == 'super-editor' || $scope.userRolesDatas[0] == 'editor' || $scope.userRolesDatas[0] == 'admin') { + $scope.exportPolicyId = true; + $scope.importPolicyId = true; + } + }); - $scope.query = ''; - $scope.temp = new Item(); - $scope.policyNavigator = new PolicyNavigator(); - $scope.policyUploader = PolicyUploader; - $scope.uploadFileList = []; + $scope.config = policyManagerConfig; + $scope.reverse = false; + $scope.predicate = ['model.type', 'model.name']; + $scope.order = function(predicate) { + $scope.reverse = ($scope.predicate[1] === predicate) ? !$scope.reverse : false; + $scope.predicate[1] = predicate; + }; - $scope.setTemplate = function(name) { - $scope.viewTemplate = $cookies.viewTemplate = name; - }; + $scope.query = ''; + $scope.temp = new Item(); + $scope.policyNavigator = new PolicyNavigator(); + $scope.policyUploader = PolicyUploader; + $scope.uploadFileList = []; - $scope.touch = function(item) { - item = item instanceof Item ? item : new Item(); - item.revert(); - $scope.temp = item; - $scope.createScopeId = false; - $scope.deleteScopeId = false; - $scope.renameId = false; - $scope.createPolicyId = false; - $scope.cloneId = false; - $scope.editPolicyId = false; - $scope.switchVersionId = false; - $scope.describePolicyId = false; - $scope.viewPolicyId = false; - $scope.deletePolicyId = false; - if ($scope.temp.model.roleType == 'super-admin') { - $scope.createScopeId = true; - $scope.deleteScopeId = true; - $scope.renameId = true; - $scope.createPolicyId = true; - $scope.cloneId = true; - $scope.editPolicyId = true; - $scope.switchVersionId = true; - $scope.describePolicyId = true; - $scope.viewPolicyId = true; - $scope.deletePolicyId = true; - } else if ($scope.temp.model.roleType == 'super-editor' || $scope.temp.model.roleType == 'editor') { - $scope.cloneId = true; - $scope.editPolicyId = true; - $scope.createPolicyId = true; - $scope.switchVersionId = true; - $scope.describePolicyId = true; - $scope.viewPolicyId = true; - $scope.deletePolicyId = true; - } else if ($scope.temp.model.roleType == 'super-guest' || $scope.temp.model.roleType == 'guest') { - $scope.describePolicyId = true; - $scope.viewPolicyId = true; - } else if ($scope.temp.model.roleType == 'admin') { - $scope.createScopeId = true; - $scope.renameId = true; - $scope.createPolicyId = true; - $scope.cloneId = true; - $scope.editPolicyId = true; - $scope.switchVersionId = true; - $scope.describePolicyId = true; - $scope.viewPolicyId = true; - $scope.deletePolicyId = true; - } - }; + $scope.setTemplate = function(name) { + $scope.viewTemplate = $cookies.viewTemplate = name; + }; - $scope.smartClick = function(item) { - if (item.isFolder()) { - return $scope.policyNavigator.folderClick(item); - } - if (item.isEditable()) { - return $scope.openEditItem(item); - } - }; + $scope.touch = function(item) { + item = item instanceof Item ? item : new Item(); + item.revert(); + $scope.temp = item; + $scope.createScopeId = false; + $scope.deleteScopeId = false; + $scope.renameId = false; + $scope.createPolicyId = false; + $scope.cloneId = false; + $scope.editPolicyId = false; + $scope.switchVersionId = false; + $scope.describePolicyId = false; + $scope.viewPolicyId = false; + $scope.deletePolicyId = false; + if ($scope.temp.model.roleType == 'super-admin') { + $scope.createScopeId = true; + $scope.deleteScopeId = true; + $scope.renameId = true; + $scope.createPolicyId = true; + $scope.cloneId = true; + $scope.editPolicyId = true; + $scope.switchVersionId = true; + $scope.describePolicyId = true; + $scope.viewPolicyId = true; + $scope.deletePolicyId = true; + } else if ($scope.temp.model.roleType == 'super-editor' || $scope.temp.model.roleType == 'editor') { + $scope.cloneId = true; + $scope.editPolicyId = true; + $scope.createPolicyId = true; + $scope.switchVersionId = true; + $scope.describePolicyId = true; + $scope.viewPolicyId = true; + $scope.deletePolicyId = true; + } else if ($scope.temp.model.roleType == 'super-guest' || $scope.temp.model.roleType == 'guest') { + $scope.describePolicyId = true; + $scope.viewPolicyId = true; + } else if ($scope.temp.model.roleType == 'admin') { + $scope.createScopeId = true; + $scope.renameId = true; + $scope.createPolicyId = true; + $scope.cloneId = true; + $scope.editPolicyId = true; + $scope.switchVersionId = true; + $scope.describePolicyId = true; + $scope.viewPolicyId = true; + $scope.deletePolicyId = true; + } + }; - $scope.openEditItem = function(item) { - item.getContent(); - $scope.modal('createNewPolicy'); - return $scope.touch(item); - }; + $scope.smartClick = function(item) { + if (item.isFolder()) { + return $scope.policyNavigator.folderClick(item); + } + if (item.isEditable()) { + return $scope.openEditItem(item); + } + }; - $scope.modal = function(id, hide) { - return $('#' + id).modal(hide ? 'hide' : 'show'); - }; + $scope.openEditItem = function(item) { + item.getContent(); + $scope.modal('createNewPolicy'); + return $scope.touch(item); + }; - $scope.isInThisPath = function(path) { - var currentPath = $scope.policyNavigator.currentPath.join('/'); - return currentPath.indexOf(path) !== -1; - }; - - $scope.watchPolicy = function(item) { - var uuu = "watchPolicy"; - var data = {name : item.model.name, - path : item.model.path}; - var postData={watchData: data}; - $.ajax({ - type : 'POST', - url : uuu, - dataType: 'json', - contentType: 'application/json', - data: JSON.stringify(postData), - success : function(data) { - $scope.$apply(function() { - $scope.watchData=data.watchData;}); - Notification.success($scope.watchData); - console.log($scope.watchData); - }, - error : function(data) { - alert("Error while saving."); - } - }); - }; + $scope.modal = function(id, hide) { + return $('#' + id).modal(hide ? 'hide' : 'show'); + }; - $scope.refresh = function() { - $scope.policyNavigator.refresh(); - }; + $scope.isInThisPath = function(path) { + var currentPath = $scope.policyNavigator.currentPath.join('/'); + return currentPath.indexOf(path) !== -1; + }; + + $scope.watchPolicy = function(item) { + var uuu = "watchPolicy"; + var data = {name : item.model.name, + path : item.model.path}; + var postData={watchData: data}; + $.ajax({ + type : 'POST', + url : uuu, + dataType: 'json', + contentType: 'application/json', + data: JSON.stringify(postData), + success : function(data) { + $scope.$apply(function() { + $scope.watchData=data.watchData;}); + Notification.success($scope.watchData); + }, + error : function(data) { + Notification.error("Error while saving."); + } + }); + }; - $scope.switchVersion = function(item) { - if ($scope.policyNavigator.fileNameExists(item.tempModel.content.activeVersion)) { - item.error = 'Invalid filename or already exists, specify another name'; - return false; - } - item.getSwitchVersionContent().then(function(){ - $scope.policyNavigator.refresh(); - $scope.modal('switchVersion', true); - }); + $scope.refresh = function() { + $scope.policyNavigator.refresh(); }; - $scope.copy = function(item) { - var samePath = item.tempModel.path.join() === item.model.path.join(); - if (samePath && $scope.policyNavigator.fileNameExists(item.tempModel.name)) { - item.error = 'Invalid filename or already exists, specify another name'; - return false; - } - item.copy().then(function() { - $scope.policyNavigator.refresh(); - $scope.modal('copy', true); - }); - }; + $scope.switchVersion = function(item) { + if ($scope.policyNavigator.fileNameExists(item.tempModel.content.activeVersion)) { + item.error = 'Invalid filename or already exists, specify another name'; + return false; + } + item.getSwitchVersionContent().then(function(){ + $scope.policyNavigator.refresh(); + $scope.modal('switchVersion', true); + }); + }; - $scope.remove = function(item) { - item.remove().then(function() { - $scope.policyNavigator.refresh(); - $scope.modal('delete', true); - }); - }; + $scope.copy = function(item) { + var samePath = item.tempModel.path.join() === item.model.path.join(); + if (samePath && $scope.policyNavigator.fileNameExists(item.tempModel.name)) { + item.error = 'Invalid filename or already exists, specify another name'; + return false; + } + item.copy().then(function() { + $scope.policyNavigator.refresh(); + $scope.modal('copy', true); + }); + }; - $scope.removePolicy = function(item) { - item.removePolicy().then(function() { - $scope.policyNavigator.refresh(); - $scope.modal('deletePolicy', true); - }); - }; + $scope.remove = function(item) { + item.remove().then(function() { + $scope.policyNavigator.refresh(); + $scope.modal('delete', true); + }); + }; - $scope.rename = function(item) { - var samePath = item.tempModel.path.join() === item.model.path.join(); - if (samePath && $scope.policyNavigator.fileNameExists(item.tempModel.name)) { - item.error = 'Invalid filename or already exists, specify another name'; - return false; - } - item.rename().then(function() { - $scope.policyNavigator.refresh(); - $scope.modal('rename', true); - }); - }; + $scope.removePolicy = function(item) { + item.removePolicy().then(function() { + $scope.policyNavigator.refresh(); + $scope.modal('deletePolicy', true); + }); + }; - $scope.move = function(item) { - var samePath = item.tempModel.path.join() === item.model.path.join(); - if (samePath && $scope.policyNavigator.fileNameExists(item.tempModel.name)) { - item.error = 'Invalid filename or already exists, specify another name'; - return false; - } - item.move().then(function() { - $scope.policyNavigator.refresh(); - $scope.modal('move', true); - }); - }; + $scope.rename = function(item) { + var samePath = item.tempModel.path.join() === item.model.path.join(); + if (samePath && $scope.policyNavigator.fileNameExists(item.tempModel.name)) { + item.error = 'Invalid filename or already exists, specify another name'; + return false; + } + item.rename().then(function() { + $scope.policyNavigator.refresh(); + $scope.modal('rename', true); + }); + }; - $scope.createFolder = function(item) { - var name = item.tempModel.name && item.tempModel.name.trim(); - item.tempModel.type = 'dir'; - item.tempModel.path = $scope.policyNavigator.currentPath; - if (name && !$scope.policyNavigator.fileNameExists(name)) { - item.createFolder().then(function() { - $scope.policyNavigator.refresh(); - $scope.modal('newfolder', true); - }); - } else { - item.error = 'Invalid filename or already exists, specify another name'; - return false; - } - }; + $scope.move = function(item) { + var samePath = item.tempModel.path.join() === item.model.path.join(); + if (samePath && $scope.policyNavigator.fileNameExists(item.tempModel.name)) { + item.error = 'Invalid filename or already exists, specify another name'; + return false; + } + item.move().then(function() { + $scope.policyNavigator.refresh(); + $scope.modal('move', true); + }); + }; - $scope.subScopeFolder = function(item) { - var name = item.tempModel.name +"\\" + item.tempModel.subScopename && item.tempModel.name.trim() + "\\"+item.tempModel.subScopename.trim() ; - item.tempModel.type = 'dir'; - item.tempModel.path = $scope.policyNavigator.currentPath; - if (name && !$scope.policyNavigator.fileNameExists(name)) { - item.getScopeContent().then(function() { - $scope.policyNavigator.refresh(); - $scope.modal('addSubScope', true); - }); - } else { - item.error = 'Invalid filename or already exists, specify another name'; - return false; - } - }; + $scope.createFolder = function(item) { + var name = item.tempModel.name && item.tempModel.name.trim(); + item.tempModel.type = 'dir'; + item.tempModel.path = $scope.policyNavigator.currentPath; + if (name && !$scope.policyNavigator.fileNameExists(name)) { + item.createFolder().then(function() { + $scope.policyNavigator.refresh(); + $scope.modal('newfolder', true); + }); + } else { + item.error = 'Invalid filename or already exists, specify another name'; + return false; + } + }; - $scope.closefunction = function(fianlPath) { - $scope.policyNavigator.policyrefresh(fianlPath); - }; + $scope.subScopeFolder = function(item) { + var name = item.tempModel.name +"\\" + item.tempModel.subScopename && item.tempModel.name.trim() + "\\"+item.tempModel.subScopename.trim() ; + item.tempModel.type = 'dir'; + item.tempModel.path = $scope.policyNavigator.currentPath; + if (name && !$scope.policyNavigator.fileNameExists(name)) { + item.getScopeContent().then(function() { + $scope.policyNavigator.refresh(); + $scope.modal('addSubScope', true); + }); + } else { + item.error = 'Invalid filename or already exists, specify another name'; + return false; + } + }; - $scope.uploadFiles = function() { - $scope.policyUploader.upload($scope.uploadFileList, $scope.policyNavigator.currentPath).then(function() { - $scope.policyNavigator.refresh(); - $scope.modal('uploadfile', true); - }, function(data) { - var errorMsg = data.result && data.result.error || 'Error Occured while Uploading....'; - $scope.temp.error = errorMsg; - }); - }; + $scope.closefunction = function(fianlPath) { + $scope.policyNavigator.policyrefresh(fianlPath); + }; - $scope.getQueryParam = function(param) { - var found; - window.location.search.substr(1).split('&').forEach(function(item) { - if (param === item.split('=')[0]) { - found = item.split('=')[1]; - return false; - } - }); - return found; - }; + $scope.uploadFiles = function() { + $scope.policyUploader.upload($scope.uploadFileList, $scope.policyNavigator.currentPath).then(function() { + $scope.policyNavigator.refresh(); + Notification.success('Policy Import Complete'); + $scope.modal('uploadfile', true); + }, function(data) { + var errorMsg = data.result && data.result.error || 'Error Occured while Uploading....'; + $scope.temp.error = errorMsg; + }); + }; - $scope.isWindows = $scope.getQueryParam('server') === 'Windows'; - $scope.policyNavigator.refresh(); - }]); + $scope.getQueryParam = function(param) { + var found; + window.location.search.substr(1).split('&').forEach(function(item) { + if (param === item.split('=')[0]) { + found = item.split('=')[1]; + return false; + } + }); + return found; + }; + + $scope.isWindows = $scope.getQueryParam('server') === 'Windows'; + $scope.policyNavigator.refresh(); + }]); diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/controllers/policySearchManager.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/controllers/policySearchManager.js index 42e6796cd..edca7e47c 100644 --- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/controllers/policySearchManager.js +++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/controllers/policySearchManager.js @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * 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. @@ -18,194 +18,176 @@ * ============LICENSE_END========================================================= */ app.controller('PolicySearchController', [ - '$scope', '$q', '$window', '$cookies', 'policyManagerConfig', 'item', 'policyNavigator', 'policyUploader', 'Notification','PolicyAppService', - function($scope, $q, $Window, $cookies, policyManagerConfig, Item, PolicyNavigator, PolicyUploader, Notification, PolicyAppService ) { - - $scope.isDisabled = true; - $scope.superAdminId = false; - $scope.exportPolicyId = false; - $scope.importPolicyId = false; - $scope.createScopeId = false; - $scope.deleteScopeId = false; - $scope.renameId = false; - $scope.createPolicyId = false; - $scope.cloneId = false; - $scope.editPolicyId = false; - $scope.switchVersionId = false; - $scope.describePolicyId = false; - $scope.viewPolicyId = false; - $scope.deletePolicyId = false; - PolicyAppService.getData('get_LockDownData').then(function(data){ - var j = data; - $scope.data = JSON.parse(j.data); - $scope.lockdowndata = JSON.parse($scope.data.lockdowndata); - if($scope.lockdowndata[0].lockdown == true){ - $scope.isDisabled = true; - }else{ - $scope.isDisabled = false; - } - console.log($scope.data); - },function(error){ - console.log("failed"); - }); + '$scope', '$q', '$window', '$cookies', 'policyManagerConfig', 'item', 'policyNavigator', 'policyUploader', 'Notification','PolicyAppService', + function($scope, $q, $Window, $cookies, policyManagerConfig, Item, PolicyNavigator, PolicyUploader, Notification, PolicyAppService ) { - PolicyAppService.getData('getDictionary/get_DescriptiveScopeByName').then(function(data){ - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.descriptiveScopeDictionaryDatas = JSON.parse($scope.data.descriptiveScopeDictionaryDatas); - }, function (error) { - console.log("failed"); - }); + $scope.isDisabled = true; + $scope.superAdminId = false; + $scope.exportPolicyId = false; + $scope.importPolicyId = false; + $scope.createScopeId = false; + $scope.deleteScopeId = false; + $scope.renameId = false; + $scope.createPolicyId = false; + $scope.cloneId = false; + $scope.editPolicyId = false; + $scope.switchVersionId = false; + $scope.describePolicyId = false; + $scope.viewPolicyId = false; + $scope.deletePolicyId = false; + PolicyAppService.getData('get_LockDownData').then(function(data){ + var j = data; + $scope.data = JSON.parse(j.data); + $scope.lockdowndata = JSON.parse($scope.data.lockdowndata); + if($scope.lockdowndata[0].lockdown == true){ + $scope.isDisabled = true; + }else{ + $scope.isDisabled = false; + } + },function(error){ + }); + + PolicyAppService.getData('getDictionary/get_DescriptiveScopeByName').then(function(data){ + var j = data; + $scope.data = JSON.parse(j.data); + $scope.descriptiveScopeDictionaryDatas = JSON.parse($scope.data.descriptiveScopeDictionaryDatas); + }); - 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); - }, function (error) { - console.log("failed"); - }); + PolicyAppService.getData('getDictionary/get_OnapNameDataByName').then(function(data){ + var j = data; + $scope.data = JSON.parse(j.data); + $scope.onapNameDictionaryDatas = JSON.parse($scope.data.onapNameDictionaryDatas); + }); - PolicyAppService.getData('getDictionary/get_VSCLActionDataByName').then(function(data){ - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.vsclActionDictionaryDatas = JSON.parse($scope.data.vsclActionDictionaryDatas); - }, function (error) { - console.log("failed"); - }); + PolicyAppService.getData('getDictionary/get_VSCLActionDataByName').then(function(data){ + var j = data; + $scope.data = JSON.parse(j.data); + $scope.vsclActionDictionaryDatas = JSON.parse($scope.data.vsclActionDictionaryDatas); + }); - PolicyAppService.getData('getDictionary/get_VNFTypeDataByName').then(function(data){ - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.vnfTypeDictionaryDatas = JSON.parse($scope.data.vnfTypeDictionaryDatas); - }, function (error) { - console.log("failed"); - }); + PolicyAppService.getData('getDictionary/get_VNFTypeDataByName').then(function(data){ + var j = data; + $scope.data = JSON.parse(j.data); + $scope.vnfTypeDictionaryDatas = JSON.parse($scope.data.vnfTypeDictionaryDatas); + }); - - PolicyAppService.getData('get_UserRolesData').then(function (data) { - var j = data; - $scope.data = JSON.parse(j.data); - console.log($scope.data); - $scope.userRolesDatas = JSON.parse($scope.data.userRolesDatas); - console.log($scope.userRolesDatas); - if($scope.userRolesDatas[0] == 'super-admin'){ - $scope.superAdminId = true; - $scope.createPolicyId = true; - $scope.editPolicyId = true; - $scope.describePolicyId = true; - $scope.viewPolicyId = true; - }else if($scope.userRolesDatas[0] == 'super-editor' || $scope.userRolesDatas[0] == 'editor' || $scope.userRolesDatas[0] == 'admin'){ - $scope.editPolicyId = true; - $scope.createPolicyId = true; - $scope.describePolicyId = true; - $scope.viewPolicyId = true; - }else if($scope.userRolesDatas[0] == 'super-guest' || $scope.userRolesDatas[0] == 'guest'){ - $scope.describePolicyId = true; - $scope.viewPolicyId = true; - } - }, function (error) { - console.log("failed"); - }); - - $scope.config = policyManagerConfig; - $scope.reverse = false; - $scope.predicate = ['model.type', 'model.name']; - $scope.order = function(predicate) { - $scope.reverse = ($scope.predicate[1] === predicate) ? !$scope.reverse : false; - $scope.predicate[1] = predicate; - }; + + PolicyAppService.getData('get_UserRolesData').then(function (data) { + var j = data; + $scope.data = JSON.parse(j.data); + $scope.userRolesDatas = JSON.parse($scope.data.userRolesDatas); + if($scope.userRolesDatas[0] == 'super-admin'){ + $scope.superAdminId = true; + $scope.createPolicyId = true; + $scope.editPolicyId = true; + $scope.describePolicyId = true; + $scope.viewPolicyId = true; + }else if($scope.userRolesDatas[0] == 'super-editor' || $scope.userRolesDatas[0] == 'editor' || $scope.userRolesDatas[0] == 'admin'){ + $scope.editPolicyId = true; + $scope.createPolicyId = true; + $scope.describePolicyId = true; + $scope.viewPolicyId = true; + }else if($scope.userRolesDatas[0] == 'super-guest' || $scope.userRolesDatas[0] == 'guest'){ + $scope.describePolicyId = true; + $scope.viewPolicyId = true; + } + }); + + $scope.config = policyManagerConfig; + $scope.reverse = false; + $scope.predicate = ['model.type', 'model.name']; + $scope.order = function(predicate) { + $scope.reverse = ($scope.predicate[1] === predicate) ? !$scope.reverse : false; + $scope.predicate[1] = predicate; + }; - $scope.query = ''; - $scope.temp = new Item(); - $scope.policyNavigator = new PolicyNavigator(); + $scope.query = ''; + $scope.temp = new Item(); + $scope.policyNavigator = new PolicyNavigator(); - $scope.setTemplate = function(name) { - $scope.viewTemplate = $cookies.viewTemplate = name; - }; + $scope.setTemplate = function(name) { + $scope.viewTemplate = $cookies.viewTemplate = name; + }; - $scope.touch = function(item) { - item = item instanceof Item ? item : new Item(); - item.revert(); - $scope.temp = item; - }; + $scope.touch = function(item) { + item = item instanceof Item ? item : new Item(); + item.revert(); + $scope.temp = item; + }; - $scope.smartClick = function(item) { - if (item.isFolder()) { - return $scope.policyNavigator.folderClick(item); - } - if (item.isEditable()) { - return $scope.openEditItem(item); - } - }; + $scope.smartClick = function(item) { + if (item.isFolder()) { + return $scope.policyNavigator.folderClick(item); + } + if (item.isEditable()) { + return $scope.openEditItem(item); + } + }; - $scope.openEditItem = function(item) { - item.getContent(); - $scope.modal('createNewPolicy'); - return $scope.touch(item); - }; + $scope.openEditItem = function(item) { + item.getContent(); + $scope.modal('createNewPolicy'); + return $scope.touch(item); + }; - $scope.modal = function(id, hide) { - return $('#' + id).modal(hide ? 'hide' : 'show'); - }; + $scope.modal = function(id, hide) { + return $('#' + id).modal(hide ? 'hide' : 'show'); + }; - $scope.isInThisPath = function(path) { - var currentPath = $scope.policyNavigator.currentPath.join('/'); - return currentPath.indexOf(path) !== -1; - }; + $scope.isInThisPath = function(path) { + var currentPath = $scope.policyNavigator.currentPath.join('/'); + return currentPath.indexOf(path) !== -1; + }; - $scope.searchPolicy = function(searchContent){ - if(searchContent != undefined){ - var uuu = "searchPolicy"; - var postData = {searchdata : searchContent}; - $.ajax({ - type : 'POST', - url : uuu, - dataType: 'json', - contentType: 'application/json', - data: JSON.stringify(postData), - success : function(data){ - $scope.$apply(function(){ - var searchdata = data.result; - if(searchdata.length > 0){ - if(searchdata[0] == "Exception"){ - Notification.error(searchdata[1]); - }else{ - $scope.policyNavigator.searchrefresh(searchdata); - } - }else{ - Notification.info("No Matches Found with your Search"); - } - }); - }, - error : function(data){ - Notification.error("Error while Searching."); - } - }); - }else{ - Notification.error("No data has been entered or selected to search"); - } - }; + $scope.searchPolicy = function(searchContent){ + if(searchContent != undefined){ + var uuu = "searchPolicy"; + var postData = {searchdata : searchContent}; + $.ajax({ + type : 'POST', + url : uuu, + dataType: 'json', + contentType: 'application/json', + data: JSON.stringify(postData), + success : function(data){ + $scope.$apply(function(){ + var searchdata = data.result; + if(searchdata.length > 0){ + if(searchdata[0] == "Exception"){ + Notification.error(searchdata[1]); + }else{ + $scope.policyNavigator.searchrefresh(searchdata); + } + }else{ + Notification.info("No Matches Found with your Search"); + } + }); + }, + error : function(data){ + Notification.error("Error while Searching."); + } + }); + }else{ + Notification.error("No data has been entered or selected to search"); + } + }; $scope.refresh = function(searchData){ - $scope.policyNavigator.searchrefresh(null); + $scope.policyNavigator.searchrefresh(null); }; - - $scope.getQueryParam = function(param) { - var found; - window.location.search.substr(1).split('&').forEach(function(item) { - if (param === item.split('=')[0]) { - found = item.split('=')[1]; - return false; - } - }); - return found; - }; + + $scope.getQueryParam = function(param) { + var found; + window.location.search.substr(1).split('&').forEach(function(item) { + if (param === item.split('=')[0]) { + found = item.split('=')[1]; + return false; + } + }); + return found; + }; - $scope.isWindows = $scope.getQueryParam('server') === 'Windows'; - $scope.policyNavigator.searchrefresh(null); - $scope.policyNavigator.setSearchModalActiveStatus(); + $scope.isWindows = $scope.getQueryParam('server') === 'Windows'; + $scope.policyNavigator.searchrefresh(null); + $scope.policyNavigator.setSearchModalActiveStatus(); }]); diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/entities/item.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/entities/item.js index 26cdf67c3..017f49ddc 100644 --- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/entities/item.js +++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/entities/item.js @@ -51,10 +51,6 @@ angular.module('abs').factory('item', ['$http', '$q', 'policyManagerConfig', fun this.model = angular.copy(rawModel); this.tempModel = angular.copy(rawModel); - function parseMySQLDate(mysqlDate) { - var d = (mysqlDate || '').toString().split(/[- :]/); - return new Date(d[0], d[1] - 1, d[2], d[3], d[4], d[5]); - } }; Item.prototype.update = function() { @@ -263,7 +259,6 @@ angular.module('abs').factory('item', ['$http', '$q', 'policyManagerConfig', fun self.error = ''; $http.post(policyManagerConfig.describePolicyUrl, data).success(function(data) { self.tempModel.content = self.model.content = data.html; - var describeTemplate = self.tempModel.content; self.deferredHandler(data, deferred); }).error(function(data) { |