X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/12a7331edc4ca08c12f0d525df1a979d10cd1168..732294bc8aeafde5e85a4437cbd36b0d2648b04e:/src/views/workbench/workbench.tsx diff --git a/src/views/workbench/workbench.tsx b/src/views/workbench/workbench.tsx index a8552eef82..ce8e24625a 100644 --- a/src/views/workbench/workbench.tsx +++ b/src/views/workbench/workbench.tsx @@ -13,6 +13,7 @@ import { RootState } from "../../store/store"; import { MainAppBar, MainAppBarActionProps, MainAppBarMenuItem } from '../../views-components/main-app-bar/main-app-bar'; import { Breadcrumb } from '../../components/breadcrumbs/breadcrumbs'; import { push } from 'react-router-redux'; +import { reset } from 'redux-form'; import { ProjectTree } from '../../views-components/project-tree/project-tree'; import { TreeItem } from "../../components/tree/tree"; import { getTreePath } from '../../store/project/project-reducer'; @@ -46,6 +47,8 @@ import { RenameFileDialog } from '../../views-components/rename-file-dialog/rena import { FileRemoveDialog } from '../../views-components/file-remove-dialog/file-remove-dialog'; import { MultipleFilesRemoveDialog } from '../../views-components/file-remove-dialog/multiple-files-remove-dialog'; import { DialogCollectionCreateWithSelectedFile } from '../../views-components/create-collection-dialog-with-selected/create-collection-dialog-with-selected'; +import { COLLECTION_CREATE_DIALOG } from '../../views-components/dialog-create/dialog-collection-create'; +import { PROJECT_CREATE_DIALOG } from '../../views-components/dialog-create/dialog-project-create'; const DRAWER_WITDH = 240; const APP_BAR_HEIGHT = 100; @@ -83,7 +86,8 @@ const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ content: { padding: `${theme.spacing.unit}px ${theme.spacing.unit * 3}px`, overflowY: "auto", - flexGrow: 1 + flexGrow: 1, + position: 'relative' }, toolbar: theme.mixins.toolbar }); @@ -257,6 +261,7 @@ export const Workbench = withStyles(styles)( this.openContextMenu(event, { uuid: item.uuid, name: item.name, + description: item.description, kind: ContextMenuKind.COLLECTION }); }} @@ -265,11 +270,20 @@ export const Workbench = withStyles(styles)( renderProjectPanel = (props: RouteComponentProps<{ id: string }>) => this.props.dispatch(setProjectItem(itemId, ItemMode.ACTIVE))} onContextMenu={(event, item) => { + let kind: ContextMenuKind; - const kind = item.kind === ResourceKind.PROJECT ? ContextMenuKind.PROJECT : ContextMenuKind.RESOURCE; + if (item.kind === ResourceKind.PROJECT) { + kind = ContextMenuKind.PROJECT; + } else if (item.kind === ResourceKind.COLLECTION) { + kind = ContextMenuKind.COLLECTION_RESOURCE; + } else { + kind = ContextMenuKind.RESOURCE; + } + this.openContextMenu(event, { uuid: item.uuid, name: item.name, + description: item.description, kind }); }} @@ -355,14 +369,16 @@ export const Workbench = withStyles(styles)( } handleProjectCreationDialogOpen = (itemUuid: string) => { + this.props.dispatch(reset(PROJECT_CREATE_DIALOG)); this.props.dispatch(projectActions.OPEN_PROJECT_CREATOR({ ownerUuid: itemUuid })); } handleCollectionCreationDialogOpen = (itemUuid: string) => { + this.props.dispatch(reset(COLLECTION_CREATE_DIALOG)); this.props.dispatch(collectionCreateActions.OPEN_COLLECTION_CREATOR({ ownerUuid: itemUuid })); } - openContextMenu = (event: React.MouseEvent, resource: { name: string; uuid: string; kind: ContextMenuKind; }) => { + openContextMenu = (event: React.MouseEvent, resource: { name: string; uuid: string; description?: string; kind: ContextMenuKind; }) => { event.preventDefault(); this.props.dispatch( contextMenuActions.OPEN_CONTEXT_MENU({