From e8c3dca7310b8cb6442382bde4110f2812ad0985 Mon Sep 17 00:00:00 2001 From: victorAnumudu Date: Sun, 7 Jan 2024 19:45:32 +0100 Subject: [PATCH 1/2] assign task to group implementation --- src/components/jobPopout/JobListPopout.jsx | 149 +++++++++++++++------ 1 file changed, 109 insertions(+), 40 deletions(-) diff --git a/src/components/jobPopout/JobListPopout.jsx b/src/components/jobPopout/JobListPopout.jsx index 6fed709..ea2c2f9 100644 --- a/src/components/jobPopout/JobListPopout.jsx +++ b/src/components/jobPopout/JobListPopout.jsx @@ -25,6 +25,8 @@ const validationSchema = Yup.object().shape({ function JobListPopout({ details, onClose, situation }) { const dispatch = useDispatch() +const [requestStatus, setRequestStatus] = useState({message:'', status:false}) + const [familyList, setFamilyList] = useState([]); let [loader, setLoader] = useState({ member: false, @@ -96,7 +98,7 @@ const dispatch = useDispatch() else if (name === "individual") setErrMsg({ jobFields: { individual: "please enter email" } }); else if (name === "group") - setErrMsg({ jobFields: { group: "please select a family member" } }); + setErrMsg({ jobFields: { group: "please select a group" } }); } finally { setTimeout(() => { setErrMsg({ jobFields: "" }); @@ -150,9 +152,12 @@ const dispatch = useDispatch() // for group input reqData = { ...jobReq, - email: values?.individual, + email: '', + group_id: values?.group, action: 13025, - assign_mode: 110033, + assign_mode: 110044, + duration: details?.timeline_days, + // duration: 0, }; setLoader({ jobFields: { group: true } }); } else { @@ -161,17 +166,51 @@ const dispatch = useDispatch() try { const res = await apiCall.assignJobTask(reqData); - let { data } = await res; - setLoader({ jobFields: false }); + let { status, data } = await res; + if(status != 200 || data.internal_return < 0){ + setRequestStatus({message:'Unable to complete', status:false}) + return setTimeout(()=>{ + setRequestStatus({message:'', status:false}) + },3000) + } dispatch(tableReload({ type: "JOBTABLE" })); - onClose(); - throw new Response(data); + setRequestStatus({message:'Successful', status:true}) + setTimeout(()=>{ + setLoader({ jobFields: false }); + onClose(); + throw new Response(data); + },3000) } catch (error) { - setLoader({ jobFields: false }); - throw new Error(error); + setRequestStatus({message:'Unable to complete', status:false}) + setTimeout(()=>{ + setRequestStatus({message:'', status:false}) + setLoader({ jobFields: false }); + throw new Error(error); + },3000) } }; + const [groupList, setGroupList] = useState({loading: true, groups: [], members: []}) + + // FUNCTION TO POPULATE USER GROUP LIST + useEffect(()=>{ + // setGroupList({loading: true, groups: [], members: []}) + apiCall.jobGroupList({}).then(res => { + const {status, data} = res + if(status != 200 || data?.internal_return < 0){ + setGroupList({loading: false, groups: [], members: []}) + return + } + if(data.result_list.length < 0){ + setGroupList({loading: false, groups: [], members: []}) + return + } + setGroupList({loading: false, groups: data.result_list, members: data.result_list_member}) + }).catch(error => { + setGroupList({loading: false, groups: [], members: []}) + }) +},[]) + // console.log("Job List P >> ", details) return ( @@ -246,6 +285,10 @@ const dispatch = useDispatch() />

{errMsg.deliveryDetail}

+ + {requestStatus.message && +

{requestStatus.message}

+ } {/* ACTION SECTION */} @@ -267,13 +310,13 @@ const dispatch = useDispatch() data={familyList} btnText="Assign to family" optionText="Select Family" - loader={loader?.jobFields.family} + loader={loader?.jobFields?.family} errorHandler={errorHandler} />

{" "} - {props?.values.family === "" && ( - {errMsg.jobFields.family} + {props?.values?.family === "" && ( + {errMsg?.jobFields?.family} )}

{" "} @@ -298,13 +341,13 @@ const dispatch = useDispatch() data={publicArray} btnText="Show Task to Public" optionText="Select Duration" - loader={loader?.jobFields.public} + loader={loader?.jobFields?.public} errorHandler={errorHandler} />

{" "} {props?.values.public === "" && ( - {errMsg.jobFields.public} + {errMsg?.jobFields?.public} )}

{" "} @@ -329,13 +372,13 @@ const dispatch = useDispatch() placeholder="Enter email of individual" inputHandler={props?.handleChange} btnText="Send Offer to Individual" - loader={loader?.jobFields.individual} + loader={loader?.jobFields?.individual} errorHandler={errorHandler} />

{" "} {props?.values.individual === "" && ( - {errMsg.jobFields.individual} + {errMsg?.jobFields?.individual} )}

{" "} @@ -343,7 +386,7 @@ const dispatch = useDispatch() }} - { process.env.REACT_APP_SHOW_OFFER_GROUP_JOB != 0 && + { process.env.REACT_APP_SHOW_OFFER_GROUP_JOB == 0 &&

{" "} {props?.values.group === "" && ( - {errMsg.jobFields.group} + {errMsg?.jobFields?.group} )}

@@ -427,27 +471,52 @@ const JobFieldInput = ({ className={`input-field placeholder:text-base text-dark-gray w-full h-full bg-white outline-none px-2`} value={value} > - - {Array.isArray(data) && - data?.map((item, idx) => ( - - {inputName === "family" && item?.last_login !== "" && ( - */} + {(inputName == 'family' || inputName == 'public') && + Array.isArray(data) && + <> + + { data?.map((item, idx) => ( + + {inputName === "family" && item?.last_login !== "" && ( + + )} + {inputName === "public" && ( + + )} + {/* {inputName === "group" && ( + + )} */} + + ))} + + } + {(inputName == 'group') && + <> + {data.loading ? + + : data?.groups?.length > 0 ? + <> + + { data?.groups?.map((item, index)=>( + - )} - {inputName === "public" && ( - - )} - {inputName === "group" && ( - - )} - - ))} + ))} + + : + + } + + } From 71f987cbffffaf84cd8d7e1bb398979eb610c37a Mon Sep 17 00:00:00 2001 From: victorAnumudu Date: Mon, 8 Jan 2024 09:47:48 +0100 Subject: [PATCH 2/2] made group offer display when show offer to group is true --- src/components/jobPopout/JobListPopout.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/jobPopout/JobListPopout.jsx b/src/components/jobPopout/JobListPopout.jsx index ea2c2f9..d3b56a6 100644 --- a/src/components/jobPopout/JobListPopout.jsx +++ b/src/components/jobPopout/JobListPopout.jsx @@ -386,7 +386,7 @@ const [requestStatus, setRequestStatus] = useState({message:'', status:false}) }}
- { process.env.REACT_APP_SHOW_OFFER_GROUP_JOB == 0 && + { process.env.REACT_APP_SHOW_OFFER_GROUP_JOB != 0 &&