X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/25216cc7acedc987c26a159f0b640210c0ef101e..2a7fd99c212c33a1ec9911f8529fa5afc59a7bb2:/src/views-components/webdav-s3-dialog/webdav-s3-dialog.tsx diff --git a/src/views-components/webdav-s3-dialog/webdav-s3-dialog.tsx b/src/views-components/webdav-s3-dialog/webdav-s3-dialog.tsx index 52b3ef9474..a32044a711 100644 --- a/src/views-components/webdav-s3-dialog/webdav-s3-dialog.tsx +++ b/src/views-components/webdav-s3-dialog/webdav-s3-dialog.tsx @@ -2,7 +2,7 @@ // // SPDX-License-Identifier: AGPL-3.0 -import * as React from "react"; +import React from "react"; import { Dialog, DialogActions, Button, StyleRulesCallback, WithStyles, withStyles, CardHeader, Tab, Tabs } from '@material-ui/core'; import { withDialog } from "store/dialog/with-dialog"; import { COLLECTION_WEBDAV_S3_DIALOG_NAME, WebDavS3InfoDialogData } from 'store/collections/collection-info-actions'; @@ -10,8 +10,9 @@ import { WithDialogProps } from 'store/dialog/with-dialog'; import { compose } from 'redux'; import { DetailsAttribute } from "components/details-attribute/details-attribute"; import { DownloadIcon } from "components/icon/icon"; +import { DefaultCodeSnippet } from "components/default-code-snippet/default-code-snippet"; -export type CssRules = 'details' | 'downloadButton'; +export type CssRules = 'details' | 'downloadButton' | 'detailsAttrValWithCode'; const styles: StyleRulesCallback = theme => ({ details: { @@ -20,6 +21,10 @@ const styles: StyleRulesCallback = theme => ({ }, downloadButton: { marginTop: theme.spacing.unit * 2, + }, + detailsAttrValWithCode: { + display: "flex", + alignItems: "center", } }); @@ -53,12 +58,12 @@ const isValidIpAddress = (ipAddress: string): Boolean => { }; const mountainduckTemplate = ({ - uuid, + uuid, username, cyberDavStr, collectionsUrl }: any) => { - + return ` @@ -74,7 +79,7 @@ const mountainduckTemplate = ({ Port ${(cyberDavStr.split(':')[2] || '443').split('/')[0]} Username - ${username}${isValidIpAddress(collectionsUrl.replace('https://', ``).split(':')[0])? + ${username}${isValidIpAddress(collectionsUrl.replace('https://', ``).split(':')[0]) ? ` Path /c=${uuid}` : ''} @@ -89,12 +94,12 @@ const downloadMountainduckFileHandler = (filename: string, text: string) => { const element = document.createElement('a'); element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text)); element.setAttribute('download', filename); - + element.style.display = 'none'; document.body.appendChild(element); - + element.click(); - + document.body.removeChild(element); }; @@ -115,8 +120,8 @@ export const WebDavS3InfoDialog = compose( } else { winDav = new URL(props.data.downloadUrl); cyberDav = new URL(props.data.downloadUrl); - winDav.pathname = `/by_id/${props.data.uuid}`; - cyberDav.pathname = `/by_id/${props.data.uuid}`; + winDav.pathname = `/c=${props.data.uuid}`; + cyberDav.pathname = `/c=${props.data.uuid}`; } cyberDav.username = props.data.username; @@ -135,25 +140,29 @@ export const WebDavS3InfoDialog = compose( tokenSecret = tokenUuid; } - const supportsWebdav = (props.data.uuid.indexOf("-4zz18-") === 5); + const isCollection = (props.data.uuid.indexOf("-4zz18-") === 5); let activeTab = props.data.activeTab; - if (!supportsWebdav) { + if (!isCollection) { activeTab = 2; } + const wgetCommand = `wget --http-user=${props.data.username} --http-passwd=${props.data.token} --mirror --no-parent --no-host --cut-dirs=0 ${winDav.toString()}`; + const curlCommand = `curl -O -u ${props.data.username}:${props.data.token} ${winDav.toString()}`; + return + title={`Open with 3rd party client`} />
- {supportsWebdav && } - {supportsWebdav && } + {isCollection && } + {isCollection && } + {isCollection && } @@ -161,7 +170,7 @@ export const WebDavS3InfoDialog = compose( {winDav.toString()}} + value={{winDav.toString()}} copyValue={winDav.toString()} /> Open File Explorer
  • Click on "This PC", then go to Computer → Add a Network Location
  • Click Next, then choose "Add a custom network location", then click Next
  • +
  • Use the "internet address" and credentials listed under Settings, above
  • MacOS

    1. Open Finder
    2. Click Go → Connect to server
    3. +
    4. Use the "internet address" and credentials listed under Settings, above
    {cyberDavStr}} + value={{cyberDavStr}} copyValue={cyberDavStr} /> +

    Cyberduck/Mountain Duck

    +
    +
    ;