aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-ui/src/app
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-ui/src/app')
-rw-r--r--catalog-ui/src/app/utils/menu-handler.ts4
-rw-r--r--catalog-ui/src/app/view-models/workspace/workspace-view-model.ts31
-rw-r--r--catalog-ui/src/app/view-models/workspace/workspace-view.html2
-rw-r--r--catalog-ui/src/app/view-models/workspace/workspace.less6
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 {