Merge branch '13705-item-common-details-next'
[arvados-workbench2.git] / src / components / details-panel-factory / items / process-item.tsx
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import * as React from 'react';
6 import IconBase, { IconTypes } from '../../icon/icon';
7 import Attribute from '../../attribute/attribute';
8 import AbstractItem from './abstract-item';
9 import { ProcessResource } from '../../../models/process';
10 import { formatDate } from '../../../common/formatters';
11
12 export default class ProcessItem extends AbstractItem<ProcessResource> {
13     
14     constructor(item: ProcessResource) {
15         super(item);
16         console.log('Process item: ', this.item);
17     }
18
19     getIcon(): IconTypes {
20         return IconTypes.PROCESS;
21     }
22
23     buildDetails(): React.ReactElement<any> {
24         return <div>
25             <Attribute label='Type' value='Process' />
26             <Attribute label='Size' value='---' />
27             <Attribute label='Owner' value={this.item.ownerUuid} />
28
29             {/* Missing attr */}
30             <Attribute label='Status' value={this.item.state} />
31             <Attribute label='Last modified' value={formatDate(this.item.modifiedAt)} />
32             
33             {/* Missing attrs */}
34             <Attribute label='Started at' value={formatDate(this.item.createdAt)} />
35             <Attribute label='Finished at' value={formatDate(this.item.expiresAt)} />
36
37             {/* Links but we dont have view */}
38             <Attribute label='Outputs' link={this.item.outputPath} value={this.item.outputPath} />
39             <Attribute label='UUID' link={this.item.uuid} value={this.item.uuid} />
40             <Attribute label='Container UUID' link={this.item.containerUuid} value={this.item.containerUuid} />
41             
42             <Attribute label='Priority' value={this.item.priority} />
43             <Attribute label='Runtime Constraints' value={this.item.runtimeConstraints} />
44             {/* Link but we dont have view */}
45             <Attribute label='Docker Image locator' link={this.item.containerImage} value={this.item.containerImage} />
46         </div>;
47     }
48 }