[arvados-workbench2] updated: 2.4.0-213-gce2ea2b3

git repository hosting git at public.arvados.org
Thu Sep 22 16:19:35 UTC 2022


Summary of changes:
 .../collection-panel-files.tsx                     |  10 +-
 src/components/default-view/default-view.tsx       |   4 +-
 src/components/icon/icon.tsx                       |  20 +++-
 src/views/process-panel/process-io-card.tsx        | 115 +++++++++++----------
 .../process-output-collection-files.ts             |  15 ++-
 src/views/process-panel/process-panel-root.tsx     |   8 +-
 6 files changed, 99 insertions(+), 73 deletions(-)

       via  ce2ea2b32bdbaa8a9156ca80f8bf2eb33308ba89 (commit)
       via  daf4a128af59d831ef922b5d43b1ace737acd136 (commit)
       via  58543e965e9c3f186f6708d171dc47c9425188a9 (commit)
       via  65128fdb69ac9f7bd2f4653ee1bea95a9ab59559 (commit)
       via  dcae2a9e192de09e9b99a3aa80888f04ed1305d6 (commit)
       via  8f5b7486c0f30337f5fc0b9b31b4cceaef7e08b1 (commit)
      from  74da68a31fc788818cab7276e67db8951cb28220 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit ce2ea2b32bdbaa8a9156ca80f8bf2eb33308ba89
Author: Stephen Smith <stephen at curii.com>
Date:   Thu Sep 22 12:19:12 2022 -0400

    16073: Add maximize to process io panels
    
    Arvados-DCO-1.1-Signed-off-by: Stephen Smith <stephen at curii.com>

diff --git a/src/views/process-panel/process-io-card.tsx b/src/views/process-panel/process-io-card.tsx
index b1cfdb3e..0a1ec9e2 100644
--- a/src/views/process-panel/process-io-card.tsx
+++ b/src/views/process-panel/process-io-card.tsx
@@ -26,7 +26,7 @@ import {
     Chip,
 } from '@material-ui/core';
 import { ArvadosTheme } from 'common/custom-theme';
-import { CloseIcon, ImageIcon, InfoIcon, InputIcon, ImageOffIcon, OutputIcon } from 'components/icon/icon';
+import { CloseIcon, ImageIcon, InputIcon, ImageOffIcon, OutputIcon, MaximizeIcon } from 'components/icon/icon';
 import { MPVPanelProps } from 'components/multi-panel-view/multi-panel-view';
 import {
   BooleanCommandInputParameter,
@@ -82,6 +82,7 @@ const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
         paddingTop: theme.spacing.unit * 0.5
     },
     content: {
+        height: `calc(100% - ${theme.spacing.unit * 7}px - ${theme.spacing.unit * 1.5}px)`,
         padding: theme.spacing.unit * 1.0,
         paddingTop: theme.spacing.unit * 0.5,
         '&:last-child': {
@@ -93,6 +94,7 @@ const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
         paddingTop: theme.spacing.unit * 0.5
     },
     tableWrapper: {
+        height: `calc(100% - ${theme.spacing.unit * 6}px)`,
         overflow: 'auto',
     },
     tableRoot: {
@@ -186,7 +188,7 @@ const mapDispatchToProps = (dispatch: Dispatch): ProcessIOCardActionProps => ({
 type ProcessIOCardProps = ProcessIOCardDataProps & ProcessIOCardActionProps & WithStyles<CssRules> & MPVPanelProps;
 
 export const ProcessIOCard = withStyles(styles)(connect(null, mapDispatchToProps)(
-    ({ classes, label, params, raw, mounts, outputUuid, doHidePanel, panelName, process, navigateTo }: ProcessIOCardProps) => {
+    ({ classes, label, params, raw, mounts, outputUuid, doHidePanel, doMaximizePanel, panelMaximized, panelName, process, navigateTo }: ProcessIOCardProps) => {
         const [mainProcTabState, setMainProcTabState] = useState(0);
         const handleMainProcTabChange = (event: React.MouseEvent<HTMLElement>, value: number) => {
             setMainProcTabState(value);
@@ -215,6 +217,10 @@ export const ProcessIOCard = withStyles(styles)(connect(null, mapDispatchToProps
                         { mainProcess && <Tooltip title={"Toggle Image Preview"} disableFocusListener>
                             <IconButton data-cy="io-preview-image-toggle" onClick={() =>{setShowImagePreview(!showImagePreview)}}>{showImagePreview ? <ImageIcon /> : <ImageOffIcon />}</IconButton>
                         </Tooltip> }
+                        { doMaximizePanel && !panelMaximized &&
+                        <Tooltip title={`Maximize ${panelName || 'panel'}`} disableFocusListener>
+                            <IconButton onClick={doMaximizePanel}><MaximizeIcon /></IconButton>
+                        </Tooltip> }
                         { doHidePanel &&
                         <Tooltip title={`Close ${panelName || 'panel'}`} disableFocusListener>
                             <IconButton onClick={doHidePanel}><CloseIcon /></IconButton>
@@ -222,52 +228,50 @@ export const ProcessIOCard = withStyles(styles)(connect(null, mapDispatchToProps
                     </div>
                 } />
             <CardContent className={classes.content}>
-                <div>
-                    {mainProcess ?
-                        (<>
-                            {params.length ?
-                                <>
-                                    <Tabs value={mainProcTabState} onChange={handleMainProcTabChange} variant="fullWidth" className={classes.symmetricTabs}>
-                                        <Tab label="Parameters" />
-                                        <Tab label="JSON" />
-                                    </Tabs>
-                                    {mainProcTabState === 0 && <div className={classes.tableWrapper}>
-                                            <ProcessIOPreview data={params} showImagePreview={showImagePreview} />
-                                        </div>}
-                                    {mainProcTabState === 1 && <div className={classes.tableWrapper}>
-                                            <ProcessIORaw data={raw || params} />
-                                        </div>}
-                                </> :
-                                <Grid container item alignItems='center' justify='center'>
-                                    <DefaultView messages={["No parameters found"]} />
-                                </Grid>
-                            }
-                        </>) :
-                        (<>
-                            {((mounts && mounts.length) || outputUuid) ?
-                                <>
-                                    <Tabs value={0} variant="fullWidth" className={classes.symmetricTabs}>
-                                        {label === ProcessIOCardType.INPUT && <Tab label="Collections" />}
-                                        {label === ProcessIOCardType.OUTPUT && <Tab label="Collection" />}
-                                    </Tabs>
-                                    <div className={classes.tableWrapper}>
-                                        {label === ProcessIOCardType.INPUT && <ProcessInputMounts mounts={mounts || []} />}
-                                        {label === ProcessIOCardType.OUTPUT && <>
-                                            {outputUuid && <Typography className={classes.collectionLink}>
-                                                Output Collection: <MuiLink className={classes.keepLink} onClick={() => {navigateTo(outputUuid || "")}}>
-                                                {outputUuid}
-                                            </MuiLink></Typography>}
-                                            <ProcessOutputCollectionFiles isWritable={false} currentItemUuid={outputUuid} />
-                                        </>}
-                                    </div>
-                                </> :
-                                <Grid container item alignItems='center' justify='center'>
-                                    <DefaultView messages={["No collection(s) found"]} />
-                                </Grid>
-                            }
-                        </>)
-                    }
-                </div>
+                {mainProcess ?
+                    (<>
+                        {params.length ?
+                            <>
+                                <Tabs value={mainProcTabState} onChange={handleMainProcTabChange} variant="fullWidth" className={classes.symmetricTabs}>
+                                    <Tab label="Parameters" />
+                                    <Tab label="JSON" />
+                                </Tabs>
+                                {mainProcTabState === 0 && <div className={classes.tableWrapper}>
+                                        <ProcessIOPreview data={params} showImagePreview={showImagePreview} />
+                                    </div>}
+                                {mainProcTabState === 1 && <div className={classes.tableWrapper}>
+                                        <ProcessIORaw data={raw || params} />
+                                    </div>}
+                            </> :
+                            <Grid container item alignItems='center' justify='center'>
+                                <DefaultView messages={["No parameters found"]} />
+                            </Grid>
+                        }
+                    </>) :
+                    (<>
+                        {((mounts && mounts.length) || outputUuid) ?
+                            <>
+                                <Tabs value={0} variant="fullWidth" className={classes.symmetricTabs}>
+                                    {label === ProcessIOCardType.INPUT && <Tab label="Collections" />}
+                                    {label === ProcessIOCardType.OUTPUT && <Tab label="Collection" />}
+                                </Tabs>
+                                <div className={classes.tableWrapper}>
+                                    {label === ProcessIOCardType.INPUT && <ProcessInputMounts mounts={mounts || []} />}
+                                    {label === ProcessIOCardType.OUTPUT && <>
+                                        {outputUuid && <Typography className={classes.collectionLink}>
+                                            Output Collection: <MuiLink className={classes.keepLink} onClick={() => {navigateTo(outputUuid || "")}}>
+                                            {outputUuid}
+                                        </MuiLink></Typography>}
+                                        <ProcessOutputCollectionFiles isWritable={false} currentItemUuid={outputUuid} />
+                                    </>}
+                                </div>
+                            </> :
+                            <Grid container item alignItems='center' justify='center'>
+                                <DefaultView messages={["No collection(s) found"]} />
+                            </Grid>
+                        }
+                    </>)
+                }
             </CardContent>
         </Card>;
     }
diff --git a/src/views/process-panel/process-output-collection-files.ts b/src/views/process-panel/process-output-collection-files.ts
index d0b44cd1..e09078ae 100644
--- a/src/views/process-panel/process-output-collection-files.ts
+++ b/src/views/process-panel/process-output-collection-files.ts
@@ -14,6 +14,7 @@ import { openContextMenu, openCollectionFilesContextMenu } from 'store/context-m
 import { openUploadCollectionFilesDialog } from 'store/collections/collection-upload-actions';
 import { ResourceKind } from "models/resource";
 import { openDetailsPanel } from 'store/details-panel/details-panel-action';
+import { StyleRulesCallback, Theme, withStyles } from "@material-ui/core";
 
 const mapDispatchToProps = (dispatch: Dispatch): Pick<CollectionPanelFilesProps, 'onSearchChange' | 'onFileClick' | 'onUploadDataClick' | 'onCollapseToggle' | 'onSelectionToggle' | 'onItemMenuOpen' | 'onOptionsMenuOpen'> => ({
     onUploadDataClick: (targetLocation?: string) => {
@@ -55,4 +56,16 @@ const mapDispatchToProps = (dispatch: Dispatch): Pick<CollectionPanelFilesProps,
     },
 });
 
-export const ProcessOutputCollectionFiles = connect(null, mapDispatchToProps)(Component);
+type CssRules = "wrapper"
+    | "dataWrapper"
+    | "leftPanel"
+    | "rightPanel";
+
+const styles: StyleRulesCallback<CssRules> = (theme: Theme) => ({
+    wrapper: {},
+    dataWrapper: {},
+    leftPanel: {},
+    rightPanel: {},
+});
+
+export const ProcessOutputCollectionFiles = withStyles(styles)(connect(null, mapDispatchToProps)(Component));
diff --git a/src/views/process-panel/process-panel-root.tsx b/src/views/process-panel/process-panel-root.tsx
index 5174d300..1651b63a 100644
--- a/src/views/process-panel/process-panel-root.tsx
+++ b/src/views/process-panel/process-panel-root.tsx
@@ -133,7 +133,7 @@ export const ProcessPanelRoot = withStyles(styles)(
                     navigateToLog={props.navigateToLog}
                 />
             </MPVPanelContent>
-            <MPVPanelContent forwardProps xs="auto" data-cy="process-inputs">
+            <MPVPanelContent forwardProps xs maxHeight='50%' data-cy="process-inputs">
                 <ProcessIOCard
                     label={ProcessIOCardType.INPUT}
                     process={process}
@@ -142,7 +142,7 @@ export const ProcessPanelRoot = withStyles(styles)(
                     mounts={inputMounts}
                  />
             </MPVPanelContent>
-            <MPVPanelContent forwardProps xs="auto" data-cy="process-outputs">
+            <MPVPanelContent forwardProps xs maxHeight='50%' data-cy="process-outputs">
                 <ProcessIOCard
                     label={ProcessIOCardType.OUTPUT}
                     process={process}

commit daf4a128af59d831ef922b5d43b1ace737acd136
Author: Stephen Smith <stephen at curii.com>
Date:   Tue Sep 20 18:10:20 2022 -0400

    16073: Reduce collection panel files padding / empty space
    
    Arvados-DCO-1.1-Signed-off-by: Stephen Smith <stephen at curii.com>

diff --git a/src/components/collection-panel-files/collection-panel-files.tsx b/src/components/collection-panel-files/collection-panel-files.tsx
index 06b3c507..4f234743 100644
--- a/src/components/collection-panel-files/collection-panel-files.tsx
+++ b/src/components/collection-panel-files/collection-panel-files.tsx
@@ -154,8 +154,8 @@ const styles: StyleRulesCallback<CssRules> = (theme: Theme) => ({
         marginTop: '-15px',
     },
     pathPanel: {
-        padding: '1rem',
-        marginBottom: '1rem',
+        padding: '0.5rem',
+        marginBottom: '0.5rem',
         backgroundColor: '#fff',
         boxShadow: '0px 1px 3px 0px rgb(0 0 0 / 20%), 0px 1px 1px 0px rgb(0 0 0 / 14%), 0px 2px 1px -1px rgb(0 0 0 / 12%)',
     },
@@ -164,7 +164,7 @@ const styles: StyleRulesCallback<CssRules> = (theme: Theme) => ({
     },
     leftPanel: {
         flex: 0,
-        padding: '1rem',
+        padding: '0 1rem 1rem',
         marginRight: '1rem',
         whiteSpace: 'nowrap',
         position: 'relative',
@@ -195,8 +195,8 @@ const styles: StyleRulesCallback<CssRules> = (theme: Theme) => ({
     rightPanel: {
         flex: '50%',
         padding: '1rem',
-        paddingTop: '2rem',
-        marginTop: '-1rem',
+        paddingTop: '0.5rem',
+        marginTop: '-0.5rem',
         position: 'relative',
         backgroundColor: '#fff',
         boxShadow: '0px 3px 3px 0px rgb(0 0 0 / 20%), 0px 3px 1px 0px rgb(0 0 0 / 14%), 0px 3px 1px -1px rgb(0 0 0 / 12%)',

commit 58543e965e9c3f186f6708d171dc47c9425188a9
Author: Stephen Smith <stephen at curii.com>
Date:   Tue Sep 20 13:28:02 2022 -0400

    16073: Hide label column when no params have label
    
    Arvados-DCO-1.1-Signed-off-by: Stephen Smith <stephen at curii.com>

diff --git a/src/views/process-panel/process-io-card.tsx b/src/views/process-panel/process-io-card.tsx
index f54fac85..b1cfdb3e 100644
--- a/src/views/process-panel/process-io-card.tsx
+++ b/src/views/process-panel/process-io-card.tsx
@@ -293,12 +293,13 @@ interface ProcessIOPreviewDataProps {
 type ProcessIOPreviewProps = ProcessIOPreviewDataProps & WithStyles<CssRules>;
 
 const ProcessIOPreview = withStyles(styles)(
-    ({ classes, data, showImagePreview }: ProcessIOPreviewProps) =>
-        <Table className={classes.tableRoot} aria-label="Process IO Preview">
+    ({ classes, data, showImagePreview }: ProcessIOPreviewProps) => {
+        const showLabel = data.some((param: ProcessIOParameter) => param.label);
+        return <Table className={classes.tableRoot} aria-label="Process IO Preview">
             <TableHead>
                 <TableRow>
                     <TableCell>Name</TableCell>
-                    <TableCell>Label</TableCell>
+                    {showLabel && <TableCell>Label</TableCell>}
                     <TableCell>Value</TableCell>
                     <TableCell>Collection</TableCell>
                 </TableRow>
@@ -314,7 +315,7 @@ const ProcessIOPreview = withStyles(styles)(
                             <TableCell>
                                 {param.id}
                             </TableCell>
-                            <TableCell >{param.label}</TableCell>
+                            {showLabel && <TableCell >{param.label}</TableCell>}
                             <TableCell>
                                 {firstVal && <ProcessValuePreview value={firstVal} showImagePreview={showImagePreview} />}
                             </TableCell>
@@ -327,7 +328,7 @@ const ProcessIOPreview = withStyles(styles)(
                         {rest.map((val, i) => (
                             <TableRow className={(i < rest.length-1) ? rowClass : undefined}>
                                 <TableCell />
-                                <TableCell />
+                                {showLabel && <TableCell />}
                                 <TableCell>
                                     <ProcessValuePreview value={val} showImagePreview={showImagePreview} />
                                 </TableCell>
@@ -341,8 +342,8 @@ const ProcessIOPreview = withStyles(styles)(
                     </>;
                 })}
             </TableBody>
-        </Table>
-);
+        </Table>;
+});
 
 interface ProcessValuePreviewProps {
     value: ProcessIOValue;

commit 65128fdb69ac9f7bd2f4653ee1bea95a9ab59559
Author: Stephen Smith <stephen at curii.com>
Date:   Tue Sep 20 13:12:57 2022 -0400

    16073: Make default view icon optional, hide tabs when panel is empty
    
    Arvados-DCO-1.1-Signed-off-by: Stephen Smith <stephen at curii.com>

diff --git a/src/components/default-view/default-view.tsx b/src/components/default-view/default-view.tsx
index 014b8cc4..5acea619 100644
--- a/src/components/default-view/default-view.tsx
+++ b/src/components/default-view/default-view.tsx
@@ -29,7 +29,7 @@ export interface DefaultViewDataProps {
     messages: string[];
     filtersApplied?: boolean;
     classMessage?: string;
-    icon: IconType;
+    icon?: IconType;
     classIcon?: string;
 }
 
@@ -38,7 +38,7 @@ type DefaultViewProps = DefaultViewDataProps & WithStyles<CssRules>;
 export const DefaultView = withStyles(styles)(
     ({ classes, classRoot, messages, classMessage, icon: Icon, classIcon }: DefaultViewProps) =>
         <Typography className={classnames([classes.root, classRoot])} component="div">
-            <Icon className={classnames([classes.icon, classIcon])} />
+            {Icon && <Icon className={classnames([classes.icon, classIcon])} />}
             {messages.map((msg: string, index: number) => {
                 return <Typography key={index}
                     className={classnames([classes.message, classMessage])}>{msg}</Typography>;
diff --git a/src/views/process-panel/process-io-card.tsx b/src/views/process-panel/process-io-card.tsx
index 282ce936..f54fac85 100644
--- a/src/views/process-panel/process-io-card.tsx
+++ b/src/views/process-panel/process-io-card.tsx
@@ -225,40 +225,46 @@ export const ProcessIOCard = withStyles(styles)(connect(null, mapDispatchToProps
                 <div>
                     {mainProcess ?
                         (<>
-                            <Tabs value={mainProcTabState} onChange={handleMainProcTabChange} variant="fullWidth" className={classes.symmetricTabs}>
-                                <Tab label="Parameters" />
-                                <Tab label="JSON" />
-                            </Tabs>
-                            {mainProcTabState === 0 && <div className={classes.tableWrapper}>
-                                {params.length ?
-                                    <ProcessIOPreview data={params} showImagePreview={showImagePreview} /> :
-                                    <Grid container item alignItems='center' justify='center'>
-                                        <DefaultView messages={["No parameters found"]} icon={InfoIcon} />
-                                    </Grid>}
-                                </div>}
-                            {mainProcTabState === 1 && <div className={classes.tableWrapper}>
-                                {params.length ?
-                                    <ProcessIORaw data={raw || params} /> :
-                                    <Grid container item alignItems='center' justify='center'>
-                                        <DefaultView messages={["No parameters found"]} icon={InfoIcon} />
-                                    </Grid>}
-                                </div>}
+                            {params.length ?
+                                <>
+                                    <Tabs value={mainProcTabState} onChange={handleMainProcTabChange} variant="fullWidth" className={classes.symmetricTabs}>
+                                        <Tab label="Parameters" />
+                                        <Tab label="JSON" />
+                                    </Tabs>
+                                    {mainProcTabState === 0 && <div className={classes.tableWrapper}>
+                                            <ProcessIOPreview data={params} showImagePreview={showImagePreview} />
+                                        </div>}
+                                    {mainProcTabState === 1 && <div className={classes.tableWrapper}>
+                                            <ProcessIORaw data={raw || params} />
+                                        </div>}
+                                </> :
+                                <Grid container item alignItems='center' justify='center'>
+                                    <DefaultView messages={["No parameters found"]} />
+                                </Grid>
+                            }
                         </>) :
                         (<>
-                            <Tabs value={0} variant="fullWidth" className={classes.symmetricTabs}>
-                                {label === ProcessIOCardType.INPUT && <Tab label="Collections" />}
-                                {label === ProcessIOCardType.OUTPUT && <Tab label="Collection" />}
-                            </Tabs>
-                            <div className={classes.tableWrapper}>
-                                {label === ProcessIOCardType.INPUT && <ProcessInputMounts mounts={mounts || []} />}
-                                {label === ProcessIOCardType.OUTPUT && <>
-                                    {outputUuid && <Typography className={classes.collectionLink}>
-                                        Output Collection: <MuiLink className={classes.keepLink} onClick={() => {navigateTo(outputUuid)}}>
-                                        {outputUuid}
-                                    </MuiLink></Typography>}
-                                    <ProcessOutputCollectionFiles isWritable={false} currentItemUuid={outputUuid} />
-                                </>}
-                            </div>
+                            {((mounts && mounts.length) || outputUuid) ?
+                                <>
+                                    <Tabs value={0} variant="fullWidth" className={classes.symmetricTabs}>
+                                        {label === ProcessIOCardType.INPUT && <Tab label="Collections" />}
+                                        {label === ProcessIOCardType.OUTPUT && <Tab label="Collection" />}
+                                    </Tabs>
+                                    <div className={classes.tableWrapper}>
+                                        {label === ProcessIOCardType.INPUT && <ProcessInputMounts mounts={mounts || []} />}
+                                        {label === ProcessIOCardType.OUTPUT && <>
+                                            {outputUuid && <Typography className={classes.collectionLink}>
+                                                Output Collection: <MuiLink className={classes.keepLink} onClick={() => {navigateTo(outputUuid || "")}}>
+                                                {outputUuid}
+                                            </MuiLink></Typography>}
+                                            <ProcessOutputCollectionFiles isWritable={false} currentItemUuid={outputUuid} />
+                                        </>}
+                                    </div>
+                                </> :
+                                <Grid container item alignItems='center' justify='center'>
+                                    <DefaultView messages={["No collection(s) found"]} />
+                                </Grid>
+                            }
                         </>)
                     }
                 </div>

commit dcae2a9e192de09e9b99a3aa80888f04ed1305d6
Author: Stephen Smith <stephen at curii.com>
Date:   Tue Sep 20 12:56:46 2022 -0400

    16073: Use inbox/outbox icons for io panels from materialdesignicons.com
    
    Arvados-DCO-1.1-Signed-off-by: Stephen Smith <stephen at curii.com>

diff --git a/src/components/icon/icon.tsx b/src/components/icon/icon.tsx
index 0457bbb1..6eda97dc 100644
--- a/src/components/icon/icon.tsx
+++ b/src/components/icon/icon.tsx
@@ -3,7 +3,7 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import React from 'react';
-import { Badge, Tooltip } from '@material-ui/core';
+import { Badge, SvgIcon, Tooltip } from '@material-ui/core';
 import Add from '@material-ui/icons/Add';
 import ArrowBack from '@material-ui/icons/ArrowBack';
 import ArrowDropDown from '@material-ui/icons/ArrowDropDown';
@@ -34,6 +34,7 @@ import Help from '@material-ui/icons/Help';
 import HelpOutline from '@material-ui/icons/HelpOutline';
 import History from '@material-ui/icons/History';
 import Inbox from '@material-ui/icons/Inbox';
+import MoveToInbox from '@material-ui/icons/MoveToInbox';
 import Info from '@material-ui/icons/Info';
 import Input from '@material-ui/icons/Input';
 import InsertDriveFile from '@material-ui/icons/InsertDriveFile';
@@ -72,8 +73,6 @@ import ExitToApp from '@material-ui/icons/ExitToApp';
 import CheckCircleOutline from '@material-ui/icons/CheckCircleOutline';
 import RemoveCircleOutline from '@material-ui/icons/RemoveCircleOutline';
 import NotInterested from '@material-ui/icons/NotInterested';
-import Archive from '@material-ui/icons/Archive';
-import Unarchive from '@material-ui/icons/Unarchive';
 import Image from '@material-ui/icons/Image';
 
 // Import FontAwesome icons
@@ -113,6 +112,18 @@ export const CollectionOldVersionIcon = (props: any) =>
         </Badge>
     </Tooltip>;
 
+// https://materialdesignicons.com/icon/image-off
+export const ImageOffIcon = (props: any) =>
+    <SvgIcon {...props}>
+        <path d="M21 17.2L6.8 3H19C20.1 3 21 3.9 21 5V17.2M20.7 22L19.7 21H5C3.9 21 3 20.1 3 19V4.3L2 3.3L3.3 2L22 20.7L20.7 22M16.8 18L12.9 14.1L11 16.5L8.5 13.5L5 18H16.8Z" />
+    </SvgIcon>;
+
+// https://materialdesignicons.com/icon/inbox-arrow-up
+export const OutputIcon: IconType = (props: any) =>
+    <SvgIcon {...props}>
+        <path d="M14,14H10V11H8L12,7L16,11H14V14M16,11M5,15V5H19V15H15A3,3 0 0,1 12,18A3,3 0 0,1 9,15H5M19,3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3" />
+    </SvgIcon>;
+
 export type IconType = React.SFC<{ className?: string, style?: object }>;
 
 export const AddIcon: IconType = (props) => <Add {...props} />;
@@ -150,8 +161,7 @@ export const MoveToIcon: IconType = (props) => <Input {...props} />;
 export const NewProjectIcon: IconType = (props) => <CreateNewFolder {...props} />;
 export const NotificationIcon: IconType = (props) => <Notifications {...props} />;
 export const OpenIcon: IconType = (props) => <OpenInNew {...props} />;
-export const InputIcon: IconType = (props) => <Archive {...props} />;
-export const OutputIcon: IconType = (props) => <Unarchive {...props} />;
+export const InputIcon: IconType = (props) => <MoveToInbox {...props} />;
 export const PaginationDownIcon: IconType = (props) => <ArrowDropDown {...props} />;
 export const PaginationLeftArrowIcon: IconType = (props) => <ChevronLeft {...props} />;
 export const PaginationRightArrowIcon: IconType = (props) => <ChevronRight {...props} />;
diff --git a/src/views/process-panel/process-io-card.tsx b/src/views/process-panel/process-io-card.tsx
index 04cbd8eb..282ce936 100644
--- a/src/views/process-panel/process-io-card.tsx
+++ b/src/views/process-panel/process-io-card.tsx
@@ -26,7 +26,7 @@ import {
     Chip,
 } from '@material-ui/core';
 import { ArvadosTheme } from 'common/custom-theme';
-import { CloseIcon, ImageIcon, InfoIcon, InputIcon, InvisibleIcon, OutputIcon, VisibleIcon } from 'components/icon/icon';
+import { CloseIcon, ImageIcon, InfoIcon, InputIcon, ImageOffIcon, OutputIcon } from 'components/icon/icon';
 import { MPVPanelProps } from 'components/multi-panel-view/multi-panel-view';
 import {
   BooleanCommandInputParameter,
@@ -213,7 +213,7 @@ export const ProcessIOCard = withStyles(styles)(connect(null, mapDispatchToProps
                 action={
                     <div>
                         { mainProcess && <Tooltip title={"Toggle Image Preview"} disableFocusListener>
-                            <IconButton data-cy="io-preview-image-toggle" onClick={() =>{setShowImagePreview(!showImagePreview)}}>{showImagePreview ? <VisibleIcon /> : <InvisibleIcon />}</IconButton>
+                            <IconButton data-cy="io-preview-image-toggle" onClick={() =>{setShowImagePreview(!showImagePreview)}}>{showImagePreview ? <ImageIcon /> : <ImageOffIcon />}</IconButton>
                         </Tooltip> }
                         { doHidePanel &&
                         <Tooltip title={`Close ${panelName || 'panel'}`} disableFocusListener>

commit 8f5b7486c0f30337f5fc0b9b31b4cceaef7e08b1
Author: Stephen Smith <stephen at curii.com>
Date:   Tue Sep 20 12:51:17 2022 -0400

    16073: Remove doc from io panels
    
    Arvados-DCO-1.1-Signed-off-by: Stephen Smith <stephen at curii.com>

diff --git a/src/views/process-panel/process-io-card.tsx b/src/views/process-panel/process-io-card.tsx
index e1daa256..04cbd8eb 100644
--- a/src/views/process-panel/process-io-card.tsx
+++ b/src/views/process-panel/process-io-card.tsx
@@ -276,7 +276,6 @@ export type ProcessIOValue = {
 export type ProcessIOParameter = {
     id: string;
     label: string;
-    doc: string;
     value: ProcessIOValue[];
 }
 
@@ -294,7 +293,6 @@ const ProcessIOPreview = withStyles(styles)(
                 <TableRow>
                     <TableCell>Name</TableCell>
                     <TableCell>Label</TableCell>
-                    <TableCell>Description</TableCell>
                     <TableCell>Value</TableCell>
                     <TableCell>Collection</TableCell>
                 </TableRow>
@@ -311,7 +309,6 @@ const ProcessIOPreview = withStyles(styles)(
                                 {param.id}
                             </TableCell>
                             <TableCell >{param.label}</TableCell>
-                            <TableCell >{param.doc}</TableCell>
                             <TableCell>
                                 {firstVal && <ProcessValuePreview value={firstVal} showImagePreview={showImagePreview} />}
                             </TableCell>
@@ -323,7 +320,6 @@ const ProcessIOPreview = withStyles(styles)(
                         </TableRow>
                         {rest.map((val, i) => (
                             <TableRow className={(i < rest.length-1) ? rowClass : undefined}>
-                                <TableCell />
                                 <TableCell />
                                 <TableCell />
                                 <TableCell>
diff --git a/src/views/process-panel/process-panel-root.tsx b/src/views/process-panel/process-panel-root.tsx
index 4508f5ac..5174d300 100644
--- a/src/views/process-panel/process-panel-root.tsx
+++ b/src/views/process-panel/process-panel-root.tsx
@@ -168,11 +168,9 @@ export const ProcessPanelRoot = withStyles(styles)(
 
 const formatInputData = (inputs: CommandInputParameter[], auth: AuthState): ProcessIOParameter[] => {
     return inputs.map(input => {
-        const doc = Array.isArray(input.doc) ? input.doc.join(', ') : input.doc || "";
         return {
             id: getIOParamId(input),
             label: input.label || "",
-            doc: doc.substring(0,50) + (doc.length > 50 ? "..." : ""),
             value: getIOParamDisplayValue(auth, input)
         };
     });
@@ -180,11 +178,9 @@ const formatInputData = (inputs: CommandInputParameter[], auth: AuthState): Proc
 
 const formatOutputData = (definitions: CommandOutputParameter[], values: any, pdh: string | undefined, auth: AuthState): ProcessIOParameter[] => {
     return definitions.map(output => {
-        const doc = Array.isArray(output.doc) ? output.doc.join(', ') : output.doc || "";
         return {
             id: getIOParamId(output),
             label: output.label || "",
-            doc: doc.substring(0,50) + (doc.length > 50 ? "..." : ""),
             value: getIOParamDisplayValue(auth, Object.assign(output, { value: values[getIOParamId(output)] || [] }), pdh)
         };
     });

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list