// Copyright (C) The Arvados Authors. All rights reserved. // // SPDX-License-Identifier: AGPL-3.0 import * as React from 'react'; import { SortDirection } from '~/components/data-table/data-column'; import { DataColumns } from '~/components/data-table/data-table'; import { DataTableFilterItem } from '~/components/data-table-filters/data-table-filters'; import { ResourceKind } from '~/models/resource'; import { ContainerRequestState } from '~/models/container-request'; import { resourceLabel } from '~/common/labels'; import { SearchBarAdvanceFormData } from '~/models/search-bar'; import { SEARCH_RESULTS_PANEL_ID } from '~/store/search-results-panel/search-results-panel-actions'; import { DataExplorer } from '~/views-components/data-explorer/data-explorer'; import { ProcessStatus, ResourceFileSize, ResourceLastModifiedDate, ResourceName, ResourceOwner, ResourceType } from '~/views-components/data-explorer/renderers'; export enum SearchResultsPanelColumnNames { NAME = "Name", PROJECT = "Project", STATUS = "Status", TYPE = 'Type', OWNER = "Owner", FILE_SIZE = "File size", LAST_MODIFIED = "Last modified" } export interface SearchResultsPanelDataProps { data: SearchBarAdvanceFormData; } export interface SearchResultsPanelActionProps { onItemClick: (item: string) => void; onContextMenu: (event: React.MouseEvent, item: string) => void; onDialogOpen: (ownerUuid: string) => void; onItemDoubleClick: (item: string) => void; } export type SearchResultsPanelProps = SearchResultsPanelDataProps & SearchResultsPanelActionProps; export interface WorkflowPanelFilter extends DataTableFilterItem { type: ResourceKind | ContainerRequestState; } export const searchResultsPanelColumns: DataColumns = [ { name: SearchResultsPanelColumnNames.NAME, selected: true, configurable: true, sortDirection: SortDirection.ASC, filters: [], render: (uuid: string) => }, { name: SearchResultsPanelColumnNames.PROJECT, selected: true, configurable: true, filters: [], render: uuid => }, { name: SearchResultsPanelColumnNames.STATUS, selected: true, configurable: true, filters: [], render: uuid => }, { name: SearchResultsPanelColumnNames.TYPE, selected: true, configurable: true, filters: [ { name: resourceLabel(ResourceKind.COLLECTION), selected: true, type: ResourceKind.COLLECTION }, { name: resourceLabel(ResourceKind.PROCESS), selected: true, type: ResourceKind.PROCESS }, { name: resourceLabel(ResourceKind.PROJECT), selected: true, type: ResourceKind.PROJECT } ], render: (uuid: string) => , }, { name: SearchResultsPanelColumnNames.OWNER, selected: true, configurable: true, filters: [], render: uuid => }, { name: SearchResultsPanelColumnNames.FILE_SIZE, selected: true, configurable: true, filters: [], render: uuid => }, { name: SearchResultsPanelColumnNames.LAST_MODIFIED, selected: true, configurable: true, sortDirection: SortDirection.NONE, filters: [], render: uuid => } ]; export const SearchResultsPanelView = (props: SearchResultsPanelProps) => { return ; };