X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/416d4f0f57336b2225bcc82b0f4db8873adf8cd2..352e8d13baae99e7f4e9f1b88253d6988541fecb:/src/views/group-details-panel/group-details-panel.tsx diff --git a/src/views/group-details-panel/group-details-panel.tsx b/src/views/group-details-panel/group-details-panel.tsx index a44304c4..9cee3cbc 100644 --- a/src/views/group-details-panel/group-details-panel.tsx +++ b/src/views/group-details-panel/group-details-panel.tsx @@ -7,26 +7,33 @@ 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, ResourceLinkTailIsActive, ResourceLinkTailIsHidden } from 'views-components/data-explorer/renderers'; +import { ResourceLinkHeadUuid, ResourceLinkTailUsername, ResourceLinkHeadPermissionLevel, ResourceLinkTailPermissionLevel, ResourceLinkHead, ResourceLinkTail, ResourceLinkDelete, ResourceLinkTailAccountStatus, ResourceLinkTailIsVisible } from 'views-components/data-explorer/renderers'; import { createTree } from 'models/tree'; import { noop } from 'lodash/fp'; import { RootState } from 'store/store'; import { GROUP_DETAILS_MEMBERS_PANEL_ID, GROUP_DETAILS_PERMISSIONS_PANEL_ID, openAddGroupMembersDialog, getCurrentGroupDetailsPanelUuid } from 'store/group-details-panel/group-details-panel-actions'; import { openContextMenu } from 'store/context-menu/context-menu-actions'; import { ResourcesState, getResource } from 'store/resources/resources'; -import { Grid, Button, Tabs, Tab, Paper } from '@material-ui/core'; +import { Grid, Button, Tabs, Tab, Paper, WithStyles, withStyles, StyleRulesCallback } from '@material-ui/core'; import { AddIcon } from 'components/icon/icon'; import { getUserUuid } from 'common/getuser'; -import { GroupResource } from 'models/group'; +import { GroupResource, isBuiltinGroup } from 'models/group'; +import { ArvadosTheme } from 'common/custom-theme'; + +type CssRules = "root"; + +const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ + root: { + width: '100%', + } +}); export enum GroupDetailsPanelMembersColumnNames { FULL_NAME = "Name", USERNAME = "Username", - EMAIL = "Email", - ACTIVE = "User Active", - HIDDEN = "Member Hidden", + STATUS = "Account Status", + VISIBLE = "Visible to other members", PERMISSION = "Permission", - UUID = "UUID", REMOVE = "Remove", } @@ -53,25 +60,18 @@ export const groupDetailsMembersPanelColumns: DataColumns = [ render: uuid => }, { - name: GroupDetailsPanelMembersColumnNames.EMAIL, + name: GroupDetailsPanelMembersColumnNames.STATUS, selected: true, configurable: true, filters: createTree(), - render: uuid => + render: uuid => }, { - name: GroupDetailsPanelMembersColumnNames.ACTIVE, + name: GroupDetailsPanelMembersColumnNames.VISIBLE, selected: true, configurable: true, filters: createTree(), - render: uuid => - }, - { - name: GroupDetailsPanelMembersColumnNames.HIDDEN, - selected: true, - configurable: true, - filters: createTree(), - render: uuid => + render: uuid => }, { name: GroupDetailsPanelMembersColumnNames.PERMISSION, @@ -80,13 +80,6 @@ export const groupDetailsMembersPanelColumns: DataColumns = [ filters: createTree(), render: uuid => }, - { - name: GroupDetailsPanelMembersColumnNames.UUID, - selected: true, - configurable: true, - filters: createTree(), - render: uuid => - }, { name: GroupDetailsPanelMembersColumnNames.REMOVE, selected: true, @@ -134,7 +127,9 @@ const mapStateToProps = (state: RootState) => { return { resources: state.resources, - groupCanManage: userUuid ? group?.writableBy?.includes(userUuid) : false, + groupCanManage: userUuid && !isBuiltinGroup(group?.uuid || '') + ? group?.writableBy?.includes(userUuid) + : false, }; }; @@ -150,10 +145,10 @@ export interface GroupDetailsPanelProps { groupCanManage: boolean; } -export const GroupDetailsPanel = connect( +export const GroupDetailsPanel = withStyles(styles)(connect( mapStateToProps, mapDispatchToProps )( - class GroupDetailsPanel extends React.Component { + class GroupDetailsPanel extends React.Component> { state = { value: 0, }; @@ -165,10 +160,10 @@ export const GroupDetailsPanel = connect( render() { const { value } = this.state; return ( - + - - + + {value === 0 && , value: number) => { this.setState({ value }); } - }); + }));