Merge branch '19069-workflow-launching' into 19143-project-list-workflows
authorPeter Amstutz <peter.amstutz@curii.com>
Mon, 23 May 2022 15:15:44 +0000 (11:15 -0400)
committerPeter Amstutz <peter.amstutz@curii.com>
Mon, 23 May 2022 15:15:44 +0000 (11:15 -0400)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz@curii.com>

1  2 
src/store/navigation/navigation-action.ts
src/store/resource-type-filters/resource-type-filters.ts
src/views/workflow-panel/workflow-description-card.tsx

index 973ba25a36645b7b0d00178239d72c95d085efde,9a4f31fd2fb67161ceb1df602f89413fc076dfbc..c8811bf43955a92ad493ddc6e2acc28e8846b1b3
@@@ -8,7 -8,6 +8,7 @@@ import { ResourceKind, extractUuidKind 
  import { SidePanelTreeCategory } from '../side-panel-tree/side-panel-tree-actions';
  import { Routes, getGroupUrl, getNavUrl, getUserProfileUrl } from 'routes/routes';
  import { RootState } from 'store/store';
 +import { openDetailsPanel } from 'store/details-panel/details-panel-action';
  import { ServiceRepository } from 'services/services';
  import { pluginConfig } from 'plugins';
  import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
@@@ -41,9 -40,6 +41,9 @@@ export const navigateTo = (uuid: string
              case ResourceKind.VIRTUAL_MACHINE:
                  dispatch<any>(navigateToAdminVirtualMachines);
                  return;
 +            case ResourceKind.WORKFLOW:
 +                dispatch<any>(openDetailsPanel(uuid));
 +                return;
          }
  
          switch (uuid) {
@@@ -62,9 -58,6 +62,6 @@@
              case SidePanelTreeCategory.SHARED_WITH_ME:
                  dispatch(navigateToSharedWithMe);
                  return;
-             case SidePanelTreeCategory.WORKFLOWS:
-                 dispatch(navigateToWorkflows);
-                 return;
              case SidePanelTreeCategory.TRASH:
                  dispatch(navigateToTrash);
                  return;
index b1c52e4f72b8e10cd765ec0bd9d927d73ba3192a,0539cefecc93dc74df0912b8450d81613c9e566b..64a391ca9e5419ac7c3e9c79e4e4a04606304c93
@@@ -27,7 -27,6 +27,7 @@@ export enum ObjectTypeFilter 
      PROJECT = 'Project',
      PROCESS = 'Process',
      COLLECTION = 'Data collection',
 +    WORKFLOW = 'Workflow',
  }
  
  export enum GroupTypeFilter {
@@@ -39,6 -38,7 +39,7 @@@ export enum CollectionTypeFilter 
      GENERAL_COLLECTION = 'General',
      OUTPUT_COLLECTION = 'Output',
      LOG_COLLECTION = 'Log',
+     INTERMEDIATE_COLLECTION = 'Intermediate',
  }
  
  export enum ProcessTypeFilter {
@@@ -63,7 -63,6 +64,7 @@@ export const getSimpleObjectTypeFilter
      initFilter(ObjectTypeFilter.PROJECT),
      initFilter(ObjectTypeFilter.PROCESS),
      initFilter(ObjectTypeFilter.COLLECTION),
 +    initFilter(ObjectTypeFilter.WORKFLOW),
  );
  
  // Using pipe() with more than 7 arguments makes the return type be 'any',
@@@ -84,10 -83,9 +85,11 @@@ export const getInitialResourceTypeFilt
          initFilter(ObjectTypeFilter.COLLECTION),
          initFilter(CollectionTypeFilter.GENERAL_COLLECTION, ObjectTypeFilter.COLLECTION),
          initFilter(CollectionTypeFilter.OUTPUT_COLLECTION, ObjectTypeFilter.COLLECTION),
+         initFilter(CollectionTypeFilter.INTERMEDIATE_COLLECTION, ObjectTypeFilter.COLLECTION),
          initFilter(CollectionTypeFilter.LOG_COLLECTION, ObjectTypeFilter.COLLECTION),
      ),
 +    initFilter(ObjectTypeFilter.WORKFLOW)
 +
  );
  
  export const getInitialProcessTypeFilters = pipe(
@@@ -115,6 -113,7 +117,7 @@@ export const getTrashPanelTypeFilters 
      initFilter(ObjectTypeFilter.COLLECTION),
      initFilter(CollectionTypeFilter.GENERAL_COLLECTION, ObjectTypeFilter.COLLECTION),
      initFilter(CollectionTypeFilter.OUTPUT_COLLECTION, ObjectTypeFilter.COLLECTION),
+     initFilter(CollectionTypeFilter.INTERMEDIATE_COLLECTION, ObjectTypeFilter.COLLECTION),
      initFilter(CollectionTypeFilter.LOG_COLLECTION, ObjectTypeFilter.COLLECTION),
  );
  
@@@ -134,8 -133,6 +137,8 @@@ const objectTypeToResourceKind = (type
              return ResourceKind.PROCESS;
          case ObjectTypeFilter.COLLECTION:
              return ResourceKind.COLLECTION;
 +        case ObjectTypeFilter.WORKFLOW:
 +            return ResourceKind.WORKFLOW;
      }
  };
  
@@@ -173,6 -170,10 +176,10 @@@ const collectionTypeToPropertyValue = (
              return CollectionType.OUTPUT;
          case CollectionTypeFilter.LOG_COLLECTION:
              return CollectionType.LOG;
+         case CollectionTypeFilter.INTERMEDIATE_COLLECTION:
+             return CollectionType.INTERMEDIATE;
+         default:
+             return CollectionType.GENERAL;
      }
  };
  
index e93caea4debc6bfd6961b37ee2b8062dfb62ba65,d03f46e4565941a094eac0c6a8dfa86c02a0a3d7..f25a8e648c6f0e1e221ef120445d22c6dc7078b4
@@@ -15,14 -15,15 +15,16 @@@ import 
      TableCell,
      TableBody,
      TableRow,
 -    Grid,
  } from '@material-ui/core';
  import { ArvadosTheme } from 'common/custom-theme';
  import { WorkflowIcon } from 'components/icon/icon';
  import { DataTableDefaultView } from 'components/data-table-default-view/data-table-default-view';
- // import { WorkflowGraph } from "views/workflow-panel/workflow-graph";
 +import { parseWorkflowDefinition, getWorkflowInputs, getInputLabel, stringifyInputType } from 'models/workflow';
 +import { WorkflowDetailsCardDataProps, WorkflowDetailsAttributes } from 'views-components/details-panel/workflow-details';
+ import { WorkflowResource, parseWorkflowDefinition, getWorkflowInputs, getInputLabel, stringifyInputType } from 'models/workflow';
+ import { DetailsAttribute } from 'components/details-attribute/details-attribute';
+ import { ResourceOwnerWithName } from 'views-components/data-explorer/renderers';
+ import { formatDate } from "common/formatters";
  
  export type CssRules = 'root' | 'tab' | 'inputTab' | 'graphTab' | 'graphTabWithChosenWorkflow' | 'descriptionTab' | 'inputsTable';
  
@@@ -56,6 -57,10 +58,6 @@@ const styles: StyleRulesCallback<CssRul
      },
  });
  
 -interface WorkflowDetailsCardDataProps {
 -    workflow?: WorkflowResource;
 -}
 -
  type WorkflowDetailsCardProps = WorkflowDetailsCardDataProps & WithStyles<CssRules>;
  
  export const WorkflowDetailsCard = withStyles(styles)(
@@@ -76,7 -81,6 +78,6 @@@
                      <Tab className={classes.tab} label="Description" />
                      <Tab className={classes.tab} label="Inputs" />
                      <Tab className={classes.tab} label="Details" />
-                     {/* <Tab className={classes.tab} label="Graph" /> */}
                  </Tabs>
                  {value === 0 && <CardContent className={classes.descriptionTab}>
                      {workflow ? <div>
                              messages={['Please select a workflow to see its inputs.']} />
                      }
                  </CardContent>}
-                 {/* {value === 2 && <CardContent className={workflow ? classes.graphTabWithChosenWorkflow : classes.graphTab}>
-                     {workflow
-                     ? <WorkflowGraph workflow={workflow} />
-                     : <DataTableDefaultView
-                     icon={WorkflowIcon}
-                     messages={['Please select a workflow to see its visualisation.']} />
-                     }
-                     </CardContent>} */}
                  {value === 2 && <CardContent className={classes.descriptionTab}>
                      {workflow
                          ? <WorkflowDetailsAttributes workflow={workflow} />
              </Table>;
          }
      });
 -
 -export const WorkflowDetailsAttributes = ({ workflow }: WorkflowDetailsCardDataProps) => {
 -    return <Grid container>
 -        <Grid item xs={12} >
 -            <DetailsAttribute
 -                label={"Workflow UUID"}
 -                linkToUuid={workflow?.uuid} />
 -        </Grid>
 -        <Grid item xs={12} >
 -            <DetailsAttribute
 -                label='Owner' linkToUuid={workflow?.ownerUuid}
 -                uuidEnhancer={(uuid: string) => <ResourceOwnerWithName uuid={uuid} />} />
 -        </Grid>
 -        <Grid item xs={12}>
 -            <DetailsAttribute label='Created at' value={formatDate(workflow?.createdAt)} />
 -        </Grid>
 -        <Grid item xs={12}>
 -            <DetailsAttribute label='Last modified' value={formatDate(workflow?.modifiedAt)} />
 -        </Grid>
 -        <Grid item xs={12} >
 -            <DetailsAttribute
 -                label='Last modified by user' linkToUuid={workflow?.modifiedByUserUuid}
 -                uuidEnhancer={(uuid: string) => <ResourceOwnerWithName uuid={uuid} />} />
 -        </Grid>
 -    </Grid >;
 -};