Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit90b29df

Browse files
feat: add groups column to members page in organizations (#14620)
* feat: add groups column to members page in organizations* fix: run 'make fmt'* fix: stop displaying groups member is in for other organisations* fix: run 'make fmt'
1 parent85cc695 commit90b29df

File tree

4 files changed

+44
-5
lines changed

4 files changed

+44
-5
lines changed

‎site/src/api/queries/groups.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,13 @@ export function groupsByUserId() {
5353
}satisfiesUseQueryOptions<Group[],unknown,GroupsByUserId>;
5454
}
5555

56+
exportfunctiongroupsByUserIdInOrganization(organization:string){
57+
return{
58+
...groupsByOrganization(organization),
59+
select:selectGroupsByUserId,
60+
}satisfiesUseQueryOptions<Group[],unknown,GroupsByUserId>;
61+
}
62+
5663
exportfunctionselectGroupsByUserId(groups:Group[]):GroupsByUserId{
5764
// Sorting here means that nothing has to be sorted for the individual
5865
// user arrays later

‎site/src/pages/ManagementSettingsPage/OrganizationMembersPage.tsx

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
import{
2+
groupsByUserId,
3+
groupsByUserIdInOrganization,
4+
}from"api/queries/groups";
15
import{
26
addOrganizationMember,
37
organizationMembers,
@@ -22,9 +26,18 @@ const OrganizationMembersPage: FC = () => {
2226
};
2327
const{user:me}=useAuthenticated();
2428

29+
constgroupsByUserIdQuery=useQuery(
30+
groupsByUserIdInOrganization(organizationName),
31+
);
32+
2533
constmembersQuery=useQuery(organizationMembers(organizationName));
2634
constorganizationRolesQuery=useQuery(organizationRoles(organizationName));
2735

36+
constmembers=membersQuery.data?.map((member)=>{
37+
constgroups=groupsByUserIdQuery.data?.get(member.user_id)??[];
38+
return{ ...member, groups};
39+
});
40+
2841
constaddMemberMutation=useMutation(
2942
addOrganizationMember(queryClient,organizationName),
3043
);
@@ -57,7 +70,8 @@ const OrganizationMembersPage: FC = () => {
5770
isAddingMember={addMemberMutation.isLoading}
5871
isUpdatingMemberRoles={updateMemberRolesMutation.isLoading}
5972
me={me}
60-
members={membersQuery.data}
73+
members={members}
74+
groupsByUserId={groupsByUserIdQuery.data}
6175
addMember={async(user:User)=>{
6276
awaitaddMemberMutation.mutateAsync(user.id);
6377
voidmembersQuery.refetch();

‎site/src/pages/ManagementSettingsPage/OrganizationMembersPageView.stories.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,10 @@ const meta: Meta<typeof OrganizationMembersPageView> = {
1515
isAddingMember:false,
1616
isUpdatingMemberRoles:false,
1717
me:MockUser,
18-
members:[MockOrganizationMember,MockOrganizationMember2],
18+
members:[
19+
{ ...MockOrganizationMember,groups:[]},
20+
{ ...MockOrganizationMember2,groups:[]},
21+
],
1922
addMember:()=>Promise.resolve(),
2023
removeMember:()=>Promise.resolve(),
2124
updateMemberRoles:()=>Promise.resolve(),

‎site/src/pages/ManagementSettingsPage/OrganizationMembersPageView.tsx

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ import TableContainer from "@mui/material/TableContainer";
88
importTableHeadfrom"@mui/material/TableHead";
99
importTableRowfrom"@mui/material/TableRow";
1010
import{getErrorMessage}from"api/errors";
11+
importtype{GroupsByUserId}from"api/queries/groups";
1112
importtype{
13+
Group,
1214
OrganizationMemberWithUserData,
1315
SlimRole,
1416
User,
@@ -27,6 +29,7 @@ import { SettingsHeader } from "components/SettingsHeader/SettingsHeader";
2729
import{Stack}from"components/Stack/Stack";
2830
import{UserAutocomplete}from"components/UserAutocomplete/UserAutocomplete";
2931
import{UserAvatar}from"components/UserAvatar/UserAvatar";
32+
import{UserGroupsCell}from"pages/UsersPage/UsersTable/UserGroupsCell";
3033
import{typeFC,useState}from"react";
3134
import{TableColumnHelpTooltip}from"./UserTable/TableColumnHelpTooltip";
3235
import{UserRoleCell}from"./UserTable/UserRoleCell";
@@ -38,7 +41,8 @@ interface OrganizationMembersPageViewProps {
3841
isAddingMember:boolean;
3942
isUpdatingMemberRoles:boolean;
4043
me:User;
41-
members:OrganizationMemberWithUserData[]|undefined;
44+
members:Array<OrganizationMemberTableEntry>|undefined;
45+
groupsByUserId:GroupsByUserId|undefined;
4246
addMember:(user:User)=>Promise<void>;
4347
removeMember:(member:OrganizationMemberWithUserData)=>Promise<void>;
4448
updateMemberRoles:(
@@ -47,6 +51,10 @@ interface OrganizationMembersPageViewProps {
4751
)=>Promise<void>;
4852
}
4953

54+
interfaceOrganizationMemberTableEntryextendsOrganizationMemberWithUserData{
55+
groups:readonlyGroup[]|undefined;
56+
}
57+
5058
exportconstOrganizationMembersPageView:FC<
5159
OrganizationMembersPageViewProps
5260
>=(props)=>{
@@ -68,13 +76,19 @@ export const OrganizationMembersPageView: FC<
6876
<Table>
6977
<TableHead>
7078
<TableRow>
71-
<TableCellwidth="50%">User</TableCell>
72-
<TableCellwidth="49%">
79+
<TableCellwidth="33%">User</TableCell>
80+
<TableCellwidth="33%">
7381
<Stackdirection="row"spacing={1}alignItems="center">
7482
<span>Roles</span>
7583
<TableColumnHelpTooltipvariant="roles"/>
7684
</Stack>
7785
</TableCell>
86+
<TableCellwidth="33%">
87+
<Stackdirection="row"spacing={1}alignItems="center">
88+
<span>Groups</span>
89+
<TableColumnHelpTooltipvariant="groups"/>
90+
</Stack>
91+
</TableCell>
7892
<TableCellwidth="1%"></TableCell>
7993
</TableRow>
8094
</TableHead>
@@ -111,6 +125,7 @@ export const OrganizationMembersPageView: FC<
111125
}
112126
}}
113127
/>
128+
<UserGroupsCelluserGroups={member.groups}/>
114129
<TableCell>
115130
{member.user_id!==props.me.id&&props.canEditMembers&&(
116131
<MoreMenu>

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp