X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/956da0a3141be31119f6310734a59f4b79c254e3..9ee35a64c605f116aec71f78c65b54730d6e1076:/src/views/search-results-panel/search-results-panel-view.tsx diff --git a/src/views/search-results-panel/search-results-panel-view.tsx b/src/views/search-results-panel/search-results-panel-view.tsx index a31263ab..dae91bd0 100644 --- a/src/views/search-results-panel/search-results-panel-view.tsx +++ b/src/views/search-results-panel/search-results-panel-view.tsx @@ -8,22 +8,28 @@ 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 '~/store/search-bar/search-bar-actions'; 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, + ResourceCluster, ResourceFileSize, ResourceLastModifiedDate, ResourceName, ResourceOwner, + ResourceStatus, ResourceType } from '~/views-components/data-explorer/renderers'; +import { createTree } from '~/models/tree'; +import { getInitialResourceTypeFilters } from '~/store/resource-type-filters/resource-type-filters'; +import { SearchResultsPanelProps } from "./search-results-panel"; +import { Routes } from '~/routes/routes'; +import { Link } from 'react-router-dom'; +import { StyleRulesCallback, withStyles, WithStyles } from '@material-ui/core'; +import { ArvadosTheme } from '~/common/custom-theme'; export enum SearchResultsPanelColumnNames { + CLUSTER = "Cluster", NAME = "Name", - PROJECT = "Project", STATUS = "Status", TYPE = 'Type', OWNER = "Owner", @@ -31,98 +37,95 @@ export enum SearchResultsPanelColumnNames { 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 CssRules = 'siteManagerLink'; -export type SearchResultsPanelProps = SearchResultsPanelDataProps & SearchResultsPanelActionProps; +const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ + siteManagerLink: { + marginRight: theme.spacing.unit * 2, + float: 'right' + } +}); export interface WorkflowPanelFilter extends DataTableFilterItem { type: ResourceKind | ContainerRequestState; } -export const searchResultsPanelColumns: DataColumns = [ +export const searchResultsPanelColumns: DataColumns = [ { - name: SearchResultsPanelColumnNames.NAME, + name: SearchResultsPanelColumnNames.CLUSTER, selected: true, configurable: true, - sortDirection: SortDirection.ASC, - filters: [], - render: (uuid: string) => + filters: createTree(), + render: (uuid: string) => }, { - name: SearchResultsPanelColumnNames.PROJECT, + name: SearchResultsPanelColumnNames.NAME, selected: true, configurable: true, - filters: [], - render: uuid => + sortDirection: SortDirection.NONE, + filters: createTree(), + render: (uuid: string) => }, { name: SearchResultsPanelColumnNames.STATUS, selected: true, configurable: true, - filters: [], - render: uuid => + filters: createTree(), + 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 - } - ], + filters: getInitialResourceTypeFilters(), render: (uuid: string) => , }, { name: SearchResultsPanelColumnNames.OWNER, selected: true, configurable: true, - filters: [], + filters: createTree(), render: uuid => }, { name: SearchResultsPanelColumnNames.FILE_SIZE, selected: true, configurable: true, - filters: [], + filters: createTree(), render: uuid => }, { name: SearchResultsPanelColumnNames.LAST_MODIFIED, selected: true, configurable: true, - sortDirection: SortDirection.NONE, - filters: [], + sortDirection: SortDirection.DESC, + filters: createTree(), render: uuid => } ]; -export const SearchResultsPanelView = (props: SearchResultsPanelProps) => { - return ; -}; \ No newline at end of file +export const SearchResultsPanelView = withStyles(styles, { withTheme: true })( + (props: SearchResultsPanelProps & WithStyles) => { + const homeCluster = props.user.uuid.substr(0, 5); + const loggedIn = props.sessions.filter((ss) => ss.loggedIn && ss.userIsActive); + return + {loggedIn.length === 1 ? + Searching local cluster + : Searching clusters: {loggedIn.map((ss) => + + )}} + {loggedIn.length === 1 && props.localCluster !== homeCluster ? + To search multiple clusters, start from your home Workbench. + : Use Site Manager to manage which clusters will be searched.} + + } + />; + });