X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/eda5e30d786d5d1224a552e962b6b711efab7369..0efebb152c5b21d3d1d58a2a27058c1e661342b9:/src/views/workflow-panel/workflow-panel.tsx diff --git a/src/views/workflow-panel/workflow-panel.tsx b/src/views/workflow-panel/workflow-panel.tsx index ef0b5fbb..c59dc492 100644 --- a/src/views/workflow-panel/workflow-panel.tsx +++ b/src/views/workflow-panel/workflow-panel.tsx @@ -2,141 +2,27 @@ // // SPDX-License-Identifier: AGPL-3.0 -import * as React from 'react'; -import { DataExplorer } from "~/views-components/data-explorer/data-explorer"; -import { connect, DispatchProp } from 'react-redux'; +import { Dispatch } from "redux"; +import { connect } from "react-redux"; +import { navigateTo } from '~/store/navigation/navigation-action'; +import { WorkflowPanelView } from '~/views/workflow-panel/workflow-panel-view'; +import { WorfklowPanelActionProps, WorkflowPanelDataProps } from './workflow-panel-view'; +import { showWorkflowDetails, getWorkflowDetails } from '~/store/workflow-panel/workflow-panel-actions'; import { RootState } from '~/store/store'; -import { WorkflowIcon } from '~/components/icon/icon'; -import { ResourcesState, getResource } from '~/store/resources/resources'; -import { navigateTo } from "~/store/navigation/navigation-action"; -import { loadDetailsPanel } from "~/store/details-panel/details-panel-action"; -import { DataTableDefaultView } from '~/components/data-table-default-view/data-table-default-view'; -import { WORKFLOW_PANEL_ID } from '~/store/workflow-panel/workflow-panel-actions'; -import { openContextMenu } from '~/store/context-menu/context-menu-actions'; -import { GroupResource } from '~/models/group'; -import { ContextMenuKind } from '~/views-components/context-menu/context-menu'; -import { - ResourceLastModifiedDate, - ResourceName, -} from "~/views-components/data-explorer/renderers"; -import { SortDirection } from '~/components/data-table/data-column'; -import { DataColumns } from '~/components/data-table/data-table'; -import { DataTableFilterItem } from '~/components/data-table-filters/data-table-filters'; -import { Grid } from '@material-ui/core'; -import { WorkflowDescriptionCard } from './workflow-description-card'; -export enum WorkflowPanelColumnNames { - NAME = "Name", - AUTHORISATION = "Authorisation", - LAST_MODIFIED = "Last modified", -} +const mapStateToProps = (state: RootState): WorkflowPanelDataProps => ({ + workflow: getWorkflowDetails(state) +}); -interface WorkflowPanelDataProps { - resources: ResourcesState; -} +const mapDispatchToProps = (dispatch: Dispatch): WorfklowPanelActionProps => ({ -export enum ResourceStatus { - PUBLIC = 'public', - PRIVATE = 'private', - SHARED = 'shared' -} - -const resourceStatus = (type: string) => { - switch (type) { - case ResourceStatus.PUBLIC: - return "Public"; - case ResourceStatus.PRIVATE: - return "Private"; - case ResourceStatus.SHARED: - return "Shared"; - default: - return "Unknown"; - } -}; - -export const workflowPanelColumns: DataColumns = [ - { - name: WorkflowPanelColumnNames.NAME, - selected: true, - configurable: true, - sortDirection: SortDirection.ASC, - filters: [], - render: (uuid: string) => + handleRowDoubleClick: (uuid: string) => { + dispatch(navigateTo(uuid)); }, - { - name: WorkflowPanelColumnNames.AUTHORISATION, - selected: true, - configurable: true, - sortDirection: SortDirection.NONE, - filters: [ - { - name: resourceStatus(ResourceStatus.PUBLIC), - selected: true, - }, - { - name: resourceStatus(ResourceStatus.PRIVATE), - selected: true, - }, - { - name: resourceStatus(ResourceStatus.SHARED), - selected: true, - } - ], - render: (uuid: string) => , - }, - { - name: WorkflowPanelColumnNames.LAST_MODIFIED, - selected: true, - configurable: true, - sortDirection: SortDirection.NONE, - filters: [], - render: (uuid: string) => - } -]; -type WorkflowPanelProps = WorkflowPanelDataProps & DispatchProp; - -export const WorkflowPanel = connect((state: RootState) => ({ - resources: state.resources -}))( - class extends React.Component { - render() { - return - - } /> - - - - - ; - } - - handleContextMenu = (event: React.MouseEvent, resourceUuid: string) => { - const resource = getResource(resourceUuid)(this.props.resources); - if (resource) { - this.props.dispatch(openContextMenu(event, { - name: '', - uuid: resource.uuid, - ownerUuid: resource.ownerUuid, - isTrashed: resource.isTrashed, - kind: resource.kind, - menuKind: ContextMenuKind.PROJECT, - })); - } - } - - handleRowDoubleClick = (uuid: string) => { - this.props.dispatch(navigateTo(uuid)); - } - - handleRowClick = (uuid: string) => { - this.props.dispatch(loadDetailsPanel(uuid)); - } + handleRowClick: (uuid: string) => { + dispatch(showWorkflowDetails(uuid)); } -); \ No newline at end of file +}); + +export const WorkflowPanel = connect(mapStateToProps, mapDispatchToProps)(WorkflowPanelView);