X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/13ed57b2af2f203d21b4636df3424082abe39a51..e09a9e644ad7937bb3800ca8096f444f6ff4411b:/src/views/shared-with-me-panel/shared-with-me-panel.tsx diff --git a/src/views/shared-with-me-panel/shared-with-me-panel.tsx b/src/views/shared-with-me-panel/shared-with-me-panel.tsx index 7731df6b..f3f827d1 100644 --- a/src/views/shared-with-me-panel/shared-with-me-panel.tsx +++ b/src/views/shared-with-me-panel/shared-with-me-panel.tsx @@ -10,6 +10,7 @@ import { RootState } from 'store/store'; import { ArvadosTheme } from 'common/custom-theme'; import { ShareMeIcon } from 'components/icon/icon'; import { ResourcesState, getResource } from 'store/resources/resources'; +import { ResourceKind } from 'models/resource'; import { navigateTo } from "store/navigation/navigation-action"; import { loadDetailsPanel } from "store/details-panel/details-panel-action"; import { SHARED_WITH_ME_PANEL_ID } from 'store/shared-with-me-panel/shared-with-me-panel-actions'; @@ -17,8 +18,36 @@ import { openContextMenu, resourceUuidToContextMenuKind } from 'store/context-menu/context-menu-actions'; +import { + ResourceName, + ProcessStatus as ResourceStatus, + ResourceType, + ResourceOwnerWithNameLink, + ResourcePortableDataHash, + ResourceFileSize, + ResourceFileCount, + ResourceUUID, + ResourceContainerUuid, + ContainerRunTime, + ResourceOutputUuid, + ResourceLogUuid, + ResourceParentProcess, + ResourceModifiedByUserUuid, + ResourceVersion, + ResourceCreatedAtDate, + ResourceLastModifiedDate, + ResourceTrashDate, + ResourceDeleteDate, +} from 'views-components/data-explorer/renderers'; +import { DataTableFilterItem } from 'components/data-table-filters/data-table-filters'; import { GroupContentsResource } from 'services/groups-service/groups-service'; import { toggleOne } from 'store/multiselect/multiselect-actions'; +import { DataColumns } from 'components/data-table/data-table'; +import { ContainerRequestState } from 'models/container-request'; +import { ProjectResource } from 'models/project'; +import { createTree } from 'models/tree'; +import { SortDirection } from 'components/data-table/data-column'; +import { getInitialResourceTypeFilters, getInitialProcessStatusFilters } from 'store/resource-type-filters/resource-type-filters'; type CssRules = "toolbar" | "button" | "root"; @@ -35,6 +64,175 @@ const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ }, }); +export enum SharedWithMePanelColumnNames { + NAME = 'Name', + STATUS = 'Status', + TYPE = 'Type', + OWNER = 'Owner', + PORTABLE_DATA_HASH = 'Portable Data Hash', + FILE_SIZE = 'File Size', + FILE_COUNT = 'File Count', + UUID = 'UUID', + CONTAINER_UUID = 'Container UUID', + RUNTIME = 'Runtime', + OUTPUT_UUID = 'Output UUID', + LOG_UUID = 'Log UUID', + PARENT_PROCESS = 'Parent Process UUID', + MODIFIED_BY_USER_UUID = 'Modified by User UUID', + VERSION = 'Version', + CREATED_AT = 'Date Created', + LAST_MODIFIED = 'Last Modified', + TRASH_AT = 'Trash at', + DELETE_AT = 'Delete at', +} + +export interface ProjectPanelFilter extends DataTableFilterItem { + type: ResourceKind | ContainerRequestState; +} + +export const sharedWithMePanelColumns: DataColumns = [ + { + name: SharedWithMePanelColumnNames.NAME, + selected: true, + configurable: true, + sort: { direction: SortDirection.NONE, field: 'name' }, + filters: createTree(), + render: (uuid) => , + }, + { + name: SharedWithMePanelColumnNames.STATUS, + selected: true, + configurable: true, + mutuallyExclusiveFilters: true, + filters: getInitialProcessStatusFilters(), + render: (uuid) => , + }, + { + name: SharedWithMePanelColumnNames.TYPE, + selected: true, + configurable: true, + filters: getInitialResourceTypeFilters(), + render: (uuid) => , + }, + { + name: SharedWithMePanelColumnNames.OWNER, + selected: true, + configurable: true, + filters: createTree(), + render: (uuid) => , + }, + { + name: SharedWithMePanelColumnNames.PORTABLE_DATA_HASH, + selected: false, + configurable: true, + filters: createTree(), + render: (uuid) => , + }, + { + name: SharedWithMePanelColumnNames.FILE_SIZE, + selected: true, + configurable: true, + filters: createTree(), + render: (uuid) => , + }, + { + name: SharedWithMePanelColumnNames.FILE_COUNT, + selected: false, + configurable: true, + filters: createTree(), + render: (uuid) => , + }, + { + name: SharedWithMePanelColumnNames.UUID, + selected: false, + configurable: true, + filters: createTree(), + render: (uuid) => , + }, + { + name: SharedWithMePanelColumnNames.CONTAINER_UUID, + selected: false, + configurable: true, + filters: createTree(), + render: (uuid) => , + }, + { + name: SharedWithMePanelColumnNames.RUNTIME, + selected: false, + configurable: true, + filters: createTree(), + render: (uuid) => , + }, + { + name: SharedWithMePanelColumnNames.OUTPUT_UUID, + selected: false, + configurable: true, + filters: createTree(), + render: (uuid) => , + }, + { + name: SharedWithMePanelColumnNames.LOG_UUID, + selected: false, + configurable: true, + filters: createTree(), + render: (uuid) => , + }, + { + name: SharedWithMePanelColumnNames.PARENT_PROCESS, + selected: false, + configurable: true, + filters: createTree(), + render: (uuid) => , + }, + { + name: SharedWithMePanelColumnNames.MODIFIED_BY_USER_UUID, + selected: false, + configurable: true, + filters: createTree(), + render: (uuid) => , + }, + { + name: SharedWithMePanelColumnNames.VERSION, + selected: false, + configurable: true, + filters: createTree(), + render: (uuid) => , + }, + { + name: SharedWithMePanelColumnNames.CREATED_AT, + selected: false, + configurable: true, + sort: { direction: SortDirection.NONE, field: 'createdAt' }, + filters: createTree(), + render: (uuid) => , + }, + { + name: SharedWithMePanelColumnNames.LAST_MODIFIED, + selected: true, + configurable: true, + sort: { direction: SortDirection.DESC, field: 'modifiedAt' }, + filters: createTree(), + render: (uuid) => , + }, + { + name: SharedWithMePanelColumnNames.TRASH_AT, + selected: false, + configurable: true, + sort: { direction: SortDirection.NONE, field: 'trashAt' }, + filters: createTree(), + render: (uuid) => , + }, + { + name: SharedWithMePanelColumnNames.DELETE_AT, + selected: false, + configurable: true, + sort: { direction: SortDirection.NONE, field: 'deleteAt' }, + filters: createTree(), + render: (uuid) => , + }, +]; + + interface SharedWithMePanelDataProps { resources: ResourcesState; userUuid: string;