Disabled manual service creation for Partner 58/99458/7
authorNilay Ranjan <nilay.ranjan@team.telstra.com>
Mon, 9 Dec 2019 17:28:39 +0000 (22:58 +0530)
committerOfir Sonsino <ofir.sonsino@intl.att.com>
Fri, 20 Dec 2019 07:18:39 +0000 (07:18 +0000)
Changes to disable/hide Partner Domain Service
category to disable manual creation of such services

Issue-ID: SDC-2382
Change-Id: Ie15732360d78542f41101e315fa4aa803531b5f2
Signed-off-by: Atif Husain <atif.husain@team.telstra.com>
catalog-ui/configurations/menu.js
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 c1c6d10..4f85d0f 100644 (file)
@@ -498,7 +498,7 @@ const SDC_MENU_CONFIG = {
             {"text": "Properties Assignment", "action": "onMenuItemPressed", "state": "workspace.properties_assignment"}
         ],
         "SERVICE": [
-            {"text": "General", "action": "onMenuItemPressed", "state": "workspace.general"},
+            {"text": "General", "action": "onMenuItemPressed", "state": "workspace.general", "hiddenCategories":["Partner Domain Service"]},
             {"text": "TOSCA Artifacts", "action": "onMenuItemPressed", "state": "workspace.tosca_artifacts"},
             {"text": "Composition", "action": "onMenuItemPressed", "state": "workspace.composition.details", "disabledCategories":["Partner Domain Service"]},
             {"text": "Operation", "action":"onMenuItemPressed", "state": "workspace.interface_operation"},
index 635fc54..b452970 100644 (file)
@@ -65,6 +65,7 @@ export interface IGeneralScope extends IWorkspaceViewModelScope {
     browseFileLabel:string;
     componentCategories:componentCategories;
     instantiationTypes:Array<instantiationType>;
+    isHiddenCategorySelected: boolean;
 
     save():Promise<any>;
     revert():void;
@@ -344,6 +345,39 @@ export class GeneralViewModel {
         this.$scope.updateMenuComponentName(this.$scope.component.name);
     };
 
+    //Find if a category is applicable for External API or not
+    private isHiddenCategory = (category: string) => {
+        let items: Array<any> = new Array<any>();
+        items = this.$scope.sdcMenu.component_workspace_menu_option[this.$scope.component.getComponentSubType()];
+        for(let index = 0; index < items.length; ++index) {
+            if ((items[index].hiddenCategories && items[index].hiddenCategories.indexOf(category) > -1)) {
+                return true;
+            }
+        }
+        return false;
+    };
+
+    private filteredCategories = () => {
+        let tempCategories: Array<IMainCategory> = new Array<IMainCategory>();
+        this.$scope.categories.forEach((category) => {
+            if (!this.isHiddenCategory(category.name)
+                && this.$scope.isCreateMode()
+            ) {
+                tempCategories.push(category);
+            } else if ((ComponentState.NOT_CERTIFIED_CHECKOUT === this.$scope.component.lifecycleState)
+                && !this.isHiddenCategory(this.$scope.component.selectedCategory)
+                && !this.isHiddenCategory(category.name)
+            ) {
+                tempCategories.push(category);
+            } else if ((ComponentState.NOT_CERTIFIED_CHECKOUT === this.$scope.component.lifecycleState)
+                && this.isHiddenCategory(this.$scope.component.selectedCategory)) {
+                tempCategories.push(category);
+            }
+        });
+
+        return tempCategories;
+    };    
+   
     private initScopeMethods = ():void => {
 
         this.$scope.initCategoreis = ():void => {
@@ -353,6 +387,14 @@ export class GeneralViewModel {
             }
             if (this.$scope.componentType === ComponentType.SERVICE) {
                 this.$scope.categories = this.cacheService.get('serviceCategories');
+
+                //Remove categories from dropdown applicable for External API
+                if (this.$scope.isCreateMode() || (ComponentState.NOT_CERTIFIED_CHECKOUT === this.$scope.component.lifecycleState)) {
+                    this.$scope.categories = this.filteredCategories();
+                    //Flag to disbale category if service is created through External API
+                    this.$scope.isHiddenCategorySelected = this.isHiddenCategory(this.$scope.component.selectedCategory);
+                }
+                
             }
         };
 
@@ -582,3 +624,4 @@ export class GeneralViewModel {
     };
 
 }
+
index ee9b58d..07f1e4d 100644 (file)
@@ -89,7 +89,7 @@
                                         name="category"
                                         data-ng-class="{'view-mode': isViewMode()}"
                                         data-ng-change="onCategoryChange()"
-                                        data-ng-disabled="component.isAlreadyCertified() || (component.isCsarComponent() && component.selectedCategory && component.selectedCategory!=='')"
+                                        data-ng-disabled="component.isAlreadyCertified() || (component.isCsarComponent() && component.selectedCategory && component.selectedCategory!=='') || isHiddenCategorySelected"
                                         data-ng-model="componentCategories.selectedCategory"
                                         data-tests-id="selectGeneralCategory"
                                 >