modified request for manage role.
This commit is contained in:
parent
a84cb355c8
commit
d88fd3180f
@ -70,39 +70,55 @@ const ManageRole = ( {employeeId, onClosed} ) =>
|
||||
}
|
||||
}, [initialRoles, reset]);
|
||||
|
||||
const onSubmit = ( formdata ) =>
|
||||
{
|
||||
const onSubmit = (formdata) => {
|
||||
setIsLoading(true);
|
||||
const result = [];
|
||||
for ( const [ roleId, isEnabled ] of Object.entries( formdata.selectedRole ) )
|
||||
{
|
||||
if ( isEnabled )
|
||||
{
|
||||
|
||||
const selectedRoles = formdata.selectedRole;
|
||||
|
||||
for (const [roleId, isChecked] of Object.entries(selectedRoles)) {
|
||||
const existingRole = employeeRoles?.find((role) => role.roleId === roleId);
|
||||
const wasChecked = !!existingRole?.isEnabled;
|
||||
|
||||
if (isChecked) {
|
||||
result.push({
|
||||
id: existingRole?.id || null,
|
||||
employeeId: employeeId,
|
||||
id: existingRole?.id || "00000000-0000-0000-0000-000000000000",
|
||||
employeeId,
|
||||
roleId,
|
||||
isEnabled: true,
|
||||
roleId: roleId,
|
||||
});
|
||||
} else if (wasChecked && !isChecked) {
|
||||
result.push({
|
||||
id: existingRole?.id,
|
||||
employeeId,
|
||||
roleId,
|
||||
isEnabled: false,
|
||||
});
|
||||
}
|
||||
}
|
||||
RolesRepository.createEmployeeRoles(result)
|
||||
.then((resp) => {
|
||||
showToast("Role assigned successfully", "success");
|
||||
|
||||
if (result.length === 0) {
|
||||
showToast("No changes made", "info");
|
||||
setIsLoading(false);
|
||||
reset()
|
||||
return;
|
||||
}
|
||||
console.log(result)
|
||||
|
||||
RolesRepository.createEmployeeRoles(result)
|
||||
.then(() => {
|
||||
showToast("Roles updated successfully", "success");
|
||||
setIsLoading(false);
|
||||
reset();
|
||||
onClosed();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
setIsLoading(false);
|
||||
|
||||
console.error(err);
|
||||
showToast(err.message, "error");
|
||||
});
|
||||
setIsLoading(false);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
return (
|
||||
<div
|
||||
className={`modal fade `}
|
||||
@ -128,7 +144,8 @@ const ManageRole = ( {employeeId, onClosed} ) =>
|
||||
className="d-flex flex-wrap justify-content-between align-items-center pb-5 "
|
||||
style={{ maxHeight: "70vh", overflowY: "scroll" }}
|
||||
>
|
||||
{(loading || roleLoading) && <p>Loading...</p>}
|
||||
{roleLoading && <p>Loading...</p>}
|
||||
{loading && <p>Loading...</p>}
|
||||
{data &&
|
||||
data.map((item) => (
|
||||
<div className="col-md-6 col-lg-4 mb-4" key={item.id}>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user