service role metadata cleared after service creation 06/136306/3
authorfranciscovila <javier.paradela.vila@est.tech>
Mon, 23 Oct 2023 12:26:50 +0000 (13:26 +0100)
committerMichael Morris <michael.morris@est.tech>
Tue, 24 Oct 2023 17:45:22 +0000 (17:45 +0000)
Issue-ID: SDC-4665
Signed-off-by: franciscovila <javier.paradela.vila@est.tech>
Change-Id: I4e2fc183e28827aa967bb9c62f2701bfe5ab6e36

catalog-ui/src/app/view-models/workspace/tabs/general/general-view-model.ts
catalog-ui/src/app/view-models/workspace/tabs/general/general-view.html

index a0e8ca9..96ce7d5 100644 (file)
@@ -802,6 +802,13 @@ export class GeneralViewModel {
             }
             this.$scope.component.selectedCategory = this.$scope.componentCategories.selectedCategory;
             if (this.$scope.component.selectedCategory) {
+                this.$scope.roleOption = null;
+                (<Service>this.$scope.component).serviceRole = null;
+                this.$scope.othersFlag = false;
+                this.$scope.functionOption = null;
+                (<Service>this.$scope.component).serviceFunction = null;
+                this.$scope.othersRoleFlag = false;
+
                 this.$scope.component.categories = this.convertCategoryStringToOneArray();
                 this.$scope.component.icon = DEFAULT_ICON;
                 if (this.$scope.component.categories[0].metadataKeys) {
@@ -811,6 +818,7 @@ export class GeneralViewModel {
                         }
                         if (metadataKey.name === 'Service Role') {
                             this.$scope.roleOption = this.$scope.component.categorySpecificMetadata[metadataKey.name];
+                            (<Service>this.$scope.component).serviceRole = this.$scope.roleOption;
                         }
                         if (metadataKey.name === 'Service Function') {
                             this.$scope.functionOption = this.$scope.component.categorySpecificMetadata[metadataKey.name];
@@ -951,8 +959,10 @@ export class GeneralViewModel {
 
         this.$scope.isMetadataKeyForComponentCategoryService = (key: string, attribute: string): boolean => {
             let metadatakey = this.getMetadataKey(key);
-            if (metadatakey && (!this.$scope.component[attribute] || !metadatakey.validValues.find(v => v === this.$scope.component[attribute]))) {
-                this.$scope.component[attribute] = metadatakey.defaultValue;
+            if (attribute != 'serviceFunction' && attribute != 'serviceRole') {
+                if (metadatakey && (!this.$scope.component[attribute] || !metadatakey.validValues.find(v => v === this.$scope.component[attribute]))) {
+                    this.$scope.component[attribute] = metadatakey.defaultValue;
+                }
             }
             return metadatakey != null;
         }
index 1432729..1a7c493 100644 (file)
           <div ng-if="component.isService() && !isNotApplicableMetadataKeys('Service Role')"
                class="i-sdc-form-item"
                data-ng-class="{'error': validateField(editForm.serviceRole)}">
-            <div ng-if="component.selectedCategory">
+            <div ng-if="component.selectedCategory && isMetadataKeyForComponentCategoryService('Service Role', 'serviceRole')">
               <div ng-if="isMetadataKeyMandatory('Service Role')">
                 <label class="i-sdc-form-label required" translate="GENERAL_TAB_LABEL_SERVICE_ROLE"></label>
               </div>
           <div ng-if="component.isService() && !isNotApplicableMetadataKeys('Service Function')"
                class="i-sdc-form-item"
                data-ng-class="{'error': validateField(editForm.serviceFunction)}">
-            <div ng-if="component.selectedCategory">
+            <div ng-if="component.selectedCategory && isMetadataKeyForComponentCategoryService('Service Function', 'serviceFunction')">
               <div ng-if="isMetadataKeyMandatory('Service Function')">
                 <label class="i-sdc-form-label required" translate="GENERAL_TAB_LABEL_SERVICE_FUNCTION"></label>
               </div>