Compare commits

..

No commits in common. "6a6f0356bc04c390db80b209dc359312d8474f6d" and "453c53940f28b594083350329f8f209f229c8d5c" have entirely different histories.

2 changed files with 89 additions and 78 deletions

View File

@ -33,12 +33,11 @@ const AttendancePage = () => {
const dispatch = useDispatch(); const dispatch = useDispatch();
const [formData, setFormData] = useState({ const [formData, setFormData] = useState({
markTime: "", markTime: "",
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,26 +66,26 @@ const AttendancePage = () => {
document.querySelector(".modal-backdrop").remove(); document.querySelector(".modal-backdrop").remove();
} }
}; };
const handleSubmit = ( formData ) => const handleSubmit = ( formData ) =>
{ {
debugger dispatch(markCurrentAttendance(formData))
dispatch( markCurrentAttendance( formData ) ).then( ( action ) => .then((action) => {
{ const updatedAttendance = attendances.map((item) =>
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);
.catch( ( error ) => showToast("Attedance Marked Successfully", "success");
{ })
showToast(error.message,"error") .catch((error) => {
}); showToast(error.message, "error");
});
}; };
useEffect(() => { useEffect(() => {
@ -127,60 +126,70 @@ const AttendancePage = () => {
{ label: "Home", link: "/dashboard" }, { label: "Home", link: "/dashboard" },
{ label: "Attendance", link: null }, { label: "Attendance", link: null },
]} ]}
></Breadcrumb> ></Breadcrumb>
<div class="nav-align-top nav-tabs-shadow"> <div className="nav-align-top nav-tabs-shadow">
<ul class="nav nav-tabs" role="tablist"> <ul className="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 && (
((loginUser && loginUser?.projects?.length > 1) ) && (<label> <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 &&
projects
?.filter((project) =>
loginUser?.projects?.map(Number).includes(project.id)
)
.map((project) => (
<option value={project.id}>{project.name}</option>
))}
{projectLoading && (
<option value="Loading..." disabled>
Loading...
</option>
)}
</select>
</label>
)}
</div>
</ul>
<ul className="nav nav-tabs" role="tablist">
<li className="nav-item">
<button
type="button"
className="nav-link active"
role="tab"
data-bs-toggle="tab"
data-bs-target="#navs-top-home"
aria-controls="navs-top-home"
aria-selected="true"
> >
{!projectLoading && projects?.filter(project => All
loginUser?.projects?.map(Number).includes(project.id)).map((project)=>( </button>
<option value={project.id}>{project.name}</option> </li>
))} <li className="nav-item">
{projectLoading && <option value="Loading..." disabled>Loading...</option> } <button
</select> type="button"
</label>) className="nav-link"
} role="tab"
</div> data-bs-toggle="tab"
</ul> data-bs-target="#navs-top-profile"
<ul class="nav nav-tabs" role="tablist"> aria-controls="navs-top-profile"
<li class="nav-item"> aria-selected="false"
<button >
type="button" Logs
class="nav-link active" </button>
role="tab" </li>
data-bs-toggle="tab"
data-bs-target="#navs-top-home" <li className={`nav-item ${!DoRegularized && "d-none"}`}>
aria-controls="navs-top-home"
aria-selected="true">
All
</button>
</li>
<li class="nav-item">
<button
type="button"
class="nav-link"
role="tab"
data-bs-toggle="tab"
data-bs-target="#navs-top-profile"
aria-controls="navs-top-profile"
aria-selected="false">
Logs
</button>
</li>
<li className={`nav-item ${!DoRegularized && 'd-none'}`}>
<button <button
type="button" type="button"
className="nav-link " className="nav-link "

View File

@ -4,7 +4,9 @@ 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
{ {