From c9d21a5a2fc84e47cff7862648ccabe98a331e80 Mon Sep 17 00:00:00 2001 From: Lucas Di Pentima Date: Tue, 9 Mar 2021 13:00:30 -0300 Subject: [PATCH] 16848: Updates 'get api token' dialog. Adds individual copyable api host & token information in additional to the currently present shell code block. Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima --- .../token-dialog/token-dialog.tsx | 66 +++++++++++++++---- 1 file changed, 52 insertions(+), 14 deletions(-) diff --git a/src/views-components/token-dialog/token-dialog.tsx b/src/views-components/token-dialog/token-dialog.tsx index ba3d1942..77e4f168 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')}>