21700: Install Bundler system-wide in Rails postinst
[arvados.git] / services / workbench2 / src / views-components / form-fields / resource-form-fields.tsx
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import React from "react";
6 import { connect } from "react-redux";
7 import { RootState } from "store/store";
8 import { Field } from "redux-form";
9 import { ResourcesState, getResource } from "store/resources/resources";
10 import { GroupResource } from "models/group";
11 import { TextField } from "components/text-field/text-field";
12 import { getUserUuid } from "common/getuser";
13
14 interface ResourceParentFieldProps {
15     resources: ResourcesState;
16     userUuid: string|undefined;
17 }
18
19 export const ResourceParentField = connect(
20     (state: RootState) => {
21         return {
22             resources: state.resources,
23             userUuid: getUserUuid(state),
24         };
25     })
26     ((props: ResourceParentFieldProps) =>
27         <span data-cy='parent-field'><Field
28             name='ownerUuid'
29             disabled={true}
30             label='Parent project'
31             format={
32                 (value, name) => {
33                     if (value === props.userUuid) {
34                         return 'Home project';
35                     }
36                     const rsc = getResource<GroupResource>(value)(props.resources);
37                     if (rsc !== undefined) {
38                         return `${rsc.name} (${rsc.uuid})`;
39                     }
40                     return value;
41                 }
42             }
43             component={TextField as any} /></span>
44     );