import { OrderBuilder } from 'services/api/order-builder';
import { Breadcrumb } from 'components/breadcrumbs/breadcrumbs';
import { ContainerRequestResource, containerRequestFieldsNoMounts } from 'models/container-request';
-import { AdminMenuIcon, CollectionIcon, IconType, ProcessIcon, ProjectIcon, ResourceIcon, WorkflowIcon } from 'components/icon/icon';
+import { AdminMenuIcon, CollectionIcon, IconType, ProcessIcon, ProjectIcon, ResourceIcon, TerminalIcon, WorkflowIcon } from 'components/icon/icon';
import { CollectionResource } from 'models/collection';
import { getSidePanelIcon } from 'views-components/side-panel-tree/side-panel-tree';
import { WorkflowResource } from 'models/workflow';
export const setBreadcrumbs = (breadcrumbs: any, currentItem?: CollectionResource | ContainerRequestResource | GroupResource | WorkflowResource) => {
if (currentItem) {
- breadcrumbs.push(resourceToBreadcrumb(currentItem));
+ const currentCrumb = resourceToBreadcrumb(currentItem)
+ if (currentCrumb.label.length) breadcrumbs.push(currentCrumb);
}
return propertiesActions.SET_PROPERTY({ key: BREADCRUMBS, value: breadcrumbs });
};
}
}
-const resourceToBreadcrumb = (resource: CollectionResource | ContainerRequestResource | GroupResource | WorkflowResource): Breadcrumb => ({
- label: resource.name,
+const resourceToBreadcrumb = (resource: (CollectionResource | ContainerRequestResource | GroupResource | WorkflowResource) & {fullName?: string} ): Breadcrumb => ({
+ label: resource.name || resource.fullName || '',
uuid: resource.uuid,
icon: resourceToBreadcrumbIcon(resource),
})
uuid: SidePanelTreeCategory.PROJECTS,
icon: getSidePanelIcon(SidePanelTreeCategory.PROJECTS)
});
+ } else if (uuidKind === ResourceKind.USER) {
+ // Handle another user root project
+ const user = getResource<UserResource>(uuid)(getState().resources);
+ breadcrumbs.push({
+ label: (user as any)?.fullName || user?.username || uuid,
+ uuid: user?.uuid || uuid,
+ icon: getSidePanelIcon(SidePanelTreeCategory.PROJECTS)
+ });
} else if (Object.values(SidePanelTreeCategory).includes(uuid as SidePanelTreeCategory)) {
// Handle SidePanelTreeCategory root
breadcrumbs.push({
try {
const user = getResource<UserResource>(userUuid)(getState().resources)
|| await services.userService.get(userUuid, false);
- const breadcrumbs: Breadcrumb[] = [
+ const userProfileBreadcrumbs: Breadcrumb[] = [
{ label: USERS_PANEL_LABEL, uuid: USERS_PANEL_LABEL },
- { label: user ? user.username : userUuid, uuid: userUuid },
- ];
- dispatch(setBreadcrumbs(breadcrumbs));
+ { label: user ? `${user.firstName} ${user.lastName}` : userUuid, uuid: userUuid },
+ ];
+ dispatch(setBreadcrumbs(userProfileBreadcrumbs));
} catch (e) {
const breadcrumbs: Breadcrumb[] = [
{ label: USERS_PANEL_LABEL, uuid: USERS_PANEL_LABEL },
]));
};
-export const VIRTUAL_MACHINES_USER_PANEL_LABEL = 'Virtual Machines';
-
export const setVirtualMachinesBreadcrumbs = () =>
async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
dispatch(setBreadcrumbs([
- { label: VIRTUAL_MACHINES_USER_PANEL_LABEL, uuid: VIRTUAL_MACHINES_USER_PANEL_LABEL },
+ { label: SidePanelTreeCategory.SHELL_ACCESS, uuid: SidePanelTreeCategory.SHELL_ACCESS, icon: TerminalIcon },
]));
};
-export const VIRTUAL_MACHINES_ADMIN_PANEL_LABEL = 'Virtual Machines Admin';
+export const VIRTUAL_MACHINES_ADMIN_PANEL_LABEL = 'Shell Access Admin';
export const setVirtualMachinesAdminBreadcrumbs = () =>
async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {