return "";
};
-export const msToTime = (time: number) => {
+export const formatTime = (time: number) => {
const minutes = Math.floor(time / (1000 * 60) % 60).toFixed(0);
const hours = Math.floor(time / (1000 * 60 * 60)).toFixed(0);
return hours + "h " + minutes + "m";
};
-export const getDiffTime = (endTime: string, startTime: string) => {
+export const getTimeDiff = (endTime: string, startTime: string) => {
return new Date(endTime).getTime() - new Date(startTime).getTime();
};
import { ResourcesState, getResource } from '~/store/resources/resources';
import { filterResources } from '../resources/resources';
import { ResourceKind, Resource } from '~/models/resource';
-import { getDiffTime } from '~/common/formatters';
+import { getTimeDiff } from '~/common/formatters';
export interface Process {
containerRequest: ContainerRequestResource;
export const getProcessRuntime = (subprocess: Process) =>
subprocess.container
- ? getDiffTime(subprocess.container.finishedAt || '', subprocess.container.startedAt || '')
+ ? getTimeDiff(subprocess.container.finishedAt || '', subprocess.container.startedAt || '')
: 0;
export const getProcessStatus = (process: Process) =>
import { DetailsAttribute } from '~/components/details-attribute/details-attribute';
import { Process } from '~/store/processes/process';
import { getProcessStatus } from '~/store/processes/process';
-import { getBackgroundColorStatus } from '~/views/process-panel/process-panel-root';
+import { getStatusColor } from '~/views/process-panel/process-panel-root';
type CssRules = 'card' | 'iconHeader' | 'label' | 'value' | 'chip' | 'link' | 'content' | 'title' | 'avatar'
| 'headerActive' | 'headerCompleted' | 'headerQueued' | 'headerFailed' | 'headerCanceled';
action={
<div>
<Chip label={getProcessStatus(process)}
- className={classnames([classes.chip, getBackgroundColorStatus(getProcessStatus(process), classes)])} />
+ className={classnames([classes.chip, getStatusColor(getProcessStatus(process), classes)])} />
<IconButton
aria-label="More options"
onClick={event => onContextMenu(event)}>
</Grid>
: <Grid container
alignItems='center'
- justify='center'>
+ justify='center'
+ style={{ minHeight: '100%' }}>
<DefaultView
icon={ProcessIcon}
messages={['Process not found']} />
</Grid>;
-export const getBackgroundColorStatus = (status: string, classes: Record<CssRules, string>) => {
+export const getStatusColor = (status: string, classes: Record<CssRules, string>) => {
switch (status) {
case SubprocessesStatus.COMPLETED:
return classes.headerCompleted;
import { ArvadosTheme } from '~/common/custom-theme';
import { MoreOptionsIcon } from '~/components/icon/icon';
import { DetailsAttribute } from '~/components/details-attribute/details-attribute';
-import { getBackgroundColorStatus } from '~/views/process-panel/process-panel-root';
+import { getStatusColor } from '~/views/process-panel/process-panel-root';
import { Process, getProcessStatus, getProcessRuntime } from '~/store/processes/process';
-import { msToTime } from '~/common/formatters';
+import { formatTime } from '~/common/formatters';
export type CssRules = 'label' | 'value' | 'title' | 'content' | 'action' | 'options' | 'status' | 'rightSideHeader' | 'titleHeader'
| 'header' | 'headerActive' | 'headerCompleted' | 'headerQueued' | 'headerFailed' | 'headerCanceled';
({ classes, onContextMenu, subprocess }: ProcessSubprocessesCardProps) => {
return <Card>
<CardHeader
- className={classnames([classes.header, getBackgroundColorStatus(getProcessStatus(subprocess), classes)])}
+ className={classnames([classes.header, getStatusColor(getProcessStatus(subprocess), classes)])}
classes={{ content: classes.title, action: classes.action }}
action={
<div className={classes.rightSideHeader}>
<IconButton
className={classes.options}
aria-label="More options"
- onClick={event => onContextMenu(event)}>
+ onClick={onContextMenu}>
<MoreOptionsIcon />
</IconButton>
</div>
} />
<CardContent className={classes.content}>
<DetailsAttribute classLabel={classes.label} classValue={classes.value}
- label="Runtime" value={msToTime(getProcessRuntime(subprocess))} />
+ label="Runtime" value={formatTime(getProcessRuntime(subprocess))} />
</CardContent>
</Card>;
});
\ No newline at end of file