From 0997bb068a2ecb8f6b0b13d22f3ef57ae1243405 Mon Sep 17 00:00:00 2001 From: Pawel Kowalczyk Date: Tue, 28 Aug 2018 15:21:14 +0200 Subject: [PATCH] information card in separate file Feature #13858 Arvados-DCO-1.1-Signed-off-by: Pawel Kowalczyk --- src/views/process-panel/information-card.tsx | 132 +++++++++++++++++ src/views/process-panel/process-panel.tsx | 146 ++----------------- 2 files changed, 145 insertions(+), 133 deletions(-) create mode 100644 src/views/process-panel/information-card.tsx diff --git a/src/views/process-panel/information-card.tsx b/src/views/process-panel/information-card.tsx new file mode 100644 index 00000000..8350ba95 --- /dev/null +++ b/src/views/process-panel/information-card.tsx @@ -0,0 +1,132 @@ +// Copyright (C) The Arvados Authors. All rights reserved. +// +// SPDX-License-Identifier: AGPL-3.0 + +import * as React from 'react'; +import { + StyleRulesCallback, WithStyles, withStyles, Card, + CardHeader, IconButton, CardContent, Grid, Chip +} from '@material-ui/core'; +import { ArvadosTheme } from '~/common/custom-theme'; +import { ProcessResource } from '~/models/process'; +import { DispatchProp, connect } from 'react-redux'; +import { MoreOptionsIcon, ProcessIcon } from '~/components/icon/icon'; +import { DetailsAttribute } from '~/components/details-attribute/details-attribute'; +import { RootState } from '~/store/store'; +import { ContextMenuKind } from '~/views-components/context-menu/context-menu'; +import { openContextMenu } from '~/store/context-menu/context-menu-actions'; + +type CssRules = 'card' | 'iconHeader' | 'label' | 'value' | 'content' | 'chip' | 'headerText' | 'link'; + +const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ + card: { + marginBottom: theme.spacing.unit * 2, + }, + iconHeader: { + fontSize: '1.875rem', + color: theme.customs.colors.green700 + }, + label: { + fontSize: '0.875rem', + }, + value: { + textTransform: 'none', + fontSize: '0.875rem' + }, + content: { + display: 'flex', + paddingBottom: '0px ', + paddingTop: '0px', + '&:last-child': { + paddingBottom: '0px ', + } + }, + link: { + fontSize: '0.875rem', + color: theme.palette.primary.main, + '&:hover': { + cursor: 'pointer' + } + }, + chip: { + height: theme.spacing.unit * 2.5, + width: theme.spacing.unit * 12, + backgroundColor: theme.customs.colors.green700, + color: theme.palette.common.white, + fontSize: '0.875rem', + borderRadius: theme.spacing.unit * 0.625 + }, + headerText: { + fontSize: '0.875rem', + position: 'relative', + top: -theme.spacing.unit * 4.5, + left: theme.spacing.unit * 3, + } +}); + +interface ProcessInformationCardDataProps { + item: ProcessResource; +} + +type InformationCardProps = ProcessInformationCardDataProps & DispatchProp & WithStyles; + +export const InformationCard = withStyles(styles)( + connect((state: RootState) => ({ + item: state.collectionPanel.item + }))( + class extends React.Component { + render() { + const { classes } = this.props; + + return
+ + } + action={ + + + + } + title="Pipeline template that generates a config file from a template" /> + + + + } /> + + + + + + + + + + + + + This container request was created from the workflow FastQC MultiQC + +
; + } + + handleContextMenu = (event: React.MouseEvent) => { + // const { uuid, name, description } = this.props.item; + const resource = { + uuid: '', + name: '', + description: '', + kind: ContextMenuKind.PROCESS + }; + this.props.dispatch(openContextMenu(event, resource)); + } + } + ) +); \ No newline at end of file diff --git a/src/views/process-panel/process-panel.tsx b/src/views/process-panel/process-panel.tsx index 3910099c..a8c92b72 100644 --- a/src/views/process-panel/process-panel.tsx +++ b/src/views/process-panel/process-panel.tsx @@ -3,137 +3,17 @@ // SPDX-License-Identifier: AGPL-3.0 import * as React from 'react'; -import { - StyleRulesCallback, WithStyles, withStyles, Card, - CardHeader, IconButton, CardContent, Grid, Chip -} from '@material-ui/core'; -import { ArvadosTheme } from '~/common/custom-theme'; -import { ProcessResource } from '~/models/process'; -import { DispatchProp, connect } from 'react-redux'; -import { RouteComponentProps } from 'react-router'; -import { MoreOptionsIcon, ProcessIcon } from '~/components/icon/icon'; -import { DetailsAttribute } from '~/components/details-attribute/details-attribute'; -import { RootState } from '~/store/store'; -import { ContextMenuKind } from '~/views-components/context-menu/context-menu'; -import { openContextMenu } from '~/store/context-menu/context-menu-actions'; - -type CssRules = 'card' | 'iconHeader' | 'label' | 'value' | 'content' | 'chip' | 'headerText' | 'link'; - -const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ - card: { - marginBottom: theme.spacing.unit * 2, - width: '60%' - }, - iconHeader: { - fontSize: '1.875rem', - color: theme.customs.colors.green700 - }, - label: { - fontSize: '0.875rem', - }, - value: { - textTransform: 'none', - fontSize: '0.875rem' - }, - content: { - display: 'flex', - paddingBottom: '0px ', - paddingTop: '0px', - '&:last-child': { - paddingBottom: '0px ', - } - }, - link: { - fontSize: '0.875rem', - color: theme.palette.primary.main, - '&:hover': { - cursor: 'pointer' - } - }, - chip: { - height: theme.spacing.unit * 2.5, - width: theme.spacing.unit * 12, - backgroundColor: theme.customs.colors.green700, - color: theme.palette.common.white, - fontSize: '0.875rem', - borderRadius: theme.spacing.unit * 0.625 - }, - headerText: { - fontSize: '0.875rem', - position: 'relative', - top: -theme.spacing.unit * 4.5, - left: theme.spacing.unit * 3, +import { InformationCard } from '~/views/process-panel/information-card'; +import { Grid } from '@material-ui/core'; + +export class ProcessPanel extends React.Component { + render() { + return
+ + + + + +
; } -}); - -interface ProcessPanelDataProps { - item: ProcessResource; -} - -interface ProcessPanelActionProps { - onContextMenu: (event: React.MouseEvent, item: ProcessResource) => void; -} - -type ProcessPanelProps = ProcessPanelDataProps & ProcessPanelActionProps & DispatchProp & WithStyles & RouteComponentProps<{ id: string }>; - -export const ProcessPanel = withStyles(styles)( - connect((state: RootState) => ({ - item: state.collectionPanel.item, - tags: state.collectionPanel.tags - }))( - class extends React.Component { - render() { - const { classes } = this.props; - - return
- - } - action={ - - - - } - title="Pipeline template that generates a config file from a template" /> - - - - } /> - - - - - - - - - - - - - This container request was created from the workflow FastQC MultiQC - -
; - } - - handleContextMenu = (event: React.MouseEvent) => { - // const { uuid, name, description } = this.props.item; - const resource = { - uuid: '', - name: '', - description: '', - kind: ContextMenuKind.PROCESS - }; - this.props.dispatch(openContextMenu(event, resource)); - } - } - ) -); \ No newline at end of file +} \ No newline at end of file -- 2.30.2