X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/e5b901f7d6f87b56f43d3dbe002c9c90a3d41349..6e44781d01db889030cc5f7819aa7f15fe837e19:/src/views/data-explorer/data-explorer-selectors.ts diff --git a/src/views/data-explorer/data-explorer-selectors.ts b/src/views/data-explorer/data-explorer-selectors.ts index 5f17037f..ceb87d22 100644 --- a/src/views/data-explorer/data-explorer-selectors.ts +++ b/src/views/data-explorer/data-explorer-selectors.ts @@ -1,11 +1,58 @@ +// Copyright (C) The Arvados Authors. All rights reserved. +// +// SPDX-License-Identifier: AGPL-3.0 + import { TreeItem } from "../../components/tree/tree"; import { Project } from "../../models/project"; import { DataItem } from "../../views-components/data-explorer/data-item"; +import { findTreeItem } from "../../store/project/project-reducer"; +import { ResourceKind } from "../../models/resource"; +import { Collection } from "../../models/collection"; +import { getResourceUrl } from "../../store/navigation/navigation-action"; + +export const projectExplorerItems = (projects: Array>, treeItemId: string, collections: Array): DataItem[] => { + const dataItems: DataItem[] = []; + + const treeItem = findTreeItem(projects, treeItemId); + if (treeItem) { + dataItems.push({ + name: "..", + url: getResourceUrl(treeItem.data), + kind: ResourceKind.LEVEL_UP, + owner: treeItem.data.ownerUuid, + uuid: treeItem.data.uuid, + lastModified: treeItem.data.modifiedAt + }); + + if (treeItem.items) { + treeItem.items.forEach(p => { + const item = { + name: p.data.name, + kind: ResourceKind.PROJECT, + url: getResourceUrl(treeItem.data), + owner: p.data.ownerUuid, + uuid: p.data.uuid, + lastModified: p.data.modifiedAt + } as DataItem; + + dataItems.push(item); + }); + } + } + + collections.forEach(c => { + const item = { + name: c.name, + kind: ResourceKind.COLLECTION, + url: getResourceUrl(c), + owner: c.ownerUuid, + uuid: c.uuid, + lastModified: c.modifiedAt + } as DataItem; + + dataItems.push(item); + }); + + return dataItems; +}; -export const mapProjectTreeItem = (item: TreeItem): DataItem => ({ - name: item.data.name, - type: item.data.kind, - owner: item.data.ownerUuid, - lastModified: item.data.modifiedAt, - uuid: item.data.uuid -});