@@ -7,6 +7,7 @@ import { UserDetail, UserResult } from "."; | |||||
import { cache } from "react"; | import { cache } from "react"; | ||||
export interface UserInputs { | export interface UserInputs { | ||||
username: string; | |||||
name: string; | name: string; | ||||
email?: string; | email?: string; | ||||
addAuthIds?: number[]; | addAuthIds?: number[]; | ||||
@@ -175,7 +175,7 @@ const EditTeam: React.FC<Props> = async ({ staff, teamInfo }) => { | |||||
<Button | <Button | ||||
variant="outlined" | variant="outlined" | ||||
startIcon={<Close />} | startIcon={<Close />} | ||||
// onClick={handleCancel} | |||||
onClick={() => router.back()} | |||||
> | > | ||||
{t("Cancel")} | {t("Cancel")} | ||||
</Button> | </Button> | ||||
@@ -50,6 +50,7 @@ interface Props { | |||||
} | } | ||||
const EditUser: React.FC<Props> = async ({ user, rules, auths }) => { | const EditUser: React.FC<Props> = async ({ user, rules, auths }) => { | ||||
console.log(user) | |||||
const { t } = useTranslation("user"); | const { t } = useTranslation("user"); | ||||
const formProps = useForm<UserInputs>(); | const formProps = useForm<UserInputs>(); | ||||
const searchParams = useSearchParams(); | const searchParams = useSearchParams(); | ||||
@@ -79,7 +80,7 @@ const EditUser: React.FC<Props> = async ({ user, rules, auths }) => { | |||||
console.log(addAuthIds); | console.log(addAuthIds); | ||||
try { | try { | ||||
formProps.reset({ | formProps.reset({ | ||||
name: user.username, | |||||
username: user.username, | |||||
email: user.email, | email: user.email, | ||||
addAuthIds: addAuthIds, | addAuthIds: addAuthIds, | ||||
removeAuthIds: [], | removeAuthIds: [], | ||||
@@ -145,7 +146,8 @@ const EditUser: React.FC<Props> = async ({ user, rules, auths }) => { | |||||
} | } | ||||
} | } | ||||
const userData = { | const userData = { | ||||
name: data.name, | |||||
username: data.username, | |||||
name: user.name, | |||||
locked: false, | locked: false, | ||||
addAuthIds: data.addAuthIds || [], | addAuthIds: data.addAuthIds || [], | ||||
removeAuthIds: data.removeAuthIds || [], | removeAuthIds: data.removeAuthIds || [], | ||||
@@ -159,6 +161,7 @@ const EditUser: React.FC<Props> = async ({ user, rules, auths }) => { | |||||
return; | return; | ||||
} | } | ||||
console.log("passed"); | console.log("passed"); | ||||
console.log(userData); | |||||
await editUser(id, userData); | await editUser(id, userData); | ||||
if (data.password && data.password.length > 0) { | if (data.password && data.password.length > 0) { | ||||
await adminChangePassword(pwData); | await adminChangePassword(pwData); | ||||
@@ -15,14 +15,16 @@ interface SubComponents { | |||||
} | } | ||||
const EditUserWrapper: React.FC<searchParamsProps> & SubComponents = async ({ | const EditUserWrapper: React.FC<searchParamsProps> & SubComponents = async ({ | ||||
searchParams | |||||
searchParams, | |||||
}) => { | }) => { | ||||
const id = parseInt(searchParams.id as string) | |||||
const pwRule = await fetchPwRules() | |||||
const user = await fetchUserDetails(id); | |||||
const auths = await fetchAuth("user", id); | |||||
const id = parseInt(searchParams.id as string); | |||||
const [pwRule, user, auths] = await Promise.all([ | |||||
fetchPwRules(), | |||||
fetchUserDetails(id), | |||||
fetchAuth("user", id), | |||||
]); | |||||
return <EditUser user={user.data} rules={pwRule} auths={auths.records}/> | |||||
return <EditUser user={user.data} rules={pwRule} auths={auths.records} />; | |||||
}; | }; | ||||
EditUserWrapper.Loading = EditUserLoading; | EditUserWrapper.Loading = EditUserLoading; | ||||
@@ -34,10 +34,10 @@ const UserDetail: React.FC = () => { | |||||
<TextField | <TextField | ||||
label={t("username")} | label={t("username")} | ||||
fullWidth | fullWidth | ||||
{...register("name", { | |||||
{...register("username", { | |||||
required: "username required!", | required: "username required!", | ||||
})} | })} | ||||
error={Boolean(errors.name)} | |||||
error={Boolean(errors.username)} | |||||
/> | /> | ||||
</Grid> | </Grid> | ||||
<Grid item xs={6}> | <Grid item xs={6}> | ||||
@@ -13,7 +13,7 @@ import { | |||||
useForm, | useForm, | ||||
useFormContext, | useFormContext, | ||||
} from "react-hook-form"; | } from "react-hook-form"; | ||||
import { Check, Close, Error } from "@mui/icons-material"; | |||||
import { Check, Close, Error, RestartAlt } from "@mui/icons-material"; | |||||
import { StaffResult } from "@/app/api/staff"; | import { StaffResult } from "@/app/api/staff"; | ||||
import { CreateGroupInputs, auth, fetchAuth, saveGroup } from "@/app/api/group/actions"; | import { CreateGroupInputs, auth, fetchAuth, saveGroup } from "@/app/api/group/actions"; | ||||
import { IndivUserGroup, UserGroupResult } from "@/app/api/group"; | import { IndivUserGroup, UserGroupResult } from "@/app/api/group"; | ||||
@@ -86,11 +86,12 @@ const EditUserGroup: React.FC<Props> = ({ users, auths, group }) => { | |||||
addAuthIds: group.authIds, | addAuthIds: group.authIds, | ||||
addUserIds: group.userIds, | addUserIds: group.userIds, | ||||
}) | }) | ||||
}, []); | |||||
}, [group, users]); | |||||
useEffect(() => { | useEffect(() => { | ||||
resetGroup() | resetGroup() | ||||
}, [group, users]); | |||||
}, []); | |||||
// }, [group, users]); | |||||
return ( | return ( | ||||
<> | <> | ||||
@@ -136,10 +137,17 @@ const EditUserGroup: React.FC<Props> = ({ users, auths, group }) => { | |||||
{tabIndex === 1 && <AuthorityAllocation auth={auths!!}/>} | {tabIndex === 1 && <AuthorityAllocation auth={auths!!}/>} | ||||
{tabIndex === 2 && <UserAllocation users={users!!} />} | {tabIndex === 2 && <UserAllocation users={users!!} />} | ||||
<Stack direction="row" justifyContent="flex-end" gap={1}> | <Stack direction="row" justifyContent="flex-end" gap={1}> | ||||
<Button | |||||
variant="text" | |||||
startIcon={<RestartAlt />} | |||||
onClick={resetGroup} | |||||
> | |||||
{t("Reset")} | |||||
</Button> | |||||
<Button | <Button | ||||
variant="outlined" | variant="outlined" | ||||
startIcon={<Close />} | startIcon={<Close />} | ||||
// onClick={handleCancel} | |||||
onClick={() => router.back()} | |||||
> | > | ||||
{t("Cancel")} | {t("Cancel")} | ||||
</Button> | </Button> | ||||