From 3b0c193f12f1bac68b1fa708988369111799e33a Mon Sep 17 00:00:00 2001 From: Lucas Di Pentima Date: Wed, 7 Oct 2020 11:05:47 -0300 Subject: [PATCH] 16718: Shows collection status info as "old version" or "current" on search. Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima --- .../data-explorer/renderers.tsx | 22 ++++++++++++++++--- .../search-results-panel-view.tsx | 5 +++-- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/views-components/data-explorer/renderers.tsx b/src/views-components/data-explorer/renderers.tsx index 90d8d977..8afa4532 100644 --- a/src/views-components/data-explorer/renderers.tsx +++ b/src/views-components/data-explorer/renderers.tsx @@ -17,7 +17,7 @@ import { getProcess, Process, getProcessStatus, getProcessStatusColor, getProces import { ArvadosTheme } from '~/common/custom-theme'; import { compose, Dispatch } from 'redux'; import { WorkflowResource } from '~/models/workflow'; -import { ResourceStatus } from '~/views/workflow-panel/workflow-panel-view'; +import { ResourceStatus as WorkflowStatus } from '~/views/workflow-panel/workflow-panel-view'; import { getUuidPrefix, openRunProcess } from '~/store/workflow-panel/workflow-panel-actions'; import { openSharingDialog } from '~/store/sharing-dialog/sharing-dialog-actions'; import { UserResource } from '~/models/user'; @@ -358,9 +358,9 @@ export const ResourceRunProcess = connect( const renderWorkflowStatus = (uuidPrefix: string, ownerUuid?: string) => { if (ownerUuid === getPublicUuid(uuidPrefix)) { - return renderStatus(ResourceStatus.PUBLIC); + return renderStatus(WorkflowStatus.PUBLIC); } else { - return renderStatus(ResourceStatus.PRIVATE); + return renderStatus(WorkflowStatus.PRIVATE); } }; @@ -442,6 +442,22 @@ export const ResourceType = connect( return { type: resource ? resource.kind : '' }; })((props: { type: string }) => renderType(props.type)); +export const ResourceStatus = connect((state: RootState, props: { uuid: string }) => { + return { resource: getResource(props.uuid)(state.resources) }; + })((props: { resource: GroupContentsResource }) => + (props.resource && props.resource.kind === ResourceKind.COLLECTION) + ? + : + ); + +export const CollectionStatus = connect((state: RootState, props: { uuid: string }) => { + return { collection: getResource(props.uuid)(state.resources) }; + })((props: { collection: CollectionResource }) => + (props.collection.uuid !== props.collection.currentVersionUuid) + ? old version + : current + ); + export const ProcessStatus = compose( connect((state: RootState, props: { uuid: string }) => { return { process: getProcess(props.uuid)(state.resources) }; diff --git a/src/views/search-results-panel/search-results-panel-view.tsx b/src/views/search-results-panel/search-results-panel-view.tsx index 8bc5419b..ebe5a826 100644 --- a/src/views/search-results-panel/search-results-panel-view.tsx +++ b/src/views/search-results-panel/search-results-panel-view.tsx @@ -11,11 +11,12 @@ import { ContainerRequestState } from '~/models/container-request'; import { SEARCH_RESULTS_PANEL_ID } from '~/store/search-results-panel/search-results-panel-actions'; import { DataExplorer } from '~/views-components/data-explorer/data-explorer'; import { - ProcessStatus, ResourceCluster, + ResourceCluster, ResourceFileSize, ResourceLastModifiedDate, ResourceName, ResourceOwner, + ResourceStatus, ResourceType } from '~/views-components/data-explorer/renderers'; import { createTree } from '~/models/tree'; @@ -78,7 +79,7 @@ export const searchResultsPanelColumns: DataColumns = [ selected: true, configurable: true, filters: createTree(), - render: uuid => + render: uuid => }, { name: SearchResultsPanelColumnNames.TYPE, -- 2.30.2