Merge branch 'master'
authorMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Mon, 20 Aug 2018 09:23:39 +0000 (11:23 +0200)
committerMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Mon, 20 Aug 2018 09:23:39 +0000 (11:23 +0200)
Feature #14014

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski@contractors.roche.com>

1  2 
src/services/collection-service/collection-service.ts
src/store/collection-panel/collection-panel-files/collection-panel-files-reducer.ts
src/store/collection-panel/collection-panel-files/collection-panel-files-state.ts
src/views/workbench/workbench.tsx

index a34fc21e9af2281c82e59c7af72767b71964e683,dde622a7d7ca5c06ddd9287b653addd156459213..57961538708c900b56631e47e33639a90d66a559
@@@ -2,9 -2,9 +2,9 @@@
  //
  // SPDX-License-Identifier: AGPL-3.0
  
 -import { CollectionPanelFilesState, CollectionPanelFile, CollectionPanelDirectory, mapCollectionFileToCollectionPanelFile, mergeCollectionPanelFilesStates } from "./collection-panel-files-state";
 +import { CollectionPanelFilesState, CollectionPanelFile, CollectionPanelDirectory, mapCollectionFileToCollectionPanelFile, mergeCollectionPanelFilesStates } from './collection-panel-files-state';
  import { CollectionPanelFilesAction, collectionPanelFilesAction } from "./collection-panel-files-actions";
- import { createTree, mapTreeValues, getNode, setNode, getNodeAncestors, getNodeDescendants, setNodeValueWith, mapTree } from "~/models/tree";
+ import { createTree, mapTreeValues, getNode, setNode, getNodeAncestorsIds, getNodeDescendantsIds, setNodeValueWith, mapTree } from "~/models/tree";
  import { CollectionFileType } from "~/models/collection-file";
  
  export const collectionPanelFilesReducer = (state: CollectionPanelFilesState = createTree(), action: CollectionPanelFilesAction) => {
index 8c5ebd72936a5d60e0714589e33b6635187b47bd,35b81d2e121e134b1b10f8aad6223a0267da9765..9d5b06cea6b9c94f74e5fadbebd022b5b6366178
@@@ -34,14 -34,4 +34,12 @@@ export const mergeCollectionPanelFilesS
                  : { ...value, selected: oldValue.selected }
              : value;
      })(newState);
 -}; 
 +};
 +
 +export const filterCollectionFilesBySelection = (tree: CollectionPanelFilesState, selected: boolean) => {
-     const allFiles = getNodeDescendants('')(tree)
-         .map(id => getNodeValue(id)(tree))
-         .filter(file => file !== undefined) as Array<CollectionPanelDirectory | CollectionPanelFile>;
++    const allFiles = getNodeDescendants('')(tree).map(node => node.value);
 +
 +    const selectedDirectories = allFiles.filter(file => file.selected === selected && file.type === CollectionFileType.DIRECTORY);
 +    const selectedFiles = allFiles.filter(file => file.selected === selected && !selectedDirectories.some(dir => dir.id === file.path));
 +    return [...selectedDirectories, ...selectedFiles];
 +};
Simple merge