Fix get_input not working for complex properties 53/129653/1
authorandre.schmid <andre.schmid@est.tech>
Mon, 20 Jun 2022 17:23:58 +0000 (18:23 +0100)
committerAndré Schmid <andre.schmid@est.tech>
Mon, 20 Jun 2022 17:24:25 +0000 (17:24 +0000)
In the TOSCA function component, complex types inputs were not being
found for a selected complex type property.

Change-Id: I4c5c6876d8b64f6fdedf137e0523e4a105a5f921
Issue-ID: SDC-4057
Signed-off-by: andre.schmid <andre.schmid@est.tech>
catalog-ui/src/app/ng2/pages/properties-assignment/tosca-function/tosca-function.component.ts

index 8c983b6..4eefbcb 100644 (file)
@@ -22,7 +22,7 @@ import {ComponentMetadata, DataTypeModel, PropertyBEModel, PropertyModel} from '
 import {TopologyTemplateService} from "../../../services/component-services/topology-template.service";
 import {WorkspaceService} from "../../workspace/workspace.service";
 import {PropertiesService} from "../../../services/properties.service";
-import {PROPERTY_DATA} from "../../../../utils/constants";
+import {PROPERTY_DATA, PROPERTY_TYPES} from "../../../../utils/constants";
 import {DataTypeService} from "../../../services/data-type.service";
 import {ToscaGetFunctionType} from "../../../../models/tosca-get-function-type";
 import {TranslateService} from "../../../shared/translator/translate.service";
@@ -335,12 +335,13 @@ export class ToscaFunctionComponent implements OnInit {
     }
 
     private hasSameType(property: PropertyBEModel) {
-        if (this.property.schema && this.property.schema.property) {
+        if (this.typeHasSchema(this.property.type)) {
             if (!property.schema || !property.schema.property) {
                 return false;
             }
             return property.type === this.property.type && this.property.schema.property.type === property.schema.property.type;
         }
+
         return property.type === this.property.type;
     }
 
@@ -356,6 +357,10 @@ export class ToscaFunctionComponent implements OnInit {
         return PROPERTY_DATA.SIMPLE_TYPES.indexOf(propertyType) === -1;
     }
 
+    private typeHasSchema(propertyType: string): boolean {
+        return PROPERTY_TYPES.MAP === propertyType || PROPERTY_TYPES.LIST === propertyType;
+    }
+
     private stopLoading(): void {
         this.isLoading = false;
     }