import { unionize, ofType, UnionOf, MatchCases } from '~/common/unionize';
import { loadRunProcessPanel } from '~/store/run-process-panel/run-process-panel-actions';
import { loadCollectionFiles } from '~/store/collection-panel/collection-panel-files/collection-panel-files-actions';
+import { SnackbarKind } from '~/store/snackbar/snackbar-actions';
export const WORKBENCH_LOADING_SCREEN = 'workbenchLoadingScreen';
const collection = await dispatch<any>(collectionMoveActions.moveCollection(data));
dispatch<any>(updateResources([collection]));
dispatch<any>(reloadProjectMatchingUuid([collection.ownerUuid]));
- dispatch(snackbarActions.OPEN_SNACKBAR({ message: 'Collection has been moved.', hideDuration: 2000 }));
+ dispatch(snackbarActions.OPEN_SNACKBAR({ message: 'Collection has been moved.', hideDuration: 2000, kind: SnackbarKind.SUCCESS }));
} catch (e) {
dispatch(snackbarActions.OPEN_SNACKBAR({ message: e.message, hideDuration: 2000 }));
}
export const loadRunProcess = handleFirstTimeLoad(
async (dispatch: Dispatch) => {
- dispatch<any>(loadRunProcessPanel());
+ await dispatch<any>(loadRunProcessPanel());
}
);
--- /dev/null
-type RunProcessSecondStepProps = RunProcessSecondStepDataProps
- & RunProcessSecondStepActionProps
- & WithStyles<CssRules>
+ // Copyright (C) The Arvados Authors. All rights reserved.
+ //
+ // SPDX-License-Identifier: AGPL-3.0
+
+ import * as React from 'react';
+ import { withStyles, WithStyles, StyleRulesCallback, Grid, Button } from '@material-ui/core';
+ import { ArvadosTheme } from '~/common/custom-theme';
+ import { Field, reduxForm, InjectedFormProps } from 'redux-form';
+ import { TextField } from '~/components/text-field/text-field';
+ import { RunProcessSecondStepDataFormProps, RUN_PROCESS_SECOND_STEP_FORM_NAME } from '~/store/run-process-panel/run-process-panel-actions';
+
+ type CssRules = 'root';
+
+ const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
+ root: {
+
+ }
+ });
+
+ export interface RunProcessSecondStepDataProps {
+
+ }
+
+ export interface RunProcessSecondStepActionProps {
+ onSetStep: (step: number) => void;
+ onRunProcess: (data: RunProcessSecondStepDataFormProps) => void;
+ }
+
++type RunProcessSecondStepProps = RunProcessSecondStepDataProps
++ & RunProcessSecondStepActionProps
++ & WithStyles<CssRules>
+ & InjectedFormProps<RunProcessSecondStepDataFormProps>;
+
+ const RunProcessSecondStep = withStyles(styles)(
+ ({ onSetStep, classes }: RunProcessSecondStepProps) =>
+ <Grid container spacing={16}>
+ <Grid item xs={12}>
+ <form>
+ <Field
+ name='name'
+ component={TextField}
+ label="Enter a new name for run process" />
+ <Field
+ name='description'
+ component={TextField}
+ label="Enter a description for run process" />
+ </form>
+ </Grid>
+ <Grid item xs={12}>
+ <Button color="primary" onClick={() => onSetStep(0)}>
+ Back
+ </Button>
+ <Button variant="contained" color="primary">
+ Run Process
+ </Button>
+ </Grid>
+ </Grid>
+ );
+
+ export const RunProcessSecondStepForm = reduxForm<RunProcessSecondStepDataFormProps>({
+ form: RUN_PROCESS_SECOND_STEP_FORM_NAME
+ })(RunProcessSecondStep);
import { RunProcessPanel } from '~/views/run-process-panel/run-process-panel';
import SplitterLayout from 'react-splitter-layout';
import { WorkflowPanel } from '~/views/workflow-panel/workflow-panel';
+import { FileSelectionDialog } from '~/views-components/dialog-forms/file-selection-dialog';
type CssRules = 'root' | 'container' | 'splitter' | 'asidePanel' | 'contentWrapper' | 'content';
<Grid container item xs className={classes.root}>
<Grid container item xs className={classes.container}>
<SplitterLayout customClassName={classes.splitter} percentage={true}
- primaryIndex={0} primaryMinSize={20} secondaryInitialSize={80} secondaryMinSize={40}>
+ primaryIndex={0} primaryMinSize={15} secondaryInitialSize={85} secondaryMinSize={40}>
<Grid container item xs component='aside' direction='column' className={classes.asidePanel}>
<SidePanel />
</Grid>
<CurrentTokenDialog />
<FileRemoveDialog />
<FileRemoveDialog />
+ <FileSelectionDialog />
<FilesUploadCollectionDialog />
<MoveCollectionDialog />
<MoveProcessDialog />
import { SortDirection } from '~/components/data-table/data-column';
import { DataColumns } from '~/components/data-table/data-table';
import { DataTableFilterItem } from '~/components/data-table-filters/data-table-filters';
- import { Grid } from '@material-ui/core';
+ import { Grid, Paper } from '@material-ui/core';
import { WorkflowDetailsCard } from './workflow-description-card';
export enum WorkflowPanelColumnNames {
onRowClick={props.handleRowClick}
onRowDoubleClick={props.handleRowDoubleClick}
contextMenuColumn={false}
+ onContextMenu={e=>e}
dataTableDefaultView={<DataTableDefaultView icon={WorkflowIcon} />} />
</Grid>
<Grid item xs={6}>
- <WorkflowDetailsCard />
+ <Paper>
+ <WorkflowDetailsCard />
+ </Paper>
</Grid>
</Grid>;
};