X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/0afc40ccf18f9909ef1bab6cd8a41350a9789610..44821dc84765936ce99fa2d760ef683281f0a578:/src/views-components/context-menu/actions/collection-file-viewer-action.tsx diff --git a/src/views-components/context-menu/actions/collection-file-viewer-action.tsx b/src/views-components/context-menu/actions/collection-file-viewer-action.tsx index aba355346b..f736f0bf27 100644 --- a/src/views-components/context-menu/actions/collection-file-viewer-action.tsx +++ b/src/views-components/context-menu/actions/collection-file-viewer-action.tsx @@ -4,19 +4,26 @@ import { connect } from "react-redux"; import { RootState } from "../../../store/store"; -import { FileViewerAction } from '~/views-components/context-menu/actions/file-viewer-action'; -import { getNodeValue } from "~/models/tree"; -import { ContextMenuKind } from '~/views-components/context-menu/context-menu'; -import { getInlineFileUrl, sanitizeToken } from "./helpers"; +import { FileViewerAction } from 'views-components/context-menu/actions/file-viewer-action'; +import { getNodeValue } from "models/tree"; +import { ContextMenuKind } from 'views-components/context-menu/context-menu'; +import { getInlineFileUrl, sanitizeToken, isInlineFileUrlSafe } from "./helpers"; const mapStateToProps = (state: RootState) => { const { resource } = state.contextMenu; const currentCollectionUuid = state.collectionPanel.item ? state.collectionPanel.item.uuid : ''; - if (resource && ( - resource.menuKind === ContextMenuKind.COLLECTION_FILES_ITEM || - resource.menuKind === ContextMenuKind.READONLY_COLLECTION_FILES_ITEM)) { + if (resource && [ + ContextMenuKind.COLLECTION_FILE_ITEM, + ContextMenuKind.READONLY_COLLECTION_FILE_ITEM, + ContextMenuKind.COLLECTION_DIRECTORY_ITEM, + ContextMenuKind.READONLY_COLLECTION_DIRECTORY_ITEM ].indexOf(resource.menuKind as ContextMenuKind) > -1) { const file = getNodeValue(resource.uuid)(state.collectionPanelFiles); - if (file) { + const shouldShowInlineUrl = isInlineFileUrlSafe( + file ? file.url : "", + state.auth.config.keepWebServiceUrl, + state.auth.config.keepWebInlineServiceUrl + ) || state.auth.config.clusterConfig.Collections.TrustAllContent; + if (file && shouldShowInlineUrl) { const fileUrl = sanitizeToken(getInlineFileUrl( file.url, state.auth.config.keepWebServiceUrl,