Merge branch 'master' into 14225-prepare-structure-and-init-stepper
authorJanicki Artur <artur.janicki@contractors.roche.com>
Fri, 28 Sep 2018 07:37:34 +0000 (09:37 +0200)
committerJanicki Artur <artur.janicki@contractors.roche.com>
Fri, 28 Sep 2018 07:37:34 +0000 (09:37 +0200)
refs #14225

Arvados-DCO-1.1-Signed-off-by: Janicki Artur <artur.janicki@contractors.roche.com>

1  2 
src/routes/route-change-handlers.ts
src/routes/routes.ts
src/store/navigation/navigation-action.ts
src/store/store.ts
src/store/workbench/workbench-actions.ts
src/views/workbench/workbench.tsx

index 9b56a7fc4ca4099d8866ea97855815171468db4b,97613147cc7087a491f6ba5682008141ff81ce96..af3bdab4b092ca61781747eb24a91733fdd20dd0
@@@ -4,10 -4,10 +4,10 @@@
  
  import { History, Location } from 'history';
  import { RootStore } from '~/store/store';
- import { matchProcessRoute, matchProcessLogRoute, matchProjectRoute, matchCollectionRoute, matchFavoritesRoute, matchTrashRoute, matchRootRoute, matchSharedWithMeRoute, matchRunProcessRoute } from './routes';
 -import { matchProcessRoute, matchProcessLogRoute, matchProjectRoute, matchCollectionRoute, matchFavoritesRoute, matchTrashRoute, matchRootRoute, matchSharedWithMeRoute, matchWorkflowRoute } from './routes';
++import { matchProcessRoute, matchProcessLogRoute, matchProjectRoute, matchCollectionRoute, matchFavoritesRoute, matchTrashRoute, matchRootRoute, matchSharedWithMeRoute, matchRunProcessRoute, matchWorkflowRoute } from './routes';
  import { loadProject, loadCollection, loadFavorites, loadTrash, loadProcess, loadProcessLog } from '~/store/workbench/workbench-actions';
  import { navigateToRootProject } from '~/store/navigation/navigation-action';
- import { loadSharedWithMe, loadRunProcess } from '../store/workbench/workbench-actions';
 -import { loadSharedWithMe, loadWorkflow } from '~/store/workbench/workbench-actions';
++import { loadSharedWithMe, loadRunProcess, loadWorkflow } from '../store/workbench/workbench-actions';
  
  export const addRouteChangeHandlers = (history: History, store: RootStore) => {
      const handler = handleLocationChange(store);
@@@ -24,7 -24,7 +24,8 @@@ const handleLocationChange = (store: Ro
      const processMatch = matchProcessRoute(pathname);
      const processLogMatch = matchProcessLogRoute(pathname);
      const sharedWithMeMatch = matchSharedWithMeRoute(pathname);
 +    const runProcessMatch = matchRunProcessRoute(pathname);
+     const workflowMatch = matchWorkflowRoute(pathname);
  
      if (projectMatch) {
          store.dispatch(loadProject(projectMatch.params.id));
@@@ -42,7 -42,7 +43,9 @@@
          store.dispatch(navigateToRootProject);
      } else if (sharedWithMeMatch) {
          store.dispatch(loadSharedWithMe);
 +    } else if (runProcessMatch) {
 +        store.dispatch(loadRunProcess);
+     } else if (workflowMatch) {
+         store.dispatch(loadWorkflow);
      }
  };
index 4e8cf366ac3c0b4d7060f3b107fb48eec6c0ac9f,34b15e1132f18cd35c6ec24b04c299ae16cf8925..432cf750cb2f28f24e75d1986fe8064503f3b21e
@@@ -17,7 -17,7 +17,8 @@@ export const Routes = 
      TRASH: '/trash',
      PROCESS_LOGS: `/process-logs/:id(${RESOURCE_UUID_PATTERN})`,
      SHARED_WITH_ME: '/shared-with-me',
-     RUN_PROCESS: '/run-process'
++    RUN_PROCESS: '/run-process',
+     WORKFLOWS: '/workflows'
  };
  
  export const getResourceUrl = (uuid: string) => {
@@@ -66,5 -66,5 +67,8 @@@ export const matchProcessLogRoute = (ro
  export const matchSharedWithMeRoute = (route: string) =>
      matchPath(route, { path: Routes.SHARED_WITH_ME });
  
-     matchPath(route, { path: Routes.RUN_PROCESS });
 +export const matchRunProcessRoute = (route: string) =>
++    matchPath(route, { path: Routes.RUN_PROCESS });
++    
+ export const matchWorkflowRoute = (route: string) =>
+     matchPath<ResourceRouteParams>(route, { path: Routes.WORKFLOWS });
index 6fb0305c9d079cc2442d2113b9f81077b85baa49,16d0d055e30d9c100f8985e071ceee1e63768dd8..21e5029a0338bd1e56512e4c0d977db3a72ec552
@@@ -35,7 -35,8 +35,9 @@@ import { processPanelReducer } from '~/
  import { SHARED_WITH_ME_PANEL_ID } from '~/store/shared-with-me-panel/shared-with-me-panel-actions';
  import { SharedWithMeMiddlewareService } from './shared-with-me-panel/shared-with-me-middleware-service';
  import { progressIndicatorReducer } from './progress-indicator/progress-indicator-reducer';
 +import { runProcessPanelReducer } from '~/store/run-process-panel/run-process-panel-reducer';
+ import { WorkflowMiddlewareService } from './workflow-panel/workflow-middleware-service';
+ import { WORKFLOW_PANEL_ID } from './workflow-panel/workflow-panel-actions';
  
  const composeEnhancers =
      (process.env.NODE_ENV === 'development' &&
index a7614c4da6d1d30f6eca38fbf700e4b40c715657,8f034ec0383b4f61cb4e8b5b98ebe688e9da0e4f..2586fdc55bca865f491616f8b9ef31bf751a47ba
@@@ -348,12 -350,11 +351,18 @@@ export const loadSharedWithMe = handleF
      await dispatch<any>(setSidePanelBreadcrumbs(SidePanelTreeCategory.SHARED_WITH_ME));
  });
  
 +export const loadRunProcess = handleFirstTimeLoad(
 +    async (dispatch: Dispatch) => {
 +        dispatch<any>(loadRunProcessPanel());
 +    }
 +);
 +
+ export const loadWorkflow = handleFirstTimeLoad(async (dispatch: Dispatch<any>) => {
+     dispatch(activateSidePanelTreeItem(SidePanelTreeCategory.WORKFLOWS));
+     await dispatch(loadWorkflowPanel());
+     dispatch(setSidePanelBreadcrumbs(SidePanelTreeCategory.WORKFLOWS));
+ });
++
  const finishLoadingProject = (project: GroupContentsResource | string) =>
      async (dispatch: Dispatch<any>) => {
          const uuid = typeof project === 'string' ? project : project.uuid;
index 3a68a710c2beb7696e9ef20b92cba33f0b90e79b,776850ceb8950ffe89b2fa7f1e7fc58414dce685..47e22541508dfb7d7650006096c20a4138472d25
@@@ -33,13 -33,13 +33,14 @@@ import { MoveProjectDialog } from '~/vi
  import { MoveCollectionDialog } from '~/views-components/dialog-forms/move-collection-dialog';
  import { FilesUploadCollectionDialog } from '~/views-components/dialog-forms/files-upload-collection-dialog';
  import { PartialCopyCollectionDialog } from '~/views-components/dialog-forms/partial-copy-collection-dialog';
 -import { TrashPanel } from "~/views/trash-panel/trash-panel";
 +import { ProcessCommandDialog } from '~/views-components/process-command-dialog/process-command-dialog';
  import { MainContentBar } from '~/views-components/main-content-bar/main-content-bar';
  import { Grid } from '@material-ui/core';
 -import { SharedWithMePanel } from '../shared-with-me-panel/shared-with-me-panel';
 +import { TrashPanel } from "~/views/trash-panel/trash-panel";
 +import { SharedWithMePanel } from '~/views/shared-with-me-panel/shared-with-me-panel';
 +import { RunProcessPanel } from '~/views/run-process-panel/run-process-panel';
  import SplitterLayout from 'react-splitter-layout';
 -import { ProcessCommandDialog } from '~/views-components/process-command-dialog/process-command-dialog';
+ import { WorkflowPanel } from '~/views/workflow-panel/workflow-panel';
  
  type CssRules = 'root' | 'container' | 'splitter' | 'asidePanel' | 'contentWrapper' | 'content';
  
@@@ -95,7 -95,7 +96,8 @@@ export const WorkbenchPanel 
                                  <Route path={Routes.TRASH} component={TrashPanel} />
                                  <Route path={Routes.PROCESS_LOGS} component={ProcessLogPanel} />
                                  <Route path={Routes.SHARED_WITH_ME} component={SharedWithMePanel} />
 +                                <Route path={Routes.RUN_PROCESS} component={RunProcessPanel} />
+                                 <Route path={Routes.WORKFLOWS} component={WorkflowPanel} />
                              </Switch>
                          </Grid>
                      </Grid>