aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-ui/src/app/directives/property-types/type-map/type-map-directive.ts
diff options
context:
space:
mode:
authorMichaelMorris <michael.morris@est.tech>2023-01-25 16:29:38 +0000
committerMichael Morris <michael.morris@est.tech>2023-01-26 18:36:57 +0000
commit1bbecd7edbdd907a53812d303d378236d23d071e (patch)
tree2f8e6e9557ec8403c3b6900206b826d00d6e0895 /catalog-ui/src/app/directives/property-types/type-map/type-map-directive.ts
parentdce3a3476f0d08dc9ffc1b012f11da6aa02a6858 (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/type-map-directive.ts')
-rw-r--r--catalog-ui/src/app/directives/property-types/type-map/type-map-directive.ts36
1 files changed, 32 insertions, 4 deletions
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