X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/c04071992d624a6aec1185898e58ce848086684f..ff8e2c5d55ac3bf5d897c774879f5f544b518553:/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 ae058c3d..99dc9a76 100644
--- a/src/views/workflow-panel/workflow-panel.tsx
+++ b/src/views/workflow-panel/workflow-panel.tsx
@@ -2,159 +2,26 @@
//
// 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, ShareIcon } 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,
- RosurceWorkflowName,
- ResourceWorkflowStatus
-} 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, Tooltip, IconButton } from '@material-ui/core';
-import { WorkflowDescriptionCard } from './workflow-description-card';
-export enum WorkflowPanelColumnNames {
- NAME = "Name",
- AUTHORISATION = "Authorisation",
- LAST_MODIFIED = "Last modified",
- SHARE = 'Share'
-}
+const mapStateToProps = (state: RootState): WorkflowPanelDataProps => ({
+ workflow: getWorkflowDetails(state)
+});
-interface WorkflowPanelDataProps {
- resources: ResourcesState;
-}
-
-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";
- }
-};
-
-const ResourceShare = (props: { uuid: string }) => {
- return
- undefined}>
-
-
- ;
-};
-
-export const workflowPanelColumns: DataColumns = [
- {
- name: WorkflowPanelColumnNames.NAME,
- selected: true,
- configurable: true,
- sortDirection: SortDirection.ASC,
- filters: [],
- render: (uuid: string) =>
- },
- {
- 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) =>
+const mapDispatchToProps = (dispatch: Dispatch): WorfklowPanelActionProps => ({
+ handleRowDoubleClick: (uuid: string) => {
+ dispatch(navigateTo(uuid));
},
- {
- name: '',
- 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);