summaryrefslogtreecommitdiffstats
path: root/catalog-ui/src/app/directives/property-types/type-list/type-list-directive.ts
diff options
context:
space:
mode:
authorandre.schmid <andre.schmid@est.tech>2022-05-12 17:37:43 +0100
committerMichael Morris <michael.morris@est.tech>2022-05-17 08:23:38 +0000
commit61e8668899051e1df738093d1700564fbc22a428 (patch)
tree0076471bed9a3fee8e5a565ed63c6027a5c76b30 /catalog-ui/src/app/directives/property-types/type-list/type-list-directive.ts
parent69bc5bdb7d464fa38705191f1495fb09474277a8 (diff)
Support list of map properties in composition
Supports editing list<map<string, string> properties in the edit properties dialog in the composition screen. Fixes entry schema of type map not being shown. Change-Id: Iea1732f51148ae88dedd2242b3b19d19c4548eb4 Issue-ID: SDC-4001 Signed-off-by: andre.schmid <andre.schmid@est.tech>
Diffstat (limited to 'catalog-ui/src/app/directives/property-types/type-list/type-list-directive.ts')
-rw-r--r--catalog-ui/src/app/directives/property-types/type-list/type-list-directive.ts32
1 files changed, 23 insertions, 9 deletions
diff --git a/catalog-ui/src/app/directives/property-types/type-list/type-list-directive.ts b/catalog-ui/src/app/directives/property-types/type-list/type-list-directive.ts
index 997e28dabc..76810040e6 100644
--- a/catalog-ui/src/app/directives/property-types/type-list/type-list-directive.ts
+++ b/catalog-ui/src/app/directives/property-types/type-list/type-list-directive.ts
@@ -37,21 +37,29 @@ export interface ITypeListScope extends ng.IScope {
listDefaultValue:any;
listNewItem:any;
maxLength:number;
-
+ stringSchema: SchemaProperty;
+
constraints:string[];
getValidationPattern(type:string):RegExp;
validateIntRange(value:string):boolean;
addListItem():void;
- deleteListItem(listItemIndex:number):void
+ deleteListItem(listItemIndex:number):void;
+ getStringSchemaProperty():SchemaProperty;
}
export class TypeListDirective implements ng.IDirective {
+ private readonly stringSchema: SchemaProperty;
+
constructor(private DataTypesService:DataTypesService,
private PropertyNameValidationPattern:RegExp,
- private ValidationUtils:ValidationUtils) {
+ private ValidationUtils:ValidationUtils) {
+ this.stringSchema = new SchemaProperty();
+ this.stringSchema.type = PROPERTY_TYPES.STRING;
+ this.stringSchema.isSimpleType = true;
+ this.stringSchema.isDataType = false;
}
scope = {
@@ -73,6 +81,7 @@ export class TypeListDirective implements ng.IDirective {
link = (scope:ITypeListScope, element:any, $attr:any) => {
scope.propertyNameValidationPattern = this.PropertyNameValidationPattern;
+ scope.stringSchema = this.stringSchema;
//reset valueObjRef when schema type is changed
scope.$watchCollection('schemaProperty.type', (newData:any):void => {
@@ -103,17 +112,22 @@ export class TypeListDirective implements ng.IDirective {
scope.addListItem = ():void => {
scope.valueObjRef = scope.valueObjRef || [];
- let newVal = ((scope.schemaProperty.simpleType || scope.schemaProperty.type) == PROPERTY_TYPES.STRING ? scope.listNewItem.value : JSON.parse(scope.listNewItem.value));
+ let newVal;
+ if (scope.schemaProperty.type === PROPERTY_TYPES.MAP) {
+ newVal = {"": ""};
+ } else if ((scope.schemaProperty.simpleType || scope.schemaProperty.type) == PROPERTY_TYPES.STRING) {
+ newVal = scope.listNewItem.value;
+ } else {
+ newVal = JSON.parse(scope.listNewItem.value);
+ }
scope.valueObjRef.push(newVal);
scope.listNewItem.value = "";
};
- scope.deleteListItem = (listItemIndex:number):void => {
+ scope.deleteListItem = (listItemIndex: number): void => {
scope.valueObjRef.splice(listItemIndex, 1);
- if (!scope.valueObjRef.length) {
- if (scope.listDefaultValue) {
- angular.copy(scope.listDefaultValue, scope.valueObjRef);
- }
+ if (!scope.valueObjRef.length && scope.listDefaultValue) {
+ angular.copy(scope.listDefaultValue, scope.valueObjRef);
}
};
};