fixed attendance logs and role name

This commit is contained in:
Pramod Mahajan 2025-04-09 11:35:53 +05:30
parent 453c53940f
commit 1483cab13f
2 changed files with 77 additions and 90 deletions

View File

@ -33,11 +33,12 @@ const AttendancePage = () => {
const dispatch = useDispatch(); const dispatch = useDispatch();
const [formData, setFormData] = useState({ const [formData, setFormData] = useState({
markTime: "", time: "",
description: "", description: "",
date: new Date().toLocaleDateString(), date: new Date().toLocaleDateString(),
}); });
const getRole = (roleId) => { const getRole = (roleId) => {
if (!empRoles) return "Unassigned"; if (!empRoles) return "Unassigned";
if (!roleId) return "Unassigned"; if (!roleId) return "Unassigned";
@ -67,24 +68,22 @@ const AttendancePage = () => {
} }
}; };
const handleSubmit = ( formData ) =>
const handleSubmit = ( formData ) =>{
dispatch( markCurrentAttendance( formData ) ).then( ( action ) =>
{ {
dispatch(markCurrentAttendance(formData)) const updatedAttendance = attendances.map(item =>
.then((action) => {
const updatedAttendance = attendances.map((item) =>
item.employeeId === action.payload.employeeId item.employeeId === action.payload.employeeId
? { ...item, ...action.payload } ? { ...item, ...action.payload }
: item : item
); );
cacheData("Attendance", { cacheData("Attendance", { data: updatedAttendance, projectId: selectedProject })
data: updatedAttendance, setAttendances(updatedAttendance)
projectId: selectedProject, showToast("Attedance Marked Successfully","success")
});
setAttendances(updatedAttendance);
showToast("Attedance Marked Successfully", "success");
}) })
.catch((error) => { .catch( ( error ) =>
showToast(error.message, "error"); {
showToast(error.message,"error")
}); });
}; };
@ -127,69 +126,59 @@ const AttendancePage = () => {
{ label: "Attendance", link: null }, { label: "Attendance", link: null },
]} ]}
></Breadcrumb> ></Breadcrumb>
<div className="nav-align-top nav-tabs-shadow"> <div class="nav-align-top nav-tabs-shadow">
<ul className="nav nav-tabs" role="tablist"> <ul class="nav nav-tabs" role="tablist">
<div <div
className="dataTables_length text-start py-2 px-2" className="dataTables_length text-start py-2 px-2"
id="DataTables_Table_0_length" id="DataTables_Table_0_length"
> >
{loginUser && loginUser?.projects.length > 1 && ( {
<label> ((loginUser && loginUser?.projects.length > 1) ) && (<label>
<select <select
name="DataTables_Table_0_length" name="DataTables_Table_0_length"
aria-controls="DataTables_Table_0" aria-controls="DataTables_Table_0"
className="form-select form-select-sm" className="form-select form-select-sm"
value={selectedProject} value={selectedProject}
onChange={(e) => dispatch(setProjectId(e.target.value))} onChange={(e)=>dispatch(setProjectId(e.target.value))}
aria-label="" aria-label=""
> >
{!projectLoading && {!projectLoading && projects?.filter(project =>
projects loginUser?.projects?.map(Number).includes(project.id)).map((project)=>(
?.filter((project) =>
loginUser?.projects?.map(Number).includes(project.id)
)
.map((project) => (
<option value={project.id}>{project.name}</option> <option value={project.id}>{project.name}</option>
))} ))}
{projectLoading && ( {projectLoading && <option value="Loading..." disabled>Loading...</option> }
<option value="Loading..." disabled>
Loading...
</option>
)}
</select> </select>
</label> </label>)
)} }
</div> </div>
</ul> </ul>
<ul className="nav nav-tabs" role="tablist"> <ul class="nav nav-tabs" role="tablist">
<li className="nav-item"> <li class="nav-item">
<button <button
type="button" type="button"
className="nav-link active" class="nav-link active"
role="tab" role="tab"
data-bs-toggle="tab" data-bs-toggle="tab"
data-bs-target="#navs-top-home" data-bs-target="#navs-top-home"
aria-controls="navs-top-home" aria-controls="navs-top-home"
aria-selected="true" aria-selected="true">
>
All All
</button> </button>
</li> </li>
<li className="nav-item"> <li class="nav-item">
<button <button
type="button" type="button"
className="nav-link" class="nav-link"
role="tab" role="tab"
data-bs-toggle="tab" data-bs-toggle="tab"
data-bs-target="#navs-top-profile" data-bs-target="#navs-top-profile"
aria-controls="navs-top-profile" aria-controls="navs-top-profile"
aria-selected="false" aria-selected="false">
>
Logs Logs
</button> </button>
</li> </li>
<li className={`nav-item ${!DoRegularized && "d-none"}`}> <li className={`nav-item ${!DoRegularized && 'd-none'}`}>
<button <button
type="button" type="button"
className="nav-link " className="nav-link "

View File

@ -4,9 +4,7 @@ import {clearCacheKey} from '../apiDataManager';
export const markCurrentAttendance = createAsyncThunk( export const markCurrentAttendance = createAsyncThunk(
'attendanceCurrentDate/markAttendance', 'attendanceCurrentDate/markAttendance',
async ( formData, {getState, dispatch, rejectWithValue} ) => async (formData, { getState, dispatch, rejectWithValue }) => {
{
const { projectId } = getState().localVariables const { projectId } = getState().localVariables
try try
{ {