X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/69b8e9f8b19a151062a28e8eedbf7bf99322d93c..0c37a7e69b11fb23a4ffa2902a1343b3cd6769bc:/src/views/process-panel/process-details-card.tsx diff --git a/src/views/process-panel/process-details-card.tsx b/src/views/process-panel/process-details-card.tsx index da6438a1b8..2e5f40b580 100644 --- a/src/views/process-panel/process-details-card.tsx +++ b/src/views/process-panel/process-details-card.tsx @@ -13,16 +13,18 @@ import { CardContent, Tooltip, Typography, + Button, } from '@material-ui/core'; import { ArvadosTheme } from 'common/custom-theme'; -import { CloseIcon, MoreOptionsIcon, ProcessIcon } from 'components/icon/icon'; +import { CloseIcon, MoreOptionsIcon, ProcessIcon, StartIcon } from 'components/icon/icon'; import { Process } from 'store/processes/process'; import { MPVPanelProps } from 'components/multi-panel-view/multi-panel-view'; import { ProcessDetailsAttributes } from './process-details-attributes'; import { ProcessStatus } from 'views-components/data-explorer/renderers'; import { ContainerState } from 'models/container'; +import { ContainerRequestState } from 'models/container-request'; -type CssRules = 'card' | 'content' | 'title' | 'header' | 'cancelButton' | 'avatar' | 'iconHeader'; +type CssRules = 'card' | 'content' | 'title' | 'header' | 'cancelButton' | 'avatar' | 'iconHeader' | 'runButton'; const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ card: { @@ -34,7 +36,7 @@ const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ }, iconHeader: { fontSize: '1.875rem', - color: theme.customs.colors.green700, + color: theme.customs.colors.greyL, }, avatar: { alignSelf: 'flex-start', @@ -49,7 +51,8 @@ const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ }, title: { overflow: 'hidden', - paddingTop: theme.spacing.unit * 0.5 + paddingTop: theme.spacing.unit * 0.5, + color: theme.customs.colors.green700, }, cancelButton: { paddingRight: theme.spacing.unit * 2, @@ -59,18 +62,27 @@ const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ cursor: 'pointer' } }, + runButton: { + backgroundColor: theme.customs.colors.green700, + '&:hover': { + backgroundColor: theme.customs.colors.green800, + }, + padding: "0px 5px 0 0", + marginRight: "5px", + }, }); export interface ProcessDetailsCardDataProps { process: Process; cancelProcess: (uuid: string) => void; + startProcess: (uuid: string) => void; onContextMenu: (event: React.MouseEvent) => void; } type ProcessDetailsCardProps = ProcessDetailsCardDataProps & WithStyles & MPVPanelProps; export const ProcessDetailsCard = withStyles(styles)( - ({ cancelProcess, onContextMenu, classes, process, doHidePanel, panelName }: ProcessDetailsCardProps) => { + ({ cancelProcess, startProcess, onContextMenu, classes, process, doHidePanel, panelName }: ProcessDetailsCardProps) => { return } title={ - + {process.containerRequest.name} @@ -94,6 +106,16 @@ export const ProcessDetailsCard = withStyles(styles)( } action={
+ {process.containerRequest.state === ContainerRequestState.UNCOMMITTED && + } {process.container && process.container.state === ContainerState.RUNNING && cancelProcess(process.containerRequest.uuid)}>Cancel} @@ -104,10 +126,10 @@ export const ProcessDetailsCard = withStyles(styles)( - { doHidePanel && - - - } + {doHidePanel && + + + }
} />