merge master
authorPawel Kowalczyk <pawel.kowalczyk@contractors.roche.com>
Tue, 4 Sep 2018 10:23:31 +0000 (12:23 +0200)
committerPawel Kowalczyk <pawel.kowalczyk@contractors.roche.com>
Tue, 4 Sep 2018 10:23:31 +0000 (12:23 +0200)
Feature #13860

Arvados-DCO-1.1-Signed-off-by: Pawel Kowalczyk <pawel.kowalczyk@contractors.roche.com>

1  2 
src/routes/routes.ts
src/store/store.ts

diff --combined src/routes/routes.ts
index 30040e6d84f7d189a56d323d205834e86055da37,05a8ab099ce1db395fb42f67561f330f3adae289..ac02dbcfca175cd2b1750913b56b52114ea67518
@@@ -6,10 -6,10 +6,10 @@@ import { History, Location } from 'hist
  import { RootStore } from '~/store/store';
  import { matchPath } from 'react-router';
  import { ResourceKind, RESOURCE_UUID_PATTERN, extractUuidKind } from '~/models/resource';
- import { getProjectUrl } from '../models/project';
+ import { getProjectUrl } from '~/models/project';
  import { getCollectionUrl } from '~/models/collection';
- import { loadProject, loadFavorites, loadCollection, loadProcessLog } from '~/store/workbench/workbench-actions';
+ import { loadProject, loadFavorites, loadCollection, loadTrash, loadProcessLog } from '~/store/workbench/workbench-actions';
 -import { loadProcess } from '~/store/processes/processes-actions';
 +import { loadProcessPanel } from '~/store/process-panel/process-panel-actions';
  
  export const Routes = {
      ROOT: '/',
@@@ -18,6 -18,7 +18,7 @@@
      COLLECTIONS: `/collections/:id(${RESOURCE_UUID_PATTERN})`,
      PROCESSES: `/processes/:id(${RESOURCE_UUID_PATTERN})`,
      FAVORITES: '/favorites',
+     TRASH: '/trash',
      PROCESS_LOGS: `/process-logs/:id(${RESOURCE_UUID_PATTERN})`
  };
  
@@@ -43,15 -44,18 +44,18 @@@ export const addRouteChangeHandlers = (
      history.listen(handler);
  };
  
+ export interface ResourceRouteParams {
+     id: string;
+ }
  export const matchRootRoute = (route: string) =>
      matchPath(route, { path: Routes.ROOT, exact: true });
  
  export const matchFavoritesRoute = (route: string) =>
      matchPath(route, { path: Routes.FAVORITES });
  
- export interface ResourceRouteParams {
-     id: string;
- }
+ export const matchTrashRoute = (route: string) =>
+     matchPath(route, { path: Routes.TRASH });
  
  export const matchProjectRoute = (route: string) =>
      matchPath<ResourceRouteParams>(route, { path: Routes.PROJECTS });
@@@ -69,6 -73,7 +73,7 @@@ const handleLocationChange = (store: Ro
      const projectMatch = matchProjectRoute(pathname);
      const collectionMatch = matchCollectionRoute(pathname);
      const favoriteMatch = matchFavoritesRoute(pathname);
+     const trashMatch = matchTrashRoute(pathname);
      const processMatch = matchProcessRoute(pathname);
      const processLogMatch = matchProcessLogRoute(pathname);
      
          store.dispatch(loadCollection(collectionMatch.params.id));
      } else if (favoriteMatch) {
          store.dispatch(loadFavorites());
+     } else if (trashMatch) {
+         store.dispatch(loadTrash());
      } else if (processMatch) {
 -        store.dispatch(loadProcess(processMatch.params.id));
 +        store.dispatch(loadProcessPanel(processMatch.params.id));
      } else if (processLogMatch) {
          store.dispatch(loadProcessLog(processLogMatch.params.id));
      }
diff --combined src/store/store.ts
index 63396fb9bbeab5b6ebe18e2d8b2a18fe2251bac5,01aca598be44d384a052e4d4d5f85c6955e2d9b8..9b4f42b84fc81d8d64b2177c0187a6ee94fb60c9
@@@ -28,8 -28,9 +28,10 @@@ import { resourcesReducer } from '~/sto
  import { propertiesReducer } from './properties/properties-reducer';
  import { RootState } from './store';
  import { fileUploaderReducer } from './file-uploader/file-uploader-reducer';
+ import { TrashPanelMiddlewareService } from "~/store/trash-panel/trash-panel-middleware-service";
+ import { TRASH_PANEL_ID } from "~/store/trash-panel/trash-panel-action";
  import { processLogsPanelReducer } from './process-logs-panel/process-logs-panel-reducer';
 +import { processPanelReducer } from '~/store/process-panel/process-panel-reducer';
  
  const composeEnhancers =
      (process.env.NODE_ENV === 'development' &&
@@@ -49,12 -50,16 +51,16 @@@ export function configureStore(history
      const favoritePanelMiddleware = dataExplorerMiddleware(
          new FavoritePanelMiddlewareService(services, FAVORITE_PANEL_ID)
      );
+     const trashPanelMiddleware = dataExplorerMiddleware(
+         new TrashPanelMiddlewareService(services, TRASH_PANEL_ID)
+     );
  
      const middlewares: Middleware[] = [
          routerMiddleware(history),
          thunkMiddleware.withExtraArgument(services),
          projectPanelMiddleware,
-         favoritePanelMiddleware
+         favoritePanelMiddleware,
+         trashPanelMiddleware
      ];
      const enhancer = composeEnhancers(applyMiddleware(...middlewares));
      return createStore(rootReducer, enhancer);
@@@ -77,5 -82,4 +83,5 @@@ const createRootReducer = (services: Se
      snackbar: snackbarReducer,
      treePicker: treePickerReducer,
      fileUploader: fileUploaderReducer,
 +    processPanel: processPanelReducer
  });