1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
5 import React from "react";
6 import { Grid } from "@material-ui/core";
7 import { formatDate } from "common/formatters";
8 import { resourceLabel } from "common/labels";
9 import { DetailsAttribute } from "components/details-attribute/details-attribute";
10 import { ProcessResource } from "models/process";
11 import { ResourceKind } from "models/resource";
12 import { ResourceOwnerWithName } from "views-components/data-explorer/renderers";
14 type CssRules = 'label' | 'value';
16 export const ProcessDetailsAttributes = (props: { item: ProcessResource, twoCol?: boolean, classes?: Record<CssRules, string> }) => {
17 const item = props.item;
18 const classes = props.classes || { label: '', value: '', button: '' };
19 const mdSize = props.twoCol ? 6 : 12;
20 return <Grid container>
21 <Grid item xs={12} md={mdSize}>
22 <DetailsAttribute label='Type' value={resourceLabel(ResourceKind.PROCESS)} />
24 <Grid item xs={12} md={mdSize}>
25 <DetailsAttribute classLabel={classes.label} classValue={classes.value}
26 label='Owner' linkToUuid={item.ownerUuid}
27 uuidEnhancer={(uuid: string) => <ResourceOwnerWithName uuid={uuid} />} />
29 <Grid item xs={12} md={12}>
30 <DetailsAttribute label='Status' value={item.state} />
32 <Grid item xs={12} md={mdSize}>
33 <DetailsAttribute label='Last modified' value={formatDate(item.modifiedAt)} />
35 <Grid item xs={12} md={mdSize}>
36 <DetailsAttribute label='Started at' value={formatDate(item.createdAt)} />
38 <Grid item xs={12} md={mdSize}>
39 <DetailsAttribute label='Created at' value={formatDate(item.createdAt)} />
41 <Grid item xs={12} md={mdSize}>
42 <DetailsAttribute label='Finished at' value={formatDate(item.expiresAt)} />
44 <Grid item xs={12} md={mdSize}>
45 <DetailsAttribute label='Outputs' value={item.outputPath} />
47 <Grid item xs={12} md={mdSize}>
48 <DetailsAttribute label='UUID' linkToUuid={item.uuid} value={item.uuid} />
50 <Grid item xs={12} md={mdSize}>
51 <DetailsAttribute label='Container UUID' value={item.containerUuid} />
53 <Grid item xs={12} md={mdSize}>
54 <DetailsAttribute label='Priority' value={item.priority} />
56 <Grid item xs={12} md={mdSize}>
57 <DetailsAttribute label='Runtime Constraints'
58 value={JSON.stringify(item.runtimeConstraints)} />
60 <Grid item xs={12} md={mdSize}>
61 <DetailsAttribute label='Docker Image locator'
62 linkToUuid={item.containerImage} value={item.containerImage} />