From a820979640eb7fa4346e0340ce4dd4a5f9e5feeb Mon Sep 17 00:00:00 2001 From: davsad Date: Mon, 15 Mar 2021 08:37:18 +0000 Subject: [PATCH] Support default value for category specific metadata Issue-ID: SDC-3513 Signed-off-by: davsad Change-Id: I4697b66c6d59c1464cf81f9c68fe76b6ca24472c --- .../components/impl/CategoriesImportManager.java | 1 + catalog-ui/src/app/models/category.ts | 3 ++- .../workspace/tabs/general/general-view-model.ts | 14 ++++++++++--- .../workspace/tabs/general/general-view.html | 24 ++++++++++++++-------- .../category/MetadataKeyDataDefinition.java | 2 ++ .../sdc/be/datatypes/enums/MetadataKeyEnum.java | 3 ++- 6 files changed, 33 insertions(+), 14 deletions(-) diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/CategoriesImportManager.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/CategoriesImportManager.java index 84b23fe3c7..754420dd47 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/CategoriesImportManager.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/CategoriesImportManager.java @@ -255,6 +255,7 @@ public class CategoriesImportManager { metadataKeyDef.setMandatory(mandatory); List validValues = (List) metadataKeyInfo.get(MetadataKeyEnum.VALID_VALUES.getName()); metadataKeyDef.setValidValues(validValues); + metadataKeyDef.setDefaultValue((String) metadataKeyInfo.get(MetadataKeyEnum.DEFAULT.getName())); metadataKeyDefs.add(metadataKeyDef); } return metadataKeyDefs; diff --git a/catalog-ui/src/app/models/category.ts b/catalog-ui/src/app/models/category.ts index 64588d0c44..2c1bc217e5 100644 --- a/catalog-ui/src/app/models/category.ts +++ b/catalog-ui/src/app/models/category.ts @@ -50,6 +50,7 @@ export interface IGroup extends ICategoryBase { export interface IMetadataKey { name:string; - mandatory:boolean + mandatory:boolean; validValues: string[]; + defaultValue: string; } diff --git a/catalog-ui/src/app/view-models/workspace/tabs/general/general-view-model.ts b/catalog-ui/src/app/view-models/workspace/tabs/general/general-view-model.ts index 54caa42317..1065404eef 100644 --- a/catalog-ui/src/app/view-models/workspace/tabs/general/general-view-model.ts +++ b/catalog-ui/src/app/view-models/workspace/tabs/general/general-view-model.ts @@ -634,14 +634,14 @@ export class GeneralViewModel { if (this.$scope.component.categories[0].metadataKeys) { for (let metadataKey of this.$scope.component.categories[0].metadataKeys) { if (!this.$scope.component.categorySpecificMetadata[metadataKey.name]) { - this.$scope.component.categorySpecificMetadata[metadataKey.name] = ""; + this.$scope.component.categorySpecificMetadata[metadataKey.name] = metadataKey.defaultValue ? metadataKey.defaultValue : ""; } } } if (this.$scope.component.categories[0].subcategories && this.$scope.component.categories[0].subcategories[0].metadataKeys) { for (let metadataKey of this.$scope.component.categories[0].subcategories[0].metadataKeys) { if (!this.$scope.component.categorySpecificMetadata[metadataKey.name]) { - this.$scope.component.categorySpecificMetadata[metadataKey.name] = ""; + this.$scope.component.categorySpecificMetadata[metadataKey.name] = metadataKey.defaultValue ? metadataKey.defaultValue : ""; } } } @@ -678,9 +678,17 @@ export class GeneralViewModel { return this.getMetadataKey(this.$scope.component.categories, key) != null; } - this.$scope.isCategoryServiceMetadataKey = (key: string): boolean => { + this.$scope.isCategoryServiceMetadataKey = (key: string): boolean => { return this.isServiceMetadataKey(key); } + + this.$scope.isMetadataKeyForComponentCategoryService = (key: string, attribute: string): boolean => { + let metadatakey = this.getMetadataKey(this.$scope.component.categories, key); + if (metadatakey && (!this.$scope.component[attribute] || !metadatakey.validValues.find(v => v === this.$scope.component[attribute]))) { + this.$scope.component[attribute] = metadatakey.defaultValue; + } + return metadatakey != null; + } } private setUnsavedChanges = (hasChanges: boolean): void => { diff --git a/catalog-ui/src/app/view-models/workspace/tabs/general/general-view.html b/catalog-ui/src/app/view-models/workspace/tabs/general/general-view.html index cb661f73fc..40300c8021 100644 --- a/catalog-ui/src/app/view-models/workspace/tabs/general/general-view.html +++ b/catalog-ui/src/app/view-models/workspace/tabs/general/general-view.html @@ -375,12 +375,12 @@
-
+
- +
+
diff --git a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/category/MetadataKeyDataDefinition.java b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/category/MetadataKeyDataDefinition.java index 4d8a197473..3278ec65ea 100644 --- a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/category/MetadataKeyDataDefinition.java +++ b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/category/MetadataKeyDataDefinition.java @@ -35,10 +35,12 @@ public class MetadataKeyDataDefinition extends ToscaDataDefinition { private String name; private List validValues; private boolean mandatory; + private String defaultValue; public MetadataKeyDataDefinition(MetadataKeyDataDefinition metadataKeyDataDefinition) { this.name = metadataKeyDataDefinition.name; this.validValues = metadataKeyDataDefinition.validValues; this.mandatory = metadataKeyDataDefinition.mandatory; + this.defaultValue = metadataKeyDataDefinition.defaultValue; } } diff --git a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/MetadataKeyEnum.java b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/MetadataKeyEnum.java index 138c60b4e0..aab37d1ff0 100644 --- a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/MetadataKeyEnum.java +++ b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/MetadataKeyEnum.java @@ -27,7 +27,8 @@ public enum MetadataKeyEnum { METADATA_KEYS("metadataKeys"), NAME("name"), MANDATORY("mandatory"), - VALID_VALUES("validValues"); + VALID_VALUES("validValues"), + DEFAULT("default"); private final String name; -- 2.16.6