Skip to content
Snippets Groups Projects
Commit 36348aa5 authored by Rafael László's avatar Rafael László :speech_balloon:
Browse files

initial member edit dialog

parent 85277f27
No related branches found
No related tags found
No related merge requests found
Pipeline #5588 passed
......@@ -53,6 +53,8 @@ export const GroupAdminContent: React.FC<RouteComponentProps<TParams>> = ({ matc
if (groupDataIsLoading) return <Loader />;
if (!groupData) return <>There was an error</>;
return (
<Switch>
<Route path={`${match.url}/members`}>
......
import { Box, IconButton, Tooltip, Typography } from '@material-ui/core';
import {
Box,
Button,
Dialog,
DialogActions,
DialogContent,
DialogTitle,
IconButton,
Tooltip,
Typography,
} from '@material-ui/core';
import { Group, Member } from '../../../types/graphqlSchema';
import { IListGroupMembers, listGroupMembers } from '../../../graphql/queries/group/listGroupMembers';
......@@ -12,13 +22,16 @@ import { useQuery } from '@apollo/client';
interface IGroupMembersTable extends Partial<Member> {
name: string;
membership: string;
userId: number;
}
const convertResponseToTable = (rows: Partial<Member>[] | undefined): Partial<IGroupMembersTable>[] => {
if (!rows) return [];
return rows.map((o) => ({
...o,
name: `${o.user?.familyName} ${o.user?.givenName}`,
membership: getMemberStateString({ memberState: o.memberState, groupRole: o.groupRole }),
userId: Number(o.user?.id),
}));
};
......@@ -28,16 +41,28 @@ interface TParams {
}
export const GroupMembers: React.FC<TParams> = ({ group, filterBy }) => {
console.log(filterBy);
const [openDialog, setopenDialog] = React.useState(false);
const [editedUser, setEditedUser] = React.useState<Partial<Member>>();
const { loading: membersIsLoading, data: members } = useQuery<IListGroupMembers>(
listGroupMembers(`user { familyName, givenName }, memberState, groupRole`),
listGroupMembers(`user { familyName, givenName, id }, memberState, groupRole`),
{
variables: { groupId: Number(group?.id) },
},
);
const handleDialogOpen = (member: Partial<Member>) => {
console.log(member);
setEditedUser(member);
setopenDialog(true);
};
const handleDialogClose = () => {
setopenDialog(false);
};
return (
<div>
<CardTable<Partial<IGroupMembersTable>>
columns={[
{
......@@ -64,11 +89,7 @@ export const GroupMembers: React.FC<TParams> = ({ group, filterBy }) => {
render: function renderEditIcon(rowData) {
return (
<Tooltip title="Szerkesztés" aria-label="group-administration">
<IconButton
onClick={() => alert('Not implemented ' + rowData.name)}
color="secondary"
style={{ padding: '8px' }}
>
<IconButton onClick={() => handleDialogOpen(rowData)} color="secondary" style={{ padding: '8px' }}>
<CreateIcon />
</IconButton>
</Tooltip>
......@@ -94,5 +115,27 @@ export const GroupMembers: React.FC<TParams> = ({ group, filterBy }) => {
searchText: filterBy || '',
}}
/>
<Dialog
open={openDialog}
onClose={handleDialogClose}
aria-labelledby="edit-user"
aria-describedby="modal-to-edit-user"
>
<DialogTitle id="edit-user-dialog-title">Felhasználó szerkesztése</DialogTitle>
<DialogContent>
<Typography>
Neve: {editedUser?.user?.familyName} {editedUser?.user?.givenName}
</Typography>
</DialogContent>
<DialogActions>
<Button onClick={handleDialogClose} color="primary">
Mentés
</Button>
<Button onClick={handleDialogClose} color="primary">
Mégse
</Button>
</DialogActions>
</Dialog>
</div>
);
};
......@@ -24,7 +24,6 @@ import { MemberState } from "./MemberState";
@Entity({ name: "users" })
export class User extends BaseEntity {
@Authorized()
@UseMiddleware(isOwnUserField)
@Field((returns) => ID)
@PrimaryGeneratedColumn()
id!: number;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment