diff options
Diffstat (limited to 'catalog-ui/src/app/ng2/pages/properties-assignment/properties-assignment.page.component.ts')
-rw-r--r-- | catalog-ui/src/app/ng2/pages/properties-assignment/properties-assignment.page.component.ts | 19 |
1 files changed, 15 insertions, 4 deletions
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 767acb41a7..2bf1b1076b 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 @@ -580,22 +580,33 @@ export class PropertiesAssignmentComponent { private clearCheckedInstancePropertyValue() { const checkedInstanceProperty: PropertyBEModel = this.buildCheckedInstanceProperty(); - let currentValue = checkedInstanceProperty.value; + const currentValue : any = checkedInstanceProperty.value; checkedInstanceProperty.getInputValues = null; checkedInstanceProperty.value = null; checkedInstanceProperty.toscaFunction = null; if (checkedInstanceProperty instanceof PropertyDeclareAPIModel && (<PropertyDeclareAPIModel>checkedInstanceProperty).propertiesName){ const propertiesNameArray = (<PropertyDeclareAPIModel>checkedInstanceProperty).propertiesName; const parts = propertiesNameArray.split("#"); - const currentKey = checkedInstanceProperty.type === PROPERTY_TYPES.MAP ? (<DerivedFEProperty>checkedInstanceProperty.input).mapKey : null; + const currentKey = (checkedInstanceProperty.type == PROPERTY_TYPES.MAP || checkedInstanceProperty.type == PROPERTY_TYPES.LIST) ? (<DerivedFEProperty>checkedInstanceProperty.input).mapKey : null; if (propertiesNameArray.length > 1){ const index = checkedInstanceProperty.subPropertyToscaFunctions.findIndex(existingSubPropertyToscaFunction => this.areEqual(existingSubPropertyToscaFunction.subPropertyPath, currentKey != null ? [currentKey] : parts.slice(1))); checkedInstanceProperty.subPropertyToscaFunctions.splice(index, 1); } if(currentValue !== null && currentKey !== null){ let valueJson = JSON.parse(currentValue); + let tempValue = valueJson[currentKey]; delete valueJson[currentKey]; - checkedInstanceProperty.value = JSON.stringify(valueJson); + if (checkedInstanceProperty.type == PROPERTY_TYPES.LIST) { + let listValue = []; + valueJson.forEach(item => { + if (item != null && item != '' && item != tempValue) { + listValue.push(item); + } + }); + checkedInstanceProperty.value = JSON.stringify(listValue); + } else { + checkedInstanceProperty.value = JSON.stringify(valueJson); + } } } if (this.selectedInstanceData instanceof ComponentInstance) { @@ -612,7 +623,7 @@ export class PropertiesAssignmentComponent { if (checkedProperty instanceof PropertyDeclareAPIModel && (<PropertyDeclareAPIModel>checkedProperty).propertiesName){ const propertiesName = (<PropertyDeclareAPIModel>checkedProperty).propertiesName; const parts = propertiesName.split("#"); - const currentKey = checkedProperty.type === PROPERTY_TYPES.MAP ? (<DerivedFEProperty>checkedProperty.input).mapKey : null; + const currentKey = (checkedProperty.type == PROPERTY_TYPES.MAP || checkedProperty.type == PROPERTY_TYPES.LIST) ? (<DerivedFEProperty>checkedProperty.input).mapKey : null; if (checkedProperty.subPropertyToscaFunctions == null){ checkedProperty.subPropertyToscaFunctions = []; } |