Merge branch 'Adding_dropdown' of https://git.marcoaiot.com/admin/marco.pms.web into Adding_dropdown
This commit is contained in:
commit
1f64cf65f9
@ -7,11 +7,20 @@ import { setProjectId } from "../../slices/localVariablesSlice";
|
|||||||
import { useSelectedProject } from "../../slices/apiDataManager";
|
import { useSelectedProject } from "../../slices/apiDataManager";
|
||||||
import { useProjectAssignedServices } from "../../hooks/useProjects";
|
import { useProjectAssignedServices } from "../../hooks/useProjects";
|
||||||
import { setService } from "../../slices/globalVariablesSlice";
|
import { setService } from "../../slices/globalVariablesSlice";
|
||||||
|
import { AppFormController } from "../../hooks/appHooks/useAppForm";
|
||||||
|
import SelectField from "../../components/common/Forms/SelectField";
|
||||||
|
import { useForm } from "react-hook-form";
|
||||||
|
|
||||||
const TaskPlanning = () => {
|
const TaskPlanning = () => {
|
||||||
const selectedProject = useSelectedProject();
|
const selectedProject = useSelectedProject();
|
||||||
const selectedService = useCurrentService();
|
const selectedService = useCurrentService();
|
||||||
const dispatch = useDispatch();
|
const dispatch = useDispatch();
|
||||||
|
const { control } = useForm({
|
||||||
|
defaultValues: {
|
||||||
|
serviceFilter: selectedService ?? ""
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
const { projectNames = [], loading: projectLoading } = useProjectName();
|
const { projectNames = [], loading: projectLoading } = useProjectName();
|
||||||
|
|
||||||
@ -29,6 +38,7 @@ const TaskPlanning = () => {
|
|||||||
if (projectLoading) {
|
if (projectLoading) {
|
||||||
return <div className="text-center py-5">Loading...</div>;
|
return <div className="text-center py-5">Loading...</div>;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="container-fluid">
|
<div className="container-fluid">
|
||||||
<Breadcrumb
|
<Breadcrumb
|
||||||
@ -43,25 +53,30 @@ const TaskPlanning = () => {
|
|||||||
{data?.length === 0 ? (
|
{data?.length === 0 ? (
|
||||||
<p className="badge bg-label-secondary m-0">Service not assigned</p>
|
<p className="badge bg-label-secondary m-0">Service not assigned</p>
|
||||||
) : (
|
) : (
|
||||||
<select
|
<AppFormController
|
||||||
name="DataTables_Table_0_length"
|
name="serviceFilter"
|
||||||
aria-controls="DataTables_Table_0"
|
control={control}
|
||||||
className="form-select form-select-sm"
|
render={({ field }) => (
|
||||||
aria-label="Select Service"
|
<SelectField
|
||||||
value={selectedService ?? ""}
|
label="Services"
|
||||||
onChange={(e) => dispatch(setService(e.target.value))}
|
placeholder="All Services"
|
||||||
>
|
options={data ?? []}
|
||||||
<option value="">All Services</option>
|
labelKeyKey="name"
|
||||||
{!servicesLoading &&
|
valueKeyKey="id"
|
||||||
data?.map((service) => (
|
isLoading={servicesLoading}
|
||||||
<option key={service.id} value={service.id}>
|
value={field.value}
|
||||||
{service.name}
|
onChange={(val) => {
|
||||||
</option>
|
field.onChange(val); // react-hook-form update
|
||||||
))}
|
dispatch(setService(val)); // Redux update
|
||||||
</select>
|
}}
|
||||||
|
className="m-0"
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
/>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
{/* Planning Component */}
|
{/* Planning Component */}
|
||||||
{selectedProject ? (
|
{selectedProject ? (
|
||||||
<InfraPlanning />
|
<InfraPlanning />
|
||||||
|
|||||||
@ -10,6 +10,9 @@ import { useFab } from "../../Context/FabContext";
|
|||||||
import SubTask from "../../components/Activities/SubTask";
|
import SubTask from "../../components/Activities/SubTask";
|
||||||
import { useProjectAssignedServices } from "../../hooks/useProjects";
|
import { useProjectAssignedServices } from "../../hooks/useProjects";
|
||||||
import { useSelectedProject } from "../../slices/apiDataManager";
|
import { useSelectedProject } from "../../slices/apiDataManager";
|
||||||
|
import SelectField from "../../components/common/Forms/SelectField";
|
||||||
|
import { AppFormController } from "../../hooks/appHooks/useAppForm";
|
||||||
|
import { useForm } from "react-hook-form";
|
||||||
|
|
||||||
const DailyProgrssContext = createContext();
|
const DailyProgrssContext = createContext();
|
||||||
export const useDailyProgrssContext = () => {
|
export const useDailyProgrssContext = () => {
|
||||||
@ -23,9 +26,9 @@ export const useDailyProgrssContext = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const DailyProgrssReport = () => {
|
const DailyProgrssReport = () => {
|
||||||
const selectedProject = useSelectedProject()
|
const selectedProject = useSelectedProject()
|
||||||
const [service, setService] = useState("");
|
const [service, setService] = useState("");
|
||||||
const [filter,setFilter] = useState('')
|
const [filter, setFilter] = useState('')
|
||||||
const { setOffcanvasContent, setShowTrigger } = useFab();
|
const { setOffcanvasContent, setShowTrigger } = useFab();
|
||||||
const { data, isLoading, isError, error } = useProjectAssignedServices(selectedProject);
|
const { data, isLoading, isError, error } = useProjectAssignedServices(selectedProject);
|
||||||
|
|
||||||
@ -41,8 +44,14 @@ const DailyProgrssReport = () => {
|
|||||||
filter,
|
filter,
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleFilter = (filterObj)=>{
|
const { control } = useForm({
|
||||||
setFilter(filterObj)
|
defaultValues: {
|
||||||
|
serviceFilter: ""
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const handleFilter = (filterObj) => {
|
||||||
|
setFilter(filterObj)
|
||||||
}
|
}
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@ -89,32 +98,37 @@ const DailyProgrssReport = () => {
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<div className="card card-fullscreen p-5">
|
<div className="card card-fullscreen p-5">
|
||||||
{data?.length > 0 && (<div className="col-sm-4 col-md-3 col-12">
|
{data?.length > 0 && (
|
||||||
<select
|
<div className="col-sm-4 col-md-3 col-12 text-start">
|
||||||
className="form-select form-select-sm"
|
<AppFormController
|
||||||
value={service ?? ""}
|
name="serviceFilter"
|
||||||
onChange={(e) => setService(e.target.value)}
|
control={control}
|
||||||
>
|
defaultValue={service ?? ""}
|
||||||
{isLoading ? (
|
render={({ field }) => (
|
||||||
<option value="lading" disabled>Loading...</option>
|
<SelectField
|
||||||
) : (
|
label="Services"
|
||||||
<>
|
options={data ?? []}
|
||||||
<option value="">
|
placeholder="All Services"
|
||||||
All Services
|
labelKeyKey="name"
|
||||||
</option>
|
valueKeyKey="id"
|
||||||
{data?.map((service) => (
|
isLoading={isLoading}
|
||||||
<option key={service.id} value={service.id}>
|
value={field.value}
|
||||||
{service.name}
|
onChange={(val) => {
|
||||||
</option>
|
field.onChange(val); // update RHF
|
||||||
))}
|
setService(val); // update your local filter state
|
||||||
</>
|
}}
|
||||||
)}
|
className="m-0"
|
||||||
</select>
|
/>
|
||||||
</div>)}
|
)}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<TaskReportList />
|
<TaskReportList />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</DailyProgrssContext.Provider>
|
</DailyProgrssContext.Provider>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user