Merge branch '22134-railsapi-envvars'
[arvados.git] / services / workbench2 / src / views-components / ssh-keys-dialog / attributes-dialog.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 { compose } from 'redux';
7 import { CustomStyleRulesCallback } from 'common/custom-theme';
8 import { Dialog, DialogTitle, DialogContent, DialogActions, Button, Grid } from '@mui/material';
9 import { WithStyles } from '@mui/styles';
10 import withStyles from '@mui/styles/withStyles';
11 import { WithDialogProps, withDialog } from "store/dialog/with-dialog";
12 import { SSH_KEY_ATTRIBUTES_DIALOG } from 'store/auth/auth-action-ssh';
13 import { ArvadosTheme } from 'common/custom-theme';
14 import { SshKeyResource } from "models/ssh-key";
15
16 type CssRules = 'root';
17
18 const styles: CustomStyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
19     root: {
20         fontSize: '0.875rem',
21         '& div:nth-child(odd)': {
22             textAlign: 'right',
23             color: theme.palette.grey["500"]
24         }
25     }
26 });
27
28 interface AttributesSshKeyDialogDataProps {
29     sshKey: SshKeyResource;
30 }
31
32 export const AttributesSshKeyDialog = compose(
33     withDialog(SSH_KEY_ATTRIBUTES_DIALOG),
34     withStyles(styles))(
35         ({ open, closeDialog, data, classes }: WithDialogProps<AttributesSshKeyDialogDataProps> & WithStyles<CssRules>) =>
36             <Dialog open={open}
37                 onClose={closeDialog}
38                 fullWidth
39                 maxWidth='sm'>
40                 <DialogTitle>Attributes</DialogTitle>
41                 <DialogContent>
42                     {data.sshKey && <Grid container direction="row" spacing={2} className={classes.root}>
43                         <Grid item xs={5}>Name</Grid>
44                         <Grid item xs={7}>{data.sshKey.name}</Grid>
45                         <Grid item xs={5}>uuid</Grid>
46                         <Grid item xs={7}>{data.sshKey.uuid}</Grid>
47                         <Grid item xs={5}>Owner uuid</Grid>
48                         <Grid item xs={7}>{data.sshKey.ownerUuid}</Grid>
49                         <Grid item xs={5}>Authorized user uuid</Grid>
50                         <Grid item xs={7}>{data.sshKey.authorizedUserUuid}</Grid>
51                         <Grid item xs={5}>Created at</Grid>
52                         <Grid item xs={7}>{data.sshKey.createdAt}</Grid>
53                         <Grid item xs={5}>Modified at</Grid>
54                         <Grid item xs={7}>{data.sshKey.modifiedAt}</Grid>
55                         <Grid item xs={5}>Expires at</Grid>
56                         <Grid item xs={7}>{data.sshKey.expiresAt}</Grid>
57                         <Grid item xs={5}>Modified by user uuid</Grid>
58                         <Grid item xs={7}>{data.sshKey.modifiedByUserUuid}</Grid>
59                     </Grid>}
60                 </DialogContent>
61                 <DialogActions>
62                     <Button
63                         variant='text'
64                         color='primary'
65                         onClick={closeDialog}>
66                         Close
67                     </Button>
68                 </DialogActions>
69             </Dialog>
70     );