17119: the "Move to" dialog should not show filter groups as a potential
authorWard Vandewege <ward@curii.com>
Thu, 11 Mar 2021 17:37:39 +0000 (12:37 -0500)
committerWard Vandewege <ward@curii.com>
Thu, 11 Mar 2021 21:29:18 +0000 (16:29 -0500)
       destination.

Arvados-DCO-1.1-Signed-off-by: Ward Vandewege <ward@curii.com>

src/store/tree-picker/tree-picker-actions.ts

index d11f7527b4e0d7d18a1e6e9d1a0ecbddfae67e35..5d12b419ebe898e2666131e9d5bb85b4adcb98b0 100644 (file)
@@ -21,7 +21,7 @@ import { mapTree } from '../../models/tree';
 import { LinkResource, LinkClass } from "~/models/link";
 import { mapTreeValues } from "~/models/tree";
 import { sortFilesTree } from "~/services/collection-service/collection-service-files-response";
-import { GroupResource } from "~/models/group";
+import { GroupClass, GroupResource } from "~/models/group";
 
 export const treePickerActions = unionize({
     LOAD_TREE_PICKER_NODE: ofType<{ id: string, pickerId: string }>(),
@@ -101,11 +101,12 @@ interface LoadProjectParams {
     pickerId: string;
     includeCollections?: boolean;
     includeFiles?: boolean;
+    includeFilterGroups?: boolean;
     loadShared?: boolean;
 }
 export const loadProject = (params: LoadProjectParams) =>
     async (dispatch: Dispatch, _: () => RootState, services: ServiceRepository) => {
-        const { id, pickerId, includeCollections = false, includeFiles = false, loadShared = false } = params;
+        const { id, pickerId, includeCollections = false, includeFiles = false, includeFilterGroups = false, loadShared = false } = params;
 
         dispatch(treePickerActions.LOAD_TREE_PICKER_NODE({ id, pickerId }));
 
@@ -121,7 +122,12 @@ export const loadProject = (params: LoadProjectParams) =>
         dispatch<any>(receiveTreePickerData<GroupContentsResource>({
             id,
             pickerId,
-            data: items,
+            data: items.filter((item) => {
+                    if (!includeFilterGroups && (item as GroupResource).groupClass && (item as GroupResource).groupClass === GroupClass.FILTER) {
+                        return false;
+                    }
+                    return true;
+                }),
             extractNodeData: item => ({
                 id: item.uuid,
                 value: item,