X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/b130d8595d05d46f2f29ebe4c1cf3dff392bc26b..099468843d687fdc8c6fbb0f0e3dc54f59d0de15:/src/views-components/details-panel/details-panel.tsx diff --git a/src/views-components/details-panel/details-panel.tsx b/src/views-components/details-panel/details-panel.tsx index 399f4ef4ef..e9175f57ba 100644 --- a/src/views-components/details-panel/details-panel.tsx +++ b/src/views-components/details-panel/details-panel.tsx @@ -18,6 +18,7 @@ import { ProjectDetails } from "./project-details"; import { CollectionDetails } from "./collection-details"; import { ProcessDetails } from "./process-details"; import { EmptyDetails } from "./empty-details"; +import { WorkflowDetails } from "./workflow-details"; import { DetailsData } from "./details-data"; import { DetailsResource } from "models/details"; import { Config } from 'common/config'; @@ -26,6 +27,7 @@ import { getResource } from 'store/resources/resources'; import { toggleDetailsPanel, SLIDE_TIMEOUT, openDetailsPanel } from 'store/details-panel/details-panel-action'; import { FileDetails } from 'views-components/details-panel/file-details'; import { getNode } from 'models/tree'; +import { resourceIsFrozen } from 'common/frozen-resources'; type CssRules = 'root' | 'container' | 'opened' | 'headerContainer' | 'headerIcon' | 'tabContainer'; @@ -71,6 +73,8 @@ const getItem = (res: DetailsResource): DetailsData => { return new CollectionDetails(res); case ResourceKind.PROCESS: return new ProcessDetails(res); + case ResourceKind.WORKFLOW: + return new WorkflowDetails(res); default: return new EmptyDetails(res); } @@ -84,7 +88,14 @@ const mapStateToProps = ({ auth, detailsPanel, resources, collectionPanelFiles } const file = resource ? undefined : getNode(detailsPanel.resourceUuid)(collectionPanelFiles); + + let isFrozen = false; + if (resource) { + isFrozen = resourceIsFrozen(resource, resources); + } + return { + isFrozen, authConfig: auth.config, isOpened: detailsPanel.isOpened, tabNr: detailsPanel.tabNr, @@ -108,6 +119,7 @@ export interface DetailsPanelDataProps { isOpened: boolean; tabNr: number; res: DetailsResource; + isFrozen: boolean; } type DetailsPanelProps = DetailsPanelDataProps & WithStyles; @@ -152,9 +164,9 @@ export const DetailsPanel = withStyles(styles)( let shouldShowInlinePreview = false; if (!('kind' in res)) { shouldShowInlinePreview = isInlineFileUrlSafe( - res ? res.url : "", - authConfig.keepWebServiceUrl, - authConfig.keepWebInlineServiceUrl + res ? res.url : "", + authConfig.keepWebServiceUrl, + authConfig.keepWebInlineServiceUrl ) || authConfig.clusterConfig.Collections.TrustAllContent; } @@ -191,14 +203,14 @@ export const DetailsPanel = withStyles(styles)( = tabNr+1) ? tabNr : 0}> - { item.getTabLabels().map((tabLabel, idx) => + value={(item.getTabLabels().length >= tabNr + 1) ? tabNr : 0}> + {item.getTabLabels().map((tabLabel, idx) => ) } - {item.getDetails({tabNr, showPreview: shouldShowInlinePreview})} + {item.getDetails({ tabNr, showPreview: shouldShowInlinePreview })} ; }