From 134cf300692c9f09f1a79d02295e1d6b7242f32d Mon Sep 17 00:00:00 2001 From: Stephen Smith Date: Thu, 11 Nov 2021 11:23:28 -0500 Subject: [PATCH] 18123: Add isActive checkbox to group member list for user members Arvados-DCO-1.1-Signed-off-by: Stephen Smith --- .../data-explorer/renderers.tsx | 26 ++++++++++++++----- .../group-details-panel.tsx | 14 +++++++--- 2 files changed, 31 insertions(+), 9 deletions(-) diff --git a/src/views-components/data-explorer/renderers.tsx b/src/views-components/data-explorer/renderers.tsx index 73ef32b0..aa200942 100644 --- a/src/views-components/data-explorer/renderers.tsx +++ b/src/views-components/data-explorer/renderers.tsx @@ -185,16 +185,30 @@ export const ResourceEmail = connect( return resource || { email: '' }; })(renderEmail); -const renderIsActive = (props: { uuid: string, isActive: boolean, toggleIsActive: (uuid: string) => void }) => - props.toggleIsActive(props.uuid)} />; +const renderIsActive = (props: { uuid: string, kind: ResourceKind, isActive: boolean, toggleIsActive: (uuid: string) => void }) => { + if (props.kind === ResourceKind.USER) { + return props.toggleIsActive(props.uuid)} />; + } else { + return ; + } +} export const ResourceIsActive = connect( (state: RootState, props: { uuid: string }) => { const resource = getResource(props.uuid)(state.resources); - return resource || { isActive: false }; + return resource || { isActive: false, kind: ResourceKind.NONE }; + }, { toggleIsActive } +)(renderIsActive); + +export const ResourceLinkTailIsActive = connect( + (state: RootState, props: { uuid: string }) => { + const link = getResource(props.uuid)(state.resources); + const tailResource = getResource(link?.tailUuid || '')(state.resources); + + return tailResource || { isActive: false, kind: ResourceKind.NONE }; }, { toggleIsActive } )(renderIsActive); diff --git a/src/views/group-details-panel/group-details-panel.tsx b/src/views/group-details-panel/group-details-panel.tsx index b4a8c6d3..7b06a693 100644 --- a/src/views/group-details-panel/group-details-panel.tsx +++ b/src/views/group-details-panel/group-details-panel.tsx @@ -7,7 +7,7 @@ import { connect } from 'react-redux'; import { DataExplorer } from "views-components/data-explorer/data-explorer"; import { DataColumns } from 'components/data-table/data-table'; -import { ResourceLinkHeadUuid, ResourceLinkTailUuid, ResourceLinkTailEmail, ResourceLinkTailUsername, ResourceLinkHeadPermissionLevel, ResourceLinkTailPermissionLevel, ResourceLinkHead, ResourceLinkTail, ResourceLinkDelete } from 'views-components/data-explorer/renderers'; +import { ResourceLinkHeadUuid, ResourceLinkTailUuid, ResourceLinkTailEmail, ResourceLinkTailUsername, ResourceLinkHeadPermissionLevel, ResourceLinkTailPermissionLevel, ResourceLinkHead, ResourceLinkTail, ResourceLinkDelete, ResourceLinkTailIsActive } from 'views-components/data-explorer/renderers'; import { createTree } from 'models/tree'; import { noop } from 'lodash/fp'; import { RootState } from 'store/store'; @@ -21,10 +21,11 @@ import { AddIcon } from 'components/icon/icon'; export enum GroupDetailsPanelMembersColumnNames { FULL_NAME = "Name", - UUID = "UUID", - EMAIL = "Email", USERNAME = "Username", + EMAIL = "Email", + ACTIVE = "User Active", PERMISSION = "Permission", + UUID = "UUID", REMOVE = "Remove", } @@ -57,6 +58,13 @@ export const groupDetailsMembersPanelColumns: DataColumns = [ filters: createTree(), render: uuid => }, + { + name: GroupDetailsPanelMembersColumnNames.ACTIVE, + selected: true, + configurable: true, + filters: createTree(), + render: uuid => + }, { name: GroupDetailsPanelMembersColumnNames.PERMISSION, selected: true, -- 2.30.2