diff options
author | atif husain <atif.husain@team.telstra.com> | 2019-10-02 18:03:57 +1000 |
---|---|---|
committer | Ofir Sonsino <ofir.sonsino@intl.att.com> | 2019-10-16 10:46:17 +0000 |
commit | d289108897f3baf5bc51092c4f55309bdd90f8d9 (patch) | |
tree | 95bd25ec828807e5e4b8f75c8f8ee1d614d1913c /catalog-ui/src/app | |
parent | ce2eae1de729f7c66f753857643a6464fbb4013e (diff) |
Changes for new service category
Introduced new service category, Partner Domain Service
Added logic to disable composition for Partner Domain Service category
Issue-ID: SDC-2382
Change-Id: I6ed135733c6f05914e102c037ebe9057ad731e75
Signed-off-by: Atif Husain <atif.husain@team.telstra.com>
Diffstat (limited to 'catalog-ui/src/app')
4 files changed, 38 insertions, 5 deletions
diff --git a/catalog-ui/src/app/utils/menu-handler.ts b/catalog-ui/src/app/utils/menu-handler.ts index 4c25a025da..eaef63fcc7 100644 --- a/catalog-ui/src/app/utils/menu-handler.ts +++ b/catalog-ui/src/app/utils/menu-handler.ts @@ -32,6 +32,7 @@ export class MenuItem { action:string; params:any; isDisabled:boolean; + disabledCategory:boolean; disabledRoles:Array<string>; blockedForTypes:Array<string>; // This item will not be shown for specific components types. @@ -43,13 +44,14 @@ export class MenuItem { url:string; // Data added to menu item, in case the function need to use it, example: for function "changeLifecycleState", I need to pass also the state "CHECKOUT" that I want the state to change to. - constructor(text:string, callback:(...args:Array<any>) => ng.IPromise<boolean>, state:string, action:string, params?:any, blockedForTypes?:Array<string>) { + constructor(text:string, callback:(...args:Array<any>) => ng.IPromise<boolean>, state:string, action:string, params?:any, blockedForTypes?:Array<string>, disabledCategory?:boolean) { this.text = text; this.callback = callback; this.state = state; this.action = action; this.params = params; this.blockedForTypes = blockedForTypes; + this.disabledCategory = disabledCategory; } } diff --git a/catalog-ui/src/app/view-models/workspace/workspace-view-model.ts b/catalog-ui/src/app/view-models/workspace/workspace-view-model.ts index 9429022b48..f4bbed2c96 100644 --- a/catalog-ui/src/app/view-models/workspace/workspace-view-model.ts +++ b/catalog-ui/src/app/view-models/workspace/workspace-view-model.ts @@ -177,6 +177,7 @@ export class WorkspaceViewModel { } private role:string; + private category:string; private components:Array<Component>; private initViewMode = ():WorkspaceMode => { @@ -216,6 +217,7 @@ export class WorkspaceViewModel { this.$scope.version = this.cacheService.get('version'); this.$scope.user = this.cacheService.get("user"); this.role = this.$scope.user.role; + this.category = this.$scope.component.selectedCategory; this.$scope.mode = this.initViewMode(); this.$scope.isValidForm = true; this.initChangeLifecycleStateButtons(); @@ -870,6 +872,21 @@ export class WorkspaceViewModel { return tempMenuItems; }; + private updateMenuItemByCategory = (menuItems:Array<any>, category:string) => { + let tempMenuItems:Array<any> = new Array<any>(); + menuItems.forEach((item:any) => { + //update flag disabledCategory to true if category is disabled + item.disabledCategory = false; + if ((item.disabledCategories && item.disabledCategories.indexOf(category) > -1)) + { + item.disabledCategory = true; + } + tempMenuItems.push(item); + }); + return tempMenuItems; + }; + + private deleteArchiveCache = () => { this.cacheService.remove("archiveComponents"); //delete the cache to ensure the archive is reloaded from server }; @@ -894,7 +911,13 @@ export class WorkspaceViewModel { let inCreateMode = this.$scope.isCreateMode(); this.$scope.leftBarTabs = new MenuItemGroup(); - const menuItemsObjects:Array<any> = this.updateMenuItemByRole(this.sdcMenu.component_workspace_menu_option[this.$scope.component.getComponentSubType()], this.role); + //const menuItemsObjects:Array<any> = this.updateMenuItemByRole(this.sdcMenu.component_workspace_menu_option[this.$scope.component.getComponentSubType()], this.role); + let menuItemsObjects:Array<any> = this.updateMenuItemByRole(this.sdcMenu.component_workspace_menu_option[this.$scope.component.getComponentSubType()], this.role); + if(this.$scope.component.getComponentSubType()==="SERVICE") + { + let menuItemsObjectsCategory:Array<any> = this.updateMenuItemByCategory(menuItemsObjects, this.category); + menuItemsObjects = menuItemsObjectsCategory; + } // Only adding plugins to the workspace if they can be displayed for the current user role _.each(PluginsConfiguration.plugins, (plugin: Plugin) => { @@ -909,7 +932,7 @@ export class WorkspaceViewModel { }); this.$scope.leftBarTabs.menuItems = menuItemsObjects.map((item:MenuItem) => { - const menuItem = new MenuItem(item.text, item.callback, item.state, item.action, item.params, item.blockedForTypes); + const menuItem = new MenuItem(item.text, item.callback, item.state, item.action, item.params, item.blockedForTypes, item.disabledCategory); if (menuItem.params) { menuItem.params.state = menuItem.state; } @@ -918,7 +941,9 @@ export class WorkspaceViewModel { } menuItem.callback = () => this.$scope[menuItem.action](menuItem.state, menuItem.params); menuItem.isDisabled = (inCreateMode && States.WORKSPACE_GENERAL != menuItem.state) || - (States.WORKSPACE_DEPLOYMENT === menuItem.state && this.$scope.component.modules && this.$scope.component.modules.length === 0 && this.$scope.component.isResource()); + (States.WORKSPACE_DEPLOYMENT === menuItem.state && this.$scope.component.modules + && this.$scope.component.modules.length === 0 && this.$scope.component.isResource()) || + (menuItem.disabledCategory === true); return menuItem; }); diff --git a/catalog-ui/src/app/view-models/workspace/workspace-view.html b/catalog-ui/src/app/view-models/workspace/workspace-view.html index 5ae3e28f2a..d22262c94a 100644 --- a/catalog-ui/src/app/view-models/workspace/workspace-view.html +++ b/catalog-ui/src/app/view-models/workspace/workspace-view.html @@ -22,7 +22,7 @@ {{menuComponentTitle}} </div> <div class="i-sdc-designer-sidebar-section-content-item" ng-class="{'selected': isSelected(menuItem)}" ng-repeat="menuItem in leftBarTabs.menuItems track by $index"> - <div class="expand-collapse-menu-box-item-text" ng-click="menuItem.callback()" ng-class="{'disabled': menuItem.isDisabled }" data-tests-id="{{menuItem.text}}LeftSideMenu">{{menuItem.text}}</div> + <div class="expand-collapse-menu-box-item-text" ng-class="{'disabled': menuItem.isDisabled }" data-tests-id="{{menuItem.text}}LeftSideMenu" ><button type="button" class="i-sdc-designer-sidebar-section-content-item-service-cat" ng-click="menuItem.callback()" ng-disabled={{menuItem.disabledCategory}}>{{menuItem.text}}</button></div> </div> </div> diff --git a/catalog-ui/src/app/view-models/workspace/workspace.less b/catalog-ui/src/app/view-models/workspace/workspace.less index b9956c655b..11c0976c03 100644 --- a/catalog-ui/src/app/view-models/workspace/workspace.less +++ b/catalog-ui/src/app/view-models/workspace/workspace.less @@ -67,6 +67,12 @@ } } + .i-sdc-designer-sidebar-section-content-item-service-cat { + border: none; + background: transparent; + text-align: left; + padding: 0; + } } .sdc-asset-creation-info { |