diff --git a/client/src/pages/lab_management/users/AccessCheckCard.tsx b/client/src/pages/lab_management/users/AccessCheckCard.tsx index 460fd659..c55a3064 100644 --- a/client/src/pages/lab_management/users/AccessCheckCard.tsx +++ b/client/src/pages/lab_management/users/AccessCheckCard.tsx @@ -1,9 +1,11 @@ -import { Button, Card, CardActions } from "@mui/material"; +import { Button, Card, CardActions, Stack } from "@mui/material"; import { gql } from "@apollo/client"; import { useMutation } from "@apollo/client/react"; import AuditLogEntity from "../audit_logs/AuditLogEntity"; -import { GET_USER } from "../../../queries/userQueries"; +import { AccessCheckExtraInfo, GET_USER } from "../../../queries/userQueries"; import { useIsMobile } from "../../../common/IsMobileProvider"; +import CheckIcon from '@mui/icons-material/Check'; +import CloseIcon from '@mui/icons-material/Close'; const APPROVE_CHECK = gql` mutation ApproveAccessCheck($id: ID!) { @@ -43,18 +45,25 @@ export default function AccessCheckCard({ accessCheck, userID }: AccessCheckCard return ( -
- -
+ + { + approved + ? + : + } + + {!approved && ( - - - {props.user.holds.length === 0 && ( - No Holds! - )} - - - {props.user.holds.map((hold: Hold) => ( - - ))} - - - - - Account Restrictions - - - {props.user.restrictions.length === 0 && ( - No Restrictions! - )} - - - {props.user.restrictions.map((restriction: Restriction) => ( - - ))} + + + + + Account Holds + + + + + {props.user.holds.length === 0 && ( + No Holds! + )} + + + {props.user.holds.map((hold: Hold) => ( + + ))} + - - { - isStaff(currentUser) - ? < RequestWrapper2 result={getMakerspacesResult} render={(data) => { - - const fullSpaces: FullMakerspace[] = data.makerspaces; - // I hate typescript I hate typescript I hate typescript I hate typescript I hate typescript I hate typescript I hate typescript I hate typescript - const potentialRestrictions = fullSpaces.filter((space: FullMakerspace) => isStaffFor(currentUser, Number(space.id))) - - return ( - - - Makerspace - setRestrictionMakerspace(Number(e.target.value))} + fullWidth + > + { + potentialRestrictions.map((space: FullMakerspace) => ( + {space.name} ID: {space.id} + )) + } + + + - - ); - } - } /> - : null - } + Place Restriction + + + ); + } + } /> + : null + } + + {props.user.restrictions.length === 0 && ( + No Restrictions! + )} + + + {props.user.restrictions.map((restriction: Restriction) => ( + + ))} + + ) } \ No newline at end of file diff --git a/client/src/pages/lab_management/users/userpage/Info.tsx b/client/src/pages/lab_management/users/userpage/Info.tsx index 5df2f5d4..69302b56 100644 --- a/client/src/pages/lab_management/users/userpage/Info.tsx +++ b/client/src/pages/lab_management/users/userpage/Info.tsx @@ -15,8 +15,8 @@ interface InfoProps { export default function Info(props: InfoProps) { const isMobile = useIsMobile(); const navigate = useNavigate(); - const { makerspaceID} = useParams<{ makerspaceID: string }>(); - + const { makerspaceID } = useParams<{ makerspaceID: string }>(); + return ( @@ -37,39 +37,36 @@ export default function Info(props: InfoProps) { {props.user.pronouns} - navigate(`/makerspace/${makerspaceID}/people`)} sx={{ width: "51px", height: "51px", p: 0, fontSize: 14 }} > - Back - - {/* } - /> */} - - - - - - - + { + isMobile ? null + : + + + + + } { props.user.archived && This user is archived! } diff --git a/client/src/pages/lab_management/users/userpage/PrivilegeControl.tsx b/client/src/pages/lab_management/users/userpage/PrivilegeControl.tsx index cbdfeb46..2d9c8746 100644 --- a/client/src/pages/lab_management/users/userpage/PrivilegeControl.tsx +++ b/client/src/pages/lab_management/users/userpage/PrivilegeControl.tsx @@ -117,7 +117,7 @@ export default function PrivilegeControl(props: PrivilegeControlProps) { { managerSpaces.length === 0 - ? Not a Manager! + ? Not a Manager! : managerSpaces.map((space: FullMakerspace) => { return ( @@ -152,13 +152,13 @@ export default function PrivilegeControl(props: PrivilegeControlProps) { } - @@ -168,7 +168,7 @@ export default function PrivilegeControl(props: PrivilegeControlProps) { { staffSpaces.length === 0 - ? Not Staff! + ? Not Staff! : staffSpaces.map((space: FullMakerspace) => { return ( @@ -203,13 +203,13 @@ export default function PrivilegeControl(props: PrivilegeControlProps) { } - @@ -219,24 +219,21 @@ export default function PrivilegeControl(props: PrivilegeControlProps) { { props.user.trainer.length === 0 - ? Not a Trainer! + ? Not a Trainer! : props.user.trainer.map((equipmentID: number) => ( )) } - - - - - diff --git a/client/src/pages/lab_management/users/userpage/Trainings.tsx b/client/src/pages/lab_management/users/userpage/Trainings.tsx index 47bc0f63..ad71516d 100644 --- a/client/src/pages/lab_management/users/userpage/Trainings.tsx +++ b/client/src/pages/lab_management/users/userpage/Trainings.tsx @@ -49,7 +49,7 @@ export default function Trainings(props: TrainingProps) { {props.user.passedModules != null && props.user.passedModules.map((module: { moduleID: number, moduleName: string, passedDate: string, makerspaceID: string }) => ( - + {module.moduleName} @@ -75,14 +75,14 @@ export default function Trainings(props: TrainingProps) { { (props.user.trainingHolds == null || (props.user.trainingHolds.length === 0)) && ( - No Locked Trainings + No Locked Trainings ) } {props.user.trainingHolds != null && props.user.trainingHolds.map((hold: { id: number; expires: Date; module: { id: number; name: string } }) => ( - + Exp: {format(new Date(hold.expires), "M/d/yy h:mmaaa")} diff --git a/client/src/queries/userQueries.ts b/client/src/queries/userQueries.ts index b285fa4c..376be5cd 100644 --- a/client/src/queries/userQueries.ts +++ b/client/src/queries/userQueries.ts @@ -22,6 +22,7 @@ export interface AccessCheckExtraInfo { equipment: { id: number; name: string; + subName: string; requiresTrainerApproval: boolean; room: { makerspace: { @@ -156,6 +157,7 @@ export const GET_USER = gql` equipment { id name + subName requiresTrainerApproval room { makerspace {