X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/da85f1807c0223ab3de12448ae75df5482a457d8..e1cf48a01c6f7aca509eb4aa886bfe530cd18457:/src/views/subprocess-panel/subprocess-panel-root.tsx diff --git a/src/views/subprocess-panel/subprocess-panel-root.tsx b/src/views/subprocess-panel/subprocess-panel-root.tsx index fac421bc68..7da74f221a 100644 --- a/src/views/subprocess-panel/subprocess-panel-root.tsx +++ b/src/views/subprocess-panel/subprocess-panel-root.tsx @@ -2,20 +2,36 @@ // // SPDX-License-Identifier: AGPL-3.0 -import * as React from 'react'; -import { DataExplorer } from "~/views-components/data-explorer/data-explorer"; -import { DataColumns } from '~/components/data-table/data-table'; -import { DataTableFilterItem } from '~/components/data-table-filters/data-table-filters'; -import { ContainerRequestState } from '~/models/container-request'; -import { SortDirection } from '~/components/data-table/data-column'; -import { ResourceKind } from '~/models/resource'; -import { ResourceCreatedAtDate, ProcessStatus, ContainerRunTime } from '~/views-components/data-explorer/renderers'; -import { ProcessIcon } from '~/components/icon/icon'; -import { ResourceName } from '~/views-components/data-explorer/renderers'; -import { SUBPROCESS_PANEL_ID } from '~/store/subprocess-panel/subprocess-panel-actions'; -import { DataTableDefaultView } from '~/components/data-table-default-view/data-table-default-view'; -import { createTree } from '~/models/tree'; -import { getInitialProcessStatusFilters } from '~/store/resource-type-filters/resource-type-filters'; +import React from 'react'; +import { DataExplorer } from "views-components/data-explorer/data-explorer"; +import { DataColumns } from 'components/data-table/data-table'; +import { DataTableFilterItem } from 'components/data-table-filters/data-table-filters'; +import { ContainerRequestState } from 'models/container-request'; +import { SortDirection } from 'components/data-table/data-column'; +import { ResourceKind } from 'models/resource'; +import { ResourceCreatedAtDate, ProcessStatus, ContainerRunTime } from 'views-components/data-explorer/renderers'; +import { ProcessIcon } from 'components/icon/icon'; +import { ResourceName } from 'views-components/data-explorer/renderers'; +import { SUBPROCESS_PANEL_ID } from 'store/subprocess-panel/subprocess-panel-actions'; +import { createTree } from 'models/tree'; +import { getInitialProcessStatusFilters } from 'store/resource-type-filters/resource-type-filters'; +import { ResourcesState } from 'store/resources/resources'; +import { MPVPanelProps } from 'components/multi-panel-view/multi-panel-view'; +import { StyleRulesCallback, Typography, WithStyles, withStyles } from '@material-ui/core'; +import { ArvadosTheme } from 'common/custom-theme'; + +type CssRules = 'iconHeader' | 'cardHeader'; + +const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ + iconHeader: { + fontSize: '1.875rem', + color: theme.customs.colors.greyL, + marginRight: theme.spacing.unit * 2, + }, + cardHeader: { + display: 'flex', + }, +}); export enum SubprocessPanelColumnNames { NAME = "Name", @@ -63,27 +79,47 @@ export const subprocessPanelColumns: DataColumns = [ ]; export interface SubprocessPanelDataProps { - isAdmin: boolean; + resources: ResourcesState; } export interface SubprocessPanelActionProps { onItemClick: (item: string) => void; - onContextMenu: (event: React.MouseEvent, item: string, isAdmin: boolean) => void; + onContextMenu: (event: React.MouseEvent, item: string, resources: ResourcesState) => void; onItemDoubleClick: (item: string) => void; } type SubprocessPanelProps = SubprocessPanelActionProps & SubprocessPanelDataProps; -export const SubprocessPanelRoot = (props: SubprocessPanelProps) => { +const DEFAULT_VIEW_MESSAGES = [ + 'No subprocesses available for listing.', + 'The current process may not have any or none matches current filtering.' +]; + +type SubProcessesTitleProps = WithStyles; + +const SubProcessesTitle = withStyles(styles)( + ({classes}: SubProcessesTitleProps) => +
+ + + Subprocesses + +
+); + +export const SubprocessPanelRoot = (props: SubprocessPanelProps & MPVPanelProps) => { return props.onContextMenu(event, item, props.isAdmin)} + onContextMenu={(event, item) => props.onContextMenu(event, item, props.resources)} contextMenuColumn={true} - dataTableDefaultView={ - - } />; -}; \ No newline at end of file + defaultViewIcon={ProcessIcon} + defaultViewMessages={DEFAULT_VIEW_MESSAGES} + doHidePanel={props.doHidePanel} + doMaximizePanel={props.doMaximizePanel} + doUnMaximizePanel={props.doUnMaximizePanel} + panelMaximized={props.panelMaximized} + panelName={props.panelName} + title={} />; +};