Adding Services Dropdown in Infrastructure. #410
@ -21,18 +21,17 @@ import { useProjectDetails, useProjectInfra } from "../../hooks/useProjects";
|
|||||||
import { useDispatch, useSelector } from "react-redux";
|
import { useDispatch, useSelector } from "react-redux";
|
||||||
import { refreshData } from "../../slices/localVariablesSlice";
|
import { refreshData } from "../../slices/localVariablesSlice";
|
||||||
import eventBus from "../../services/eventBus";
|
import eventBus from "../../services/eventBus";
|
||||||
import {useParams} from "react-router-dom";
|
import { useParams } from "react-router-dom";
|
||||||
import GlobalModel from "../common/GlobalModel";
|
import GlobalModel from "../common/GlobalModel";
|
||||||
|
|
||||||
const ProjectInfra = ( {data, onDataChange, eachSiteEngineer} ) =>
|
const ProjectInfra = ({ data, onDataChange, eachSiteEngineer }) => {
|
||||||
{
|
|
||||||
// const projectId = useSelector((store)=>store.localVariables.projectId)
|
// const projectId = useSelector((store)=>store.localVariables.projectId)
|
||||||
const projectId = useSelectedProject();
|
const projectId = useSelectedProject();
|
||||||
const reloadedData = useSelector((store) => store.localVariables.reload);
|
const reloadedData = useSelector((store) => store.localVariables.reload);
|
||||||
const [ expandedBuildings, setExpandedBuildings ] = useState( [] );
|
const [expandedBuildings, setExpandedBuildings] = useState([]);
|
||||||
const {projectInfra,isLoading,error} = useProjectInfra(projectId)
|
const { projectInfra, isLoading, error } = useProjectInfra(projectId)
|
||||||
const { projects_Details, refetch, loading } = useProjectDetails(data?.id);
|
const { projects_Details, refetch, loading } = useProjectDetails(data?.id);
|
||||||
const [ project, setProject ] = useState( projects_Details );
|
const [project, setProject] = useState(projects_Details);
|
||||||
const ManageInfra = useHasUserPermission(MANAGE_PROJECT_INFRA);
|
const ManageInfra = useHasUserPermission(MANAGE_PROJECT_INFRA);
|
||||||
const ManageTask = useHasUserPermission(MANAGE_TASK)
|
const ManageTask = useHasUserPermission(MANAGE_TASK)
|
||||||
const [showModalFloor, setshowModalFloor] = useState(false);
|
const [showModalFloor, setshowModalFloor] = useState(false);
|
||||||
@ -58,29 +57,29 @@ const ProjectInfra = ( {data, onDataChange, eachSiteEngineer} ) =>
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{showModalBuilding && <GlobalModel isOpen={showModalBuilding} size="md" closeModal={() => setshowModalBuilding( false )}>
|
{showModalBuilding && <GlobalModel isOpen={showModalBuilding} size="md" closeModal={() => setshowModalBuilding(false)}>
|
||||||
<BuildingModel
|
<BuildingModel
|
||||||
project={projectInfra}
|
project={projectInfra}
|
||||||
onClose={() => setshowModalBuilding( false )}
|
onClose={() => setshowModalBuilding(false)}
|
||||||
/>
|
/>
|
||||||
</GlobalModel>}
|
</GlobalModel>}
|
||||||
{showModalFloor && <GlobalModel isOpen={showModalFloor} size="md" closeModal={()=>setshowModalFloor(false)}>
|
{showModalFloor && <GlobalModel isOpen={showModalFloor} size="md" closeModal={() => setshowModalFloor(false)}>
|
||||||
<FloorModel
|
<FloorModel
|
||||||
project={projectInfra}
|
project={projectInfra}
|
||||||
onClose={()=>setshowModalFloor(false)}
|
onClose={() => setshowModalFloor(false)}
|
||||||
/>
|
/>
|
||||||
</GlobalModel>}
|
</GlobalModel>}
|
||||||
{showModalWorkArea && <GlobalModel isOpen={showModalWorkArea} size="lg" closeModal={()=>setshowModalWorkArea(false)} >
|
{showModalWorkArea && <GlobalModel isOpen={showModalWorkArea} size="lg" closeModal={() => setshowModalWorkArea(false)} >
|
||||||
<WorkAreaModel
|
<WorkAreaModel
|
||||||
project={projectInfra}
|
project={projectInfra}
|
||||||
onClose={()=>setshowModalWorkArea(false)}
|
onClose={() => setshowModalWorkArea(false)}
|
||||||
/>
|
/>
|
||||||
</GlobalModel>}
|
</GlobalModel>}
|
||||||
{showModalTask && ( <GlobalModel isOpen={showModalTask} size="lg" closeModal={()=>setshowModalTask(false)}>
|
{showModalTask && (<GlobalModel isOpen={showModalTask} size="lg" closeModal={() => setshowModalTask(false)}>
|
||||||
<TaskModel
|
<TaskModel
|
||||||
project={projectInfra}
|
project={projectInfra}
|
||||||
onClose={()=>setshowModalTask(false)}
|
onClose={() => setshowModalTask(false)}
|
||||||
/>
|
/>
|
||||||
</GlobalModel>)}
|
</GlobalModel>)}
|
||||||
<div className="col-md-12 col-lg-12 col-xl-12 order-0 mb-4">
|
<div className="col-md-12 col-lg-12 col-xl-12 order-0 mb-4">
|
||||||
<div className="card">
|
<div className="card">
|
||||||
@ -88,38 +87,59 @@ const ProjectInfra = ( {data, onDataChange, eachSiteEngineer} ) =>
|
|||||||
<div className="align-items-center">
|
<div className="align-items-center">
|
||||||
<div className="row ">
|
<div className="row ">
|
||||||
<div
|
<div
|
||||||
className={`col-12 text-end mb-1 `}
|
className="dataTables_length text-start py-2 px-6 col-md-4 col-12"
|
||||||
|
id="DataTables_Table_0_length"
|
||||||
>
|
>
|
||||||
{ManageInfra && (<>
|
<label>
|
||||||
<button
|
<select
|
||||||
type="button"
|
name="DataTables_Table_0_length"
|
||||||
className="link-button btn btn-xs rounded-md link-button-sm m-1 btn-primary"
|
aria-controls="DataTables_Table_0"
|
||||||
onClick={()=>setshowModalBuilding(true)}
|
className="form-select form-select-sm"
|
||||||
>
|
aria-label="Select Service"
|
||||||
<i className="bx bx-plus-circle me-2"></i>
|
defaultValue="Fire-Fitting"
|
||||||
Manage Building
|
// onChange={handleServiceChange}
|
||||||
</button>
|
>
|
||||||
<button
|
<option value="Fire-Fitting">Fire-Fitting</option>
|
||||||
type="button"
|
<option value="Welding">Welding</option>
|
||||||
className="link-button btn btn-xs rounded-md m-1 btn-primary"
|
<option value="Plumbing">Plumbing</option>
|
||||||
onClick={()=>setshowModalFloor(true)}
|
<option value="Electrical">Electrical</option>
|
||||||
>
|
</select>
|
||||||
<i className="bx bx-plus-circle me-2"></i>
|
</label>
|
||||||
Manage Floors
|
</div>
|
||||||
</button>
|
|
||||||
<button
|
{/* Buttons Section (aligned to right) */}
|
||||||
type="button"
|
<div className="col-md-8 col-12 text-end mb-1">
|
||||||
className="link-button btn btn-xs rounded-md m-1 btn-primary"
|
{ManageInfra && (
|
||||||
onClick={() => setshowModalWorkArea(true)}
|
<>
|
||||||
>
|
<button
|
||||||
<i className="bx bx-plus-circle me-2"></i>
|
type="button"
|
||||||
Manage Work Areas
|
className="link-button btn btn-xs rounded-md link-button-sm m-1 btn-primary"
|
||||||
</button></>)}
|
onClick={() => setshowModalBuilding(true)}
|
||||||
|
>
|
||||||
|
<i className="bx bx-plus-circle me-2"></i>
|
||||||
|
Manage Building
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
className="link-button btn btn-xs rounded-md m-1 btn-primary"
|
||||||
|
onClick={() => setshowModalFloor(true)}
|
||||||
|
>
|
||||||
|
<i className="bx bx-plus-circle me-2"></i>
|
||||||
|
Manage Floors
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
className="link-button btn btn-xs rounded-md m-1 btn-primary"
|
||||||
|
onClick={() => setshowModalWorkArea(true)}
|
||||||
|
>
|
||||||
|
<i className="bx bx-plus-circle me-2"></i>
|
||||||
|
Manage Work Areas
|
||||||
|
</button></>)}
|
||||||
|
|
||||||
{(ManageTask || ManageInfra) && (<button
|
{(ManageTask || ManageInfra) && (<button
|
||||||
type="button"
|
type="button"
|
||||||
className="link-button btn btn-xs rounded-md m-1 btn-primary"
|
className="link-button btn btn-xs rounded-md m-1 btn-primary"
|
||||||
onClick={()=>setshowModalTask(true)}
|
onClick={() => setshowModalTask(true)}
|
||||||
>
|
>
|
||||||
<i className="bx bx-plus-circle me-2"></i>
|
<i className="bx bx-plus-circle me-2"></i>
|
||||||
Create Tasks
|
Create Tasks
|
||||||
@ -132,8 +152,8 @@ const ProjectInfra = ( {data, onDataChange, eachSiteEngineer} ) =>
|
|||||||
<InfraTable
|
<InfraTable
|
||||||
buildings={projectInfra}
|
buildings={projectInfra}
|
||||||
projectId={projectId}
|
projectId={projectId}
|
||||||
// handleFloor={submitData}
|
// handleFloor={submitData}
|
||||||
// signalRHandler ={signalRHandler}
|
// signalRHandler ={signalRHandler}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
{!isLoading && projectInfra?.length == 0 && <div className="mt-5"><p>No Infra Avaiable</p></div>}
|
{!isLoading && projectInfra?.length == 0 && <div className="mt-5"><p>No Infra Avaiable</p></div>}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user