summaryrefslogtreecommitdiffstats
path: root/POLICY-SDK-APP/src/main/webapp
diff options
context:
space:
mode:
authoruj426b <uj426b@att.com>2020-04-28 15:43:20 -0400
committeruj426b <uj426b@att.com>2020-04-29 15:25:52 -0400
commitcddeb280a0d2e897d5b373068023d23dd5ca084e (patch)
tree2dfca60c12124cf7795b8e09e9e8fd7bde17c7cc /POLICY-SDK-APP/src/main/webapp
parent663156eea876121cecc341e642100d11c1e20f9e (diff)
Fix for MS Policy Tosca Model and other items
Issue-ID: POLICY-2520 Change-Id: I35fac9e7d157aa4a137cd9dd5a30830eaf63f586 Signed-off-by: uj426b <uj426b@att.com>
Diffstat (limited to 'POLICY-SDK-APP/src/main/webapp')
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/DCAEMicroServicePolicyController.js182
1 files changed, 108 insertions, 74 deletions
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 873bdb104..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.
@@ -150,8 +150,10 @@ angular.module('abs').controller('dcaeMicroServiceController',
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.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;
@@ -160,14 +162,14 @@ angular.module('abs').controller('dcaeMicroServiceController',
return;
}
if(!clone.className.includes("child_single")){
- clone.className += ' child_single'; //here cloned is single element
+ clone.className += ' child_single'; // here cloned is single element
}
document.getElementById("div."+value).appendChild(clone);
plainAttributeKeys.push(''+value+'@'+addElement);
}
- }else{ //not view or edit
+ }else{ // not view or edit
if(!clone.className.includes("child_single")){
- clone.className += ' child_single'; //here cloned is single element
+ clone.className += ' child_single'; // here cloned is single element
}
document.getElementById("div."+value).appendChild(clone);
plainAttributeKeys.push(''+value+'@'+addElement);
@@ -185,7 +187,7 @@ angular.module('abs').controller('dcaeMicroServiceController',
if(layer > 4){
layer = 1
}
- div.className += ' children_group border' + layer; //here is div with a group of children.
+ div.className += ' children_group border' + layer; // here is div with a group of children.
}
}
var childElement = parentElement.firstElementChild;
@@ -211,18 +213,27 @@ angular.module('abs').controller('dcaeMicroServiceController',
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"){
- document.getElementById(inputs[i].id).value = checkValue;
- plainAttributeKeys.push(inputs[i].id);
- } else {
- plainAttributeKeys.push(inputs[i].id);
+ 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 {
- plainAttributeKeys.push(inputs[i].id);
}
+ }else {
+ document.getElementById(inputs[i].id).removeAttribute("checked");
}
+ }
for(var i=0; i<selects.length; i++){
if ($scope.temp.policy.ruleData!=undefined){
@@ -408,16 +419,24 @@ angular.module('abs').controller('dcaeMicroServiceController',
isInitViewEdit = true;
var checkData = [];
var data = [];
- // If ruleData contains extra elements created by clicked add button
+ // 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){
+ 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++){
@@ -425,17 +444,15 @@ angular.module('abs').controller('dcaeMicroServiceController',
extraElements.splice(a, 1);
}
}
- }
-
- //--- Populate these extra elements created by clicked add button
+ }
+ // --- 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
+ 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);
}
}
@@ -443,19 +460,17 @@ angular.module('abs').controller('dcaeMicroServiceController',
var unique = checkData.filter(onlyUnique);
var parentLevelElements = [];
if(unique){
- //--- get all root level exta elments first (only contains one "@")
+ // --- 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){
+ 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){
@@ -467,7 +482,7 @@ angular.module('abs').controller('dcaeMicroServiceController',
}
}
- //if no layout order info, keep the process as before
+ // if no layout order info, keep the process as before
if(!dataOrderInfo){
for(var i =0; i < unique.length; i++){
if(unique[i] != "*processed*"){
@@ -475,7 +490,7 @@ angular.module('abs').controller('dcaeMicroServiceController',
var newKey = unique[i].substring(0, index);
var newElement = document.getElementById("div."+unique[j]);
- //check weather it has been created already
+ // check weather it has been created already
if(newElement != null){
continue;
}else{
@@ -491,11 +506,11 @@ angular.module('abs').controller('dcaeMicroServiceController',
}
}
}else{
- //---reset to default
+ // ---reset to default
dataOrderInfo = [];
$scope.labelManyKeys = [];
- //---process none labels
+ // ---process none labels
for (var j = 0; j < unique.length; j++){
if(unique[j] != "*processed*"){
// if not created yet
@@ -505,7 +520,7 @@ angular.module('abs').controller('dcaeMicroServiceController',
var newElement = document.getElementById("div."+unique[j]);
- //check weather it has been created already
+ // check weather it has been created already
if(newElement != null){
continue;
}else{
@@ -514,7 +529,7 @@ angular.module('abs').controller('dcaeMicroServiceController',
continue;
}
}
- //if not created yet, then create it.
+ // if not created yet,then create it.
addNewChoice(newKey);
}
@@ -600,7 +615,7 @@ angular.module('abs').controller('dcaeMicroServiceController',
enumAttributes = enumAttributes.replace(/ /g, '');
var dropListAfterCommaSplit = enumAttributes.split(splitEqual);
listemunerateValues = dropListAfterCommaSplit[1].split(splitComma);
- //enumKeyList.push(attribute);
+ // enumKeyList.push(attribute);
return listemunerateValues;
}
@@ -652,11 +667,11 @@ angular.module('abs').controller('dcaeMicroServiceController',
if($scope.dataOrderInfo){
var labelObject = {"label" : key, "level" : label, "array" : array};
- //save it to the list
+ // save it to the list
$scope.layOutOnlyLableList.push(labelObject);
}else {
- //call label layout
+ // call label layout
$scope.labelLayout(label, key, array );
}
@@ -675,11 +690,11 @@ angular.module('abs').controller('dcaeMicroServiceController',
if($scope.dataOrderInfo){
var labelObject = {"label" : newKey, "level" : baseLevel, "array" : array};
- //save it to the list
+ // save it to the list
$scope.layOutOnlyLableList.push(labelObject);
}else {
- //call label layout
+ // call label layout
$scope.labelLayout(baseLevel, newKey, array );
}
@@ -716,7 +731,7 @@ angular.module('abs').controller('dcaeMicroServiceController',
isRequired = true;
}
- var subAttributes = $scope.dcaeModelData.sub_attributes;
+ var subAttributes = $scope.dcaeModelData.subAttributes;
if(subAttributes){
var jsonObject = JSON.parse(subAttributes);
@@ -806,10 +821,10 @@ angular.module('abs').controller('dcaeMicroServiceController',
if (layOutData[key].includes('dictionary-')){
var list = getDictionary(layOutData[key].split('dictionary-')[1]);
}else{
- //--- get dropdown values from enumValues
+ // --- get dropdown values from enumValues
var list = getList(layOutData[key]);
}
- if (list.length===0){ //not dropdown element
+ 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};
@@ -865,7 +880,7 @@ angular.module('abs').controller('dcaeMicroServiceController',
var layOutElementList = $scope.layOutElementList;
var labelList = $scope.layOutOnlyLableList;
- //reset to default
+ // reset to default
elementOrderNum = 0;
$scope.layOutElementList = [];
$scope.layOutOnlyLableList = [];
@@ -883,7 +898,7 @@ angular.module('abs').controller('dcaeMicroServiceController',
for (var i = 0; i < orderValue.length; i++) {
var key = orderValue[i].trim();
- //--- Create labels first {"label" : newKey, "level" : baseLevel, "array" : array};
+ // --- Create labels first {"label" : newKey, "level" : baseLevel, "array" : array};
if(labelList){
for (var k = 0; k < labelList.length; k++){
@@ -893,13 +908,13 @@ angular.module('abs').controller('dcaeMicroServiceController',
if(key == label){
$scope.labelLayout(level, label, array);
- //in case to have duplicate label names
+ // in case to have duplicate label names
labelList[k].label = "*processed*";
break;
}
}
}
- //--- then layout each element based on its order defined in YAML file
+ // --- 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();
@@ -919,7 +934,7 @@ angular.module('abs').controller('dcaeMicroServiceController',
}
- //in case to have duplicate attribute names
+ // in case to have duplicate attribute names
layOutElementList[j].attributekey = "*processed*";
break;
}
@@ -938,7 +953,7 @@ angular.module('abs').controller('dcaeMicroServiceController',
var requiredLabName = "";
if (matching.includes(attibuteKey)){
labeltext = document.createTextNode(attibuteKey + "*!");
- isRequired = true; //set required as true for matching element
+ isRequired = true; // set required as true for matching element
}else {
if(isRequired){
requiredLabName = attibuteKey + " * ";
@@ -967,12 +982,12 @@ angular.module('abs').controller('dcaeMicroServiceController',
textField.setAttribute("type" , "number");
textField.setAttribute("step" , "any");
- }else if(dataType == "boolean"){ //gw1218 testing boolean
+ }else if(dataType == "boolean"){ // gw1218 testing boolean
var booleanDiv = document.createElement("div");
booleanDiv.setAttribute("class" , "onoffswitch");
- //var checkField = document.createElement("INPUT");
+ // var checkField = document.createElement("INPUT");
textField.setAttribute("type" , "checkbox");
textField.setAttribute("name" , "onoffswitch");
textField.setAttribute("class" , "onoffswitch-checkbox");
@@ -982,7 +997,7 @@ angular.module('abs').controller('dcaeMicroServiceController',
}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+'');
@@ -1002,7 +1017,7 @@ angular.module('abs').controller('dcaeMicroServiceController',
document.getElementById(divID).appendChild(label);
document.getElementById(divID).appendChild(booleanDiv);
- //return;
+ // return;
} else{
textField.setAttribute("type" , dataType);
}
@@ -1043,7 +1058,7 @@ angular.module('abs').controller('dcaeMicroServiceController',
document.getElementById(divID).appendChild(removeButton);
document.getElementById(divID).appendChild(label);
id = "div."+labelValue+attibuteKey;
- //var divTag = document.createElement("div");
+ // var divTag = document.createElement("div");
divTag.setAttribute("id", id);
document.getElementById(divID).appendChild(divTag);
textField.className += ' first_child';
@@ -1094,7 +1109,7 @@ angular.module('abs').controller('dcaeMicroServiceController',
if(layer > 4){
layer = 1
}
- firstChild_element.className += ' children_group border' + layer; //here is div with a group of children.
+ firstChild_element.className += ' children_group border' + layer; // here is div with a group of children.
}
}
}
@@ -1112,7 +1127,8 @@ angular.module('abs').controller('dcaeMicroServiceController',
}
if($scope.temp.policy.ruleData != null){
- //document.getElementById(checkKey).value = $scope.temp.policy.ruleData[checkKey];
+ // 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"){
@@ -1131,19 +1147,32 @@ angular.module('abs').controller('dcaeMicroServiceController',
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 subAttributes = $scope.dcaeModelData.subAttributes;
var jsonObject = JSON.parse(subAttributes);
var lablInfo = findVal(jsonObject, lableName);
var star = "";
@@ -1193,7 +1222,7 @@ angular.module('abs').controller('dcaeMicroServiceController',
if(layer > 4){
layer = 1
}
- divTag.className += ' children_group border' + layer; //here is div with a group of children.
+ divTag.className += ' children_group border' + layer; // here is div with a group of children.
}
if(required){
divTag.setAttribute("required", required);
@@ -1214,7 +1243,7 @@ angular.module('abs').controller('dcaeMicroServiceController',
if(layer > 4){
layer = 1
}
- divTag.className += ' children_group border' + layer; //here is div with a group of children.
+ divTag.className += ' children_group border' + layer; // here is div with a group of children.
}
if(required){
divTag.setAttribute("required", required);
@@ -1238,8 +1267,8 @@ angular.module('abs').controller('dcaeMicroServiceController',
var label = document.createElement("Label")
- var refAttributes = $scope.dcaeModelData.ref_attributes;
- if(isRequired != true && refAttributes){ //check refAttributes also
+ 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);
@@ -1252,8 +1281,9 @@ angular.module('abs').controller('dcaeMicroServiceController',
if (matching.includes(attributeName)){
var labeltext = document.createTextNode(attributeName + "*!");
label.appendChild(labeltext);
- isRequired = true; //set required as true for matching element
+ isRequired = true; // set required as true for matching element
}else {
+ var labeltext = document.createTextNode(attributeName);
if(isRequired){
var requiredLabName = attributeName+ " * ";
labeltext = document.createTextNode(requiredLabName);
@@ -1452,7 +1482,7 @@ angular.module('abs').controller('dcaeMicroServiceController',
if (elumentLocation > 1){
enumKey = keySplit[keySplit.length - 1];
}
- //check it is undefined or not
+ // check it is undefined or not
if (enumKeyList != undefined && enumKeyList.indexOf(enumKey) != -1){
if (splitPlainAttributeKey[1]!= undefined && splitPlainAttributeKey[1].indexOf("true") !== -1){
var multiSlect = [];
@@ -1474,18 +1504,15 @@ angular.module('abs').controller('dcaeMicroServiceController',
}
}
} else {
- if(searchElement.value != null){
- jsonPolicy[key]= searchElement.value;
- if(splitPlainAttributeKey[1] == "boolean"){
- jsonPolicy[key]= false;
- for(var i=0; i<booleanTrueElements.length; i++){
- if(booleanTrueElements[i] == key){
- jsonPolicy[key]= true;
+ if(searchElement.value != null){
+ if(searchElement.parentElement.children[0].checked == true){
+ jsonPolicy[key]= searchElement.checked;
}
+ else{
+ jsonPolicy[key]= window.btoa(searchElement.value);
}
- }
}
- }
+ }
}
}
}
@@ -1510,6 +1537,8 @@ angular.module('abs').controller('dcaeMicroServiceController',
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;
@@ -1558,7 +1587,12 @@ angular.module('abs').controller('dcaeMicroServiceController',
}
} else {
if(searchElement.value != null){
- jsonPolicy[key]= searchElement.value;
+ if(searchElement.parentElement.children[0].checked == true){
+ jsonPolicy[key]= searchElement.checked;
+ }
+ else{
+ jsonPolicy[key]= searchElement.value;
+ }
if(searchElement.getAttribute("required")){
if(!searchElement.value){
return;