From 07dc691e4fecbf365d6edf26a569f3eaffca4a76 Mon Sep 17 00:00:00 2001 From: Daniel Kos Date: Fri, 28 Dec 2018 08:56:15 +0100 Subject: [PATCH] Add cluster render Feature #14348 Arvados-DCO-1.1-Signed-off-by: Daniel Kos --- .../data-explorer/renderers.tsx | 22 +++++++++++++++++++ .../search-results-panel-view.tsx | 12 ++++++++-- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/views-components/data-explorer/renderers.tsx b/src/views-components/data-explorer/renderers.tsx index 2f102a99..f90dac6b 100644 --- a/src/views-components/data-explorer/renderers.tsx +++ b/src/views-components/data-explorer/renderers.tsx @@ -203,6 +203,28 @@ const renderNodeInfo = (data: string) => { return {JSON.stringify(data, null, 4)}; }; +const clusterColors = [ + ['#f44336', '#fff'], + ['#2196f3', '#fff'], + ['#009688', '#fff'], + ['#cddc39', '#fff'], + ['#ff9800', '#fff'] +]; + +export const ResourceCluster = (props: { uuid: string }) => { + const p = props.uuid.indexOf('-'); + const clusterId = p >= 5 ? props.uuid.substr(0, p) : ''; + const ci = p >= 5 ? (props.uuid.charCodeAt(0) + props.uuid.charCodeAt(1)) % clusterColors.length : 0; + return +
{clusterId}
+
; +}; + export const ComputeNodeInfo = withResourceData('info', renderNodeInfo); export const ComputeNodeUuid = withResourceData('uuid', renderNodeData); 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 7bfc2bfe..6827a002 100644 --- a/src/views/search-results-panel/search-results-panel-view.tsx +++ b/src/views/search-results-panel/search-results-panel-view.tsx @@ -12,7 +12,7 @@ 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, + ProcessStatus, ResourceCluster, ResourceFileSize, ResourceLastModifiedDate, ResourceName, @@ -23,6 +23,7 @@ import { createTree } from '~/models/tree'; import { getInitialResourceTypeFilters } from '~/store/resource-type-filters/resource-type-filters'; export enum SearchResultsPanelColumnNames { + CLUSTER = "Cluster", NAME = "Name", PROJECT = "Project", STATUS = "Status", @@ -50,6 +51,13 @@ export interface WorkflowPanelFilter extends DataTableFilterItem { } export const searchResultsPanelColumns: DataColumns = [ + { + name: SearchResultsPanelColumnNames.CLUSTER, + selected: true, + configurable: true, + filters: createTree(), + render: (uuid: string) => + }, { name: SearchResultsPanelColumnNames.NAME, selected: true, @@ -110,4 +118,4 @@ export const SearchResultsPanelView = (props: SearchResultsPanelProps) => { onRowDoubleClick={props.onItemDoubleClick} onContextMenu={props.onContextMenu} contextMenuColumn={true} />; -}; \ No newline at end of file +}; -- 2.39.5