aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorimamSidero <imam.hussain@est.tech>2023-09-26 10:21:23 +0100
committerMichael Morris <michael.morris@est.tech>2023-10-09 07:52:27 +0000
commit8bb8f3a4a1862104efde7714f6b39402b15feecd (patch)
tree49b2e5f86965a13e3cdcafe3344eaa7c4b0831b4
parent4f058c098678ea01f8a01250dbf9bac4b77b6744 (diff)
Allow multiple entry for map/list when tosca function is selected
Provided the capability to add multi entry for map/list values in property assignment page Issue-ID: SDC-4635 Signed-off-by: Imam hussain <imam.hussain@est.tech> Change-Id: I14b55d4fbf806206561dda77c3ffe035f349a65e
-rw-r--r--catalog-ui/src/app/models/properties-inputs/derived-fe-property.ts5
-rw-r--r--catalog-ui/src/app/ng2/pages/properties-assignment/properties-assignment.page.component.ts52
2 files changed, 39 insertions, 18 deletions
diff --git a/catalog-ui/src/app/models/properties-inputs/derived-fe-property.ts b/catalog-ui/src/app/models/properties-inputs/derived-fe-property.ts
index c4ba64a8af..9df2b2b341 100644
--- a/catalog-ui/src/app/models/properties-inputs/derived-fe-property.ts
+++ b/catalog-ui/src/app/models/properties-inputs/derived-fe-property.ts
@@ -99,7 +99,7 @@ export class DerivedFEProperty extends PropertyBEModel {
this.toscaPath.push((Number(toscaIndex) + 1).toString());
}
} else {
- this.toscaPath.push("0");
+ this.toscaPath.push((property.valueObj.length).toString());
}
} else {
if (property instanceof PropertyFEModel && property.valueObj != '') {
@@ -111,6 +111,9 @@ export class DerivedFEProperty extends PropertyBEModel {
}
} else {
parentKey = "0";
+ if (property instanceof PropertyFEModel) {
+ parentKey = (property.flattenedChildren.length).toString();
+ }
}
this.toscaPath.push(parentKey);
}
diff --git a/catalog-ui/src/app/ng2/pages/properties-assignment/properties-assignment.page.component.ts b/catalog-ui/src/app/ng2/pages/properties-assignment/properties-assignment.page.component.ts
index b6abb78788..c828fab36c 100644
--- a/catalog-ui/src/app/ng2/pages/properties-assignment/properties-assignment.page.component.ts
+++ b/catalog-ui/src/app/ng2/pages/properties-assignment/properties-assignment.page.component.ts
@@ -629,18 +629,6 @@ export class PropertiesAssignmentComponent {
modal.instance.open();
}
- private deleteToscaValue(valueJson : any, currentKey: string[]) {
- if(currentKey.length == 1) {
- if (Array.isArray(valueJson) && !isNaN(Number(currentKey[0]))) {
- valueJson.splice(Number(currentKey[0]),1);
- } else {
- delete valueJson[currentKey[0]];
- }
- } else {
- this.deleteToscaValue(valueJson[currentKey[0]],currentKey.splice(1,currentKey.length -1));
- }
- }
-
private clearCheckedInstancePropertyValue() {
const checkedInstanceProperty: PropertyBEModel = this.buildCheckedInstanceProperty();
const currentValue : any = checkedInstanceProperty.value;
@@ -655,10 +643,9 @@ export class PropertiesAssignmentComponent {
const index = checkedInstanceProperty.subPropertyToscaFunctions.findIndex(existingSubPropertyToscaFunction => this.areEqual(existingSubPropertyToscaFunction.subPropertyPath, currentKey.length > 0 ? currentKey : parts.slice(1)));
checkedInstanceProperty.subPropertyToscaFunctions.splice(index, 1);
}
- if(currentValue !== null && currentKey.length > 0){
- let valueJson = JSON.parse(currentValue);
- this.deleteToscaValue(valueJson, currentKey);
- checkedInstanceProperty.value = JSON.stringify(valueJson);
+ if (this.enableToscaFunction) {
+ this.processSubtoscaFunction(checkedInstanceProperty,null);
+ return;
}
}
if (this.selectedInstanceData instanceof ComponentInstance) {
@@ -677,6 +664,34 @@ export class PropertiesAssignmentComponent {
}
}
+ private processSubtoscaFunction(checkedProperty : PropertyDeclareAPIModel, toscaFunction: ToscaFunction) {
+ const instancesIds = this.keysPipe.transform(this.instanceFePropertiesMap, []);
+ const instanceId: string = instancesIds[0];
+ this.instanceFePropertiesMap[instanceId].forEach(prop => {
+ if (prop.flattenedChildren) {
+ prop.flattenedChildren.forEach((child) => {
+ if (child.isSelected && !child.isDeclared && !child.isDisabled) {
+ prop.subPropertyToscaFunctions = checkedProperty.subPropertyToscaFunctions;
+ if (toscaFunction) {
+ child.value = toscaFunction.buildValueString();
+ child.valueObj = toscaFunction.buildValueObject();
+ child.toscaFunction = toscaFunction;
+ this.hasChangedData = true;
+ if (this.changedData.length == 0) {
+ this.changedData.push(prop);
+ }
+ } else {
+ child.valueObj = null;
+ child.toscaFunction = null;
+ }
+ child.isSelected = false;
+ this.togggleToscaBtn(false);
+ }
+ });
+ }
+ });
+ }
+
private updateCheckedInstancePropertyFunctionValue(toscaFunction: ToscaFunction) {
const checkedProperty: PropertyBEModel = this.buildCheckedInstanceProperty();
if (checkedProperty instanceof PropertyDeclareAPIModel && (<PropertyDeclareAPIModel>checkedProperty).propertiesName){
@@ -693,7 +708,10 @@ export class PropertiesAssignmentComponent {
}
subPropertyToscaFunction.toscaFunction = toscaFunction;
subPropertyToscaFunction.subPropertyPath = currentKey.length > 0 ? currentKey : parts.slice(1);
-
+ if (this.enableToscaFunction) {
+ this.processSubtoscaFunction(checkedProperty,toscaFunction);
+ return;
+ }
} else {
checkedProperty.subPropertyToscaFunctions = null;
checkedProperty.toscaFunction = toscaFunction;