X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/eb633efdb3fa8ecb0c2c6a5e35916585282436ea..c9d21a5a2fc84e47cff7862648ccabe98a331e80:/src/views-components/token-dialog/token-dialog.tsx diff --git a/src/views-components/token-dialog/token-dialog.tsx b/src/views-components/token-dialog/token-dialog.tsx index ba3d19425b..77e4f168c6 100644 --- a/src/views-components/token-dialog/token-dialog.tsx +++ b/src/views-components/token-dialog/token-dialog.tsx @@ -12,7 +12,8 @@ import { withStyles, StyleRulesCallback, Button, - Typography + Typography, + Tooltip } from '@material-ui/core'; import * as CopyToClipboard from 'react-copy-to-clipboard'; import { ArvadosTheme } from '~/common/custom-theme'; @@ -27,8 +28,9 @@ import { import { DefaultCodeSnippet } from '~/components/default-code-snippet/default-code-snippet'; import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions'; import { getNewExtraToken } from '~/store/auth/auth-action'; +import { CopyIcon } from '~/components/icon/icon'; -type CssRules = 'link' | 'paper' | 'button' | 'actionButton'; +type CssRules = 'link' | 'paper' | 'button' | 'actionButton' | 'copyIcon' | 'inlineMonospaced'; const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ link: { @@ -51,6 +53,20 @@ const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ marginTop: theme.spacing.unit * 2, marginBottom: theme.spacing.unit * 2, marginRight: theme.spacing.unit * 2, + }, + copyIcon: { + marginLeft: theme.spacing.unit, + color: theme.palette.grey["500"], + cursor: 'pointer', + display: 'inline', + '& svg': { + fontSize: '1rem' + } + }, + inlineMonospaced: { + fontFamily: 'Monospace', + fontSize: '1rem', + display: 'inline-block', } }); @@ -100,24 +116,46 @@ unset ARVADOS_API_HOST_INSECURE` The Arvados API token is a secret key that enables the Arvados SDKs to access Arvados with the proper permissions. - - For more information see - - Getting an API token. - + + For more information see + + Getting an API token. + + + + + + Your Arvados API host is: {data.apiHost} { + + this.onCopy("API host copied")}> + + + + } + + + + Your token is: {data.token} { + + this.onCopy("Token copied")}> + + + + } + + + { data.tokenExpiration + ? `Expires at: ${data.tokenExpiration.toLocaleString()}` + : `This token does not have an expiration date` + } + Paste the following lines at a shell prompt to set up the necessary environment for Arvados SDKs to authenticate to your account. - - { data.tokenExpiration - ? `Expires at: ${data.tokenExpiration.toLocaleString()}` - : `This token does not have an expiration date` - } - - this.onCopy('Token copied to clipboard')}> + this.onCopy('Shell code block copied')}>