X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/d70bcf2acdaaae12a403cdcf047e7514b145d6e4..ae946826d1670cb786688e859bc1f3257150ae75:/src/store/tree-picker/tree-picker-actions.ts diff --git a/src/store/tree-picker/tree-picker-actions.ts b/src/store/tree-picker/tree-picker-actions.ts index d11f7527..06abe39f 100644 --- a/src/store/tree-picker/tree-picker-actions.ts +++ b/src/store/tree-picker/tree-picker-actions.ts @@ -2,26 +2,26 @@ // // SPDX-License-Identifier: AGPL-3.0 -import { unionize, ofType, UnionOf } from "~/common/unionize"; -import { TreeNode, initTreeNode, getNodeDescendants, TreeNodeStatus, getNode, TreePickerId, Tree } from '~/models/tree'; -import { createCollectionFilesTree } from "~/models/collection-file"; +import { unionize, ofType, UnionOf } from "common/unionize"; +import { TreeNode, initTreeNode, getNodeDescendants, TreeNodeStatus, getNode, TreePickerId, Tree } from 'models/tree'; +import { createCollectionFilesTree } from "models/collection-file"; import { Dispatch } from 'redux'; -import { RootState } from '~/store/store'; -import { getUserUuid } from "~/common/getuser"; -import { ServiceRepository } from '~/services/services'; -import { FilterBuilder } from '~/services/api/filter-builder'; +import { RootState } from 'store/store'; +import { getUserUuid } from "common/getuser"; +import { ServiceRepository } from 'services/services'; +import { FilterBuilder } from 'services/api/filter-builder'; import { pipe, values } from 'lodash/fp'; -import { ResourceKind } from '~/models/resource'; -import { GroupContentsResource } from '~/services/groups-service/groups-service'; +import { ResourceKind } from 'models/resource'; +import { GroupContentsResource } from 'services/groups-service/groups-service'; import { getTreePicker, TreePicker } from './tree-picker'; -import { ProjectsTreePickerItem } from '~/views-components/projects-tree-picker/generic-projects-tree-picker'; -import { OrderBuilder } from '~/services/api/order-builder'; -import { ProjectResource } from '~/models/project'; +import { ProjectsTreePickerItem } from 'views-components/projects-tree-picker/generic-projects-tree-picker'; +import { OrderBuilder } from 'services/api/order-builder'; +import { ProjectResource } from 'models/project'; 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 { LinkResource, LinkClass } from "models/link"; +import { mapTreeValues } from "models/tree"; +import { sortFilesTree } from "services/collection-service/collection-service-files-response"; +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(receiveTreePickerData({ 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, @@ -143,7 +149,6 @@ export const loadCollection = (id: string, pickerId: string) => const node = getNode(id)(picker); if (node && 'kind' in node.value && node.value.kind === ResourceKind.COLLECTION) { - const files = await services.collectionService.files(node.value.portableDataHash); const tree = createCollectionFilesTree(files); const sorted = sortFilesTree(tree);