X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/cc72c29b709759a4498ad232e3f0374e857c7a62..b321c4ab41ef13dfb43c7e64aee395c4db161872:/src/views/run-process-panel/inputs/directory-input.tsx diff --git a/src/views/run-process-panel/inputs/directory-input.tsx b/src/views/run-process-panel/inputs/directory-input.tsx index 29ccd6e0..1faf7381 100644 --- a/src/views/run-process-panel/inputs/directory-input.tsx +++ b/src/views/run-process-panel/inputs/directory-input.tsx @@ -2,36 +2,43 @@ // // SPDX-License-Identifier: AGPL-3.0 -import * as React from 'react'; +import React from 'react'; import { connect, DispatchProp } from 'react-redux'; import { memoize } from 'lodash/fp'; import { Field } from 'redux-form'; -import { Input, Dialog, DialogTitle, DialogContent, DialogActions, Button } from '@material-ui/core'; +import { Input, Dialog, DialogTitle, DialogContent, DialogActions, Button, StyleRulesCallback, withStyles, WithStyles } from '@material-ui/core'; import { isRequiredInput, DirectoryCommandInputParameter, CWLType, Directory -} from '~/models/workflow'; +} from 'models/workflow'; import { GenericInputProps, GenericInput } from './generic-input'; -import { ProjectsTreePicker } from '~/views-components/projects-tree-picker/projects-tree-picker'; -import { initProjectsTreePicker } from '~/store/tree-picker/tree-picker-actions'; -import { TreeItem } from '~/components/tree/tree'; -import { ProjectsTreePickerItem } from '~/views-components/projects-tree-picker/generic-projects-tree-picker'; -import { CollectionResource } from '~/models/collection'; -import { ResourceKind } from '~/models/resource'; -import { ERROR_MESSAGE } from '~/validators/require'; +import { ProjectsTreePicker } from 'views-components/projects-tree-picker/projects-tree-picker'; +import { initProjectsTreePicker } from 'store/tree-picker/tree-picker-actions'; +import { TreeItem } from 'components/tree/tree'; +import { ProjectsTreePickerItem } from 'store/tree-picker/tree-picker-middleware'; +import { CollectionResource } from 'models/collection'; +import { ResourceKind } from 'models/resource'; +import { ERROR_MESSAGE } from 'validators/require'; export interface DirectoryInputProps { input: DirectoryCommandInputParameter; + options?: { showOnlyOwned: boolean, showOnlyWritable: boolean }; } -export const DirectoryInput = ({ input }: DirectoryInputProps) => + +type DialogContentCssRules = 'root'; + +export const DirectoryInput = ({ input, options }: DirectoryInputProps) => ; const format = (value?: Directory) => value ? value.basename : ''; @@ -56,7 +63,9 @@ interface DirectoryInputComponentState { } const DirectoryInputComponent = connect()( - class FileInputComponent extends React.Component { + class FileInputComponent extends React.Component { state: DirectoryInputComponentState = { open: false, }; @@ -108,18 +117,22 @@ const DirectoryInputComponent = connect()( {...this.props} />; } + dialogContentStyles: StyleRulesCallback = ({ spacing }) => ({ + root: { + height: `${spacing.unit * 8}vh`, + }, + }); + renderDialog() { return Choose a directory - + @@ -132,6 +145,15 @@ const DirectoryInputComponent = connect()( ; } - }); - + dialogContent = withStyles(this.dialogContentStyles)( + ({ classes }: WithStyles) => +
+ +
+ ); + });