diff options
author | MichaelMorris <michael.morris@est.tech> | 2023-01-25 16:29:38 +0000 |
---|---|---|
committer | Michael Morris <michael.morris@est.tech> | 2023-01-26 18:36:57 +0000 |
commit | 1bbecd7edbdd907a53812d303d378236d23d071e (patch) | |
tree | 2f8e6e9557ec8403c3b6900206b826d00d6e0895 /catalog-ui/src/app/directives/property-types/type-map | |
parent | dce3a3476f0d08dc9ffc1b012f11da6aa02a6858 (diff) |
Fix datatype in model not found
Signed-off-by: MichaelMorris <michael.morris@est.tech>
Issue-ID: SDC-4348
Change-Id: I648ffd91d719982e55d5ddc786a471f641ece088
Diffstat (limited to 'catalog-ui/src/app/directives/property-types/type-map')
-rw-r--r-- | catalog-ui/src/app/directives/property-types/type-map/type-map-directive.html | 1 | ||||
-rw-r--r-- | catalog-ui/src/app/directives/property-types/type-map/type-map-directive.ts | 36 |
2 files changed, 33 insertions, 4 deletions
diff --git a/catalog-ui/src/app/directives/property-types/type-map/type-map-directive.html b/catalog-ui/src/app/directives/property-types/type-map/type-map-directive.html index 5c895115e5..b4ac6aae1e 100644 --- a/catalog-ui/src/app/directives/property-types/type-map/type-map-directive.html +++ b/catalog-ui/src/app/directives/property-types/type-map/type-map-directive.html @@ -111,6 +111,7 @@ type-name="schemaProperty.type" parent-form-obj="parentFormObj" fields-prefix-name="'mapValue'+fieldsPrefixName+''+$index" + types="types" read-only="readOnly" ></fields-structure> </div> diff --git a/catalog-ui/src/app/directives/property-types/type-map/type-map-directive.ts b/catalog-ui/src/app/directives/property-types/type-map/type-map-directive.ts index ce8b997035..20470be126 100644 --- a/catalog-ui/src/app/directives/property-types/type-map/type-map-directive.ts +++ b/catalog-ui/src/app/directives/property-types/type-map/type-map-directive.ts @@ -22,9 +22,9 @@ * Created by rcohen on 9/15/2016. */ 'use strict'; -import {ValidationUtils, PROPERTY_TYPES} from "app/utils"; +import {ValidationUtils, PROPERTY_TYPES, PROPERTY_DATA} from "app/utils"; import {DataTypesService} from "app/services"; -import {SchemaProperty, PropertyModel} from "app/models"; +import {SchemaProperty, PropertyModel, DataTypesMap} from "app/models"; import {InstanceFeDetails} from "app/models/instance-fe-details"; import {ToscaGetFunction} from "app/models/tosca-get-function"; import {SubPropertyToscaFunction} from "app/models/sub-property-tosca-function"; @@ -47,6 +47,7 @@ export interface ITypeMapScope extends ng.IScope { constraints:string[]; showAddBtn: boolean; showToscaFunction: Array<boolean>; + types:DataTypesMap; getValidationPattern(type:string):RegExp; validateIntRange(value:string):boolean; @@ -80,7 +81,8 @@ export class TypeMapDirective implements ng.IDirective { maxLength: '=', constraints: '=', showAddBtn: '=?', - parentProperty: '=' + parentProperty: '=', + types: '=' }; restrict = 'E'; @@ -88,6 +90,32 @@ export class TypeMapDirective implements ng.IDirective { template = (): string => { return require('./type-map-directive.html'); }; + + private isDataTypeForSchemaType = (property:SchemaProperty, types:DataTypesMap):boolean=> { + property.simpleType = ""; + if (property.type && PROPERTY_DATA.TYPES.indexOf(property.type) > -1) { + return false; + } + let simpleType = this.getTypeForDataTypeDerivedFromSimple(property.type, types); + if (simpleType) { + property.simpleType = simpleType; + return false; + } + return true; + }; + + private getTypeForDataTypeDerivedFromSimple = (dataTypeName:string, types:DataTypesMap):string => { + if (!types[dataTypeName]) { + return 'string'; + } + if (types[dataTypeName].derivedFromName == "tosca.datatypes.Root" || types[dataTypeName].properties) { + return null; + } + if (PROPERTY_DATA.SIMPLE_TYPES.indexOf(types[dataTypeName].derivedFromName) > -1) { + return types[dataTypeName].derivedFromName + } + return this.getTypeForDataTypeDerivedFromSimple(types[dataTypeName].derivedFromName, types); + }; link = (scope:ITypeMapScope, element:any, $attr:any) => { scope.showAddBtn = angular.isDefined(scope.showAddBtn) ? scope.showAddBtn : true; @@ -110,7 +138,7 @@ export class TypeMapDirective implements ng.IDirective { //reset valueObjRef and mapKeys when schema type is changed scope.$watchCollection('schemaProperty.type', (newData:any):void => { - scope.isSchemaTypeDataType = this.DataTypesService.isDataTypeForSchemaType(scope.schemaProperty); + scope.isSchemaTypeDataType = this.isDataTypeForSchemaType(scope.schemaProperty, scope.types); if (scope.valueObjRef) { scope.mapKeys = Object.keys(scope.valueObjRef); //keeping another copy of the keys, as the mapKeys gets overridden sometimes |