Merge branch 'assign-to-group' of WrenchBoard/Users-Wrench into master
This commit is contained in:
@@ -25,6 +25,8 @@ const validationSchema = Yup.object().shape({
|
|||||||
function JobListPopout({ details, onClose, situation }) {
|
function JobListPopout({ details, onClose, situation }) {
|
||||||
const dispatch = useDispatch()
|
const dispatch = useDispatch()
|
||||||
|
|
||||||
|
const [requestStatus, setRequestStatus] = useState({message:'', status:false})
|
||||||
|
|
||||||
const [familyList, setFamilyList] = useState([]);
|
const [familyList, setFamilyList] = useState([]);
|
||||||
let [loader, setLoader] = useState({
|
let [loader, setLoader] = useState({
|
||||||
member: false,
|
member: false,
|
||||||
@@ -96,7 +98,7 @@ const dispatch = useDispatch()
|
|||||||
else if (name === "individual")
|
else if (name === "individual")
|
||||||
setErrMsg({ jobFields: { individual: "please enter email" } });
|
setErrMsg({ jobFields: { individual: "please enter email" } });
|
||||||
else if (name === "group")
|
else if (name === "group")
|
||||||
setErrMsg({ jobFields: { group: "please select a family member" } });
|
setErrMsg({ jobFields: { group: "please select a group" } });
|
||||||
} finally {
|
} finally {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
setErrMsg({ jobFields: "" });
|
setErrMsg({ jobFields: "" });
|
||||||
@@ -150,9 +152,12 @@ const dispatch = useDispatch()
|
|||||||
// for group input
|
// for group input
|
||||||
reqData = {
|
reqData = {
|
||||||
...jobReq,
|
...jobReq,
|
||||||
email: values?.individual,
|
email: '',
|
||||||
|
group_id: values?.group,
|
||||||
action: 13025,
|
action: 13025,
|
||||||
assign_mode: 110033,
|
assign_mode: 110044,
|
||||||
|
duration: details?.timeline_days,
|
||||||
|
// duration: 0,
|
||||||
};
|
};
|
||||||
setLoader({ jobFields: { group: true } });
|
setLoader({ jobFields: { group: true } });
|
||||||
} else {
|
} else {
|
||||||
@@ -161,17 +166,51 @@ const dispatch = useDispatch()
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
const res = await apiCall.assignJobTask(reqData);
|
const res = await apiCall.assignJobTask(reqData);
|
||||||
let { data } = await res;
|
let { status, data } = await res;
|
||||||
setLoader({ jobFields: false });
|
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" }));
|
dispatch(tableReload({ type: "JOBTABLE" }));
|
||||||
onClose();
|
setRequestStatus({message:'Successful', status:true})
|
||||||
throw new Response(data);
|
setTimeout(()=>{
|
||||||
|
setLoader({ jobFields: false });
|
||||||
|
onClose();
|
||||||
|
throw new Response(data);
|
||||||
|
},3000)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
setLoader({ jobFields: false });
|
setRequestStatus({message:'Unable to complete', status:false})
|
||||||
throw new Error(error);
|
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)
|
// console.log("Job List P >> ", details)
|
||||||
return (
|
return (
|
||||||
<ModalCom action={onClose} situation={situation} className="job-popup">
|
<ModalCom action={onClose} situation={situation} className="job-popup">
|
||||||
@@ -246,6 +285,10 @@ const dispatch = useDispatch()
|
|||||||
/>
|
/>
|
||||||
<p>{errMsg.deliveryDetail}</p>
|
<p>{errMsg.deliveryDetail}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{requestStatus.message &&
|
||||||
|
<p className={`w-full text-lg ${requestStatus.status ? 'text-emerald-600' : 'text-red-600'}`}>{requestStatus.message}</p>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* ACTION SECTION */}
|
{/* ACTION SECTION */}
|
||||||
@@ -267,13 +310,13 @@ const dispatch = useDispatch()
|
|||||||
data={familyList}
|
data={familyList}
|
||||||
btnText="Assign to family"
|
btnText="Assign to family"
|
||||||
optionText="Select Family"
|
optionText="Select Family"
|
||||||
loader={loader?.jobFields.family}
|
loader={loader?.jobFields?.family}
|
||||||
errorHandler={errorHandler}
|
errorHandler={errorHandler}
|
||||||
/>
|
/>
|
||||||
<p className="h-4 text-[13px] font-light italic text-red-600 tracking-wide">
|
<p className="h-4 text-[13px] font-light italic text-red-600 tracking-wide">
|
||||||
{" "}
|
{" "}
|
||||||
{props?.values.family === "" && (
|
{props?.values?.family === "" && (
|
||||||
<span>{errMsg.jobFields.family}</span>
|
<span>{errMsg?.jobFields?.family}</span>
|
||||||
)}
|
)}
|
||||||
</p>{" "}
|
</p>{" "}
|
||||||
</Form>
|
</Form>
|
||||||
@@ -298,13 +341,13 @@ const dispatch = useDispatch()
|
|||||||
data={publicArray}
|
data={publicArray}
|
||||||
btnText="Show Task to Public"
|
btnText="Show Task to Public"
|
||||||
optionText="Select Duration"
|
optionText="Select Duration"
|
||||||
loader={loader?.jobFields.public}
|
loader={loader?.jobFields?.public}
|
||||||
errorHandler={errorHandler}
|
errorHandler={errorHandler}
|
||||||
/>
|
/>
|
||||||
<p className="h-4 text-[13px] font-light italic text-red-600 tracking-wide">
|
<p className="h-4 text-[13px] font-light italic text-red-600 tracking-wide">
|
||||||
{" "}
|
{" "}
|
||||||
{props?.values.public === "" && (
|
{props?.values.public === "" && (
|
||||||
<span>{errMsg.jobFields.public}</span>
|
<span>{errMsg?.jobFields?.public}</span>
|
||||||
)}
|
)}
|
||||||
</p>{" "}
|
</p>{" "}
|
||||||
</Form>
|
</Form>
|
||||||
@@ -329,13 +372,13 @@ const dispatch = useDispatch()
|
|||||||
placeholder="Enter email of individual"
|
placeholder="Enter email of individual"
|
||||||
inputHandler={props?.handleChange}
|
inputHandler={props?.handleChange}
|
||||||
btnText="Send Offer to Individual"
|
btnText="Send Offer to Individual"
|
||||||
loader={loader?.jobFields.individual}
|
loader={loader?.jobFields?.individual}
|
||||||
errorHandler={errorHandler}
|
errorHandler={errorHandler}
|
||||||
/>
|
/>
|
||||||
<p className="h-4 text-[13px] font-light italic text-red-600 tracking-wide">
|
<p className="h-4 text-[13px] font-light italic text-red-600 tracking-wide">
|
||||||
{" "}
|
{" "}
|
||||||
{props?.values.individual === "" && (
|
{props?.values.individual === "" && (
|
||||||
<span>{errMsg.jobFields.individual}</span>
|
<span>{errMsg?.jobFields?.individual}</span>
|
||||||
)}
|
)}
|
||||||
</p>{" "}
|
</p>{" "}
|
||||||
</Form>
|
</Form>
|
||||||
@@ -359,14 +402,15 @@ const dispatch = useDispatch()
|
|||||||
inputName="group"
|
inputName="group"
|
||||||
value={props?.values.group}
|
value={props?.values.group}
|
||||||
btnText="Send Order to Group"
|
btnText="Send Order to Group"
|
||||||
optionText="Group"
|
optionText="Select Group"
|
||||||
loader={loader?.jobFields.group}
|
loader={loader?.jobFields?.group}
|
||||||
errorHandler={errorHandler}
|
errorHandler={errorHandler}
|
||||||
|
data={groupList}
|
||||||
/>
|
/>
|
||||||
<p className="h-4 text-[13px] font-light italic text-red-600 tracking-wide">
|
<p className="h-4 text-[13px] font-light italic text-red-600 tracking-wide">
|
||||||
{" "}
|
{" "}
|
||||||
{props?.values.group === "" && (
|
{props?.values.group === "" && (
|
||||||
<span>{errMsg.jobFields.group}</span>
|
<span>{errMsg?.jobFields?.group}</span>
|
||||||
)}
|
)}
|
||||||
</p>
|
</p>
|
||||||
</Form>
|
</Form>
|
||||||
@@ -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`}
|
className={`input-field placeholder:text-base text-dark-gray w-full h-full bg-white outline-none px-2`}
|
||||||
value={value}
|
value={value}
|
||||||
>
|
>
|
||||||
<option value="">{optionText}</option>
|
{/* <option value="">{optionText}</option> */}
|
||||||
{Array.isArray(data) &&
|
{(inputName == 'family' || inputName == 'public') &&
|
||||||
data?.map((item, idx) => (
|
Array.isArray(data) &&
|
||||||
<React.Fragment key={idx}>
|
<>
|
||||||
{inputName === "family" && item?.last_login !== "" && (
|
<option value="">{optionText}</option>
|
||||||
<option value={item?.family_uid} key={idx}>
|
{ data?.map((item, idx) => (
|
||||||
{`${item?.firstname} ${item?.lastname}`}
|
<React.Fragment key={idx}>
|
||||||
|
{inputName === "family" && item?.last_login !== "" && (
|
||||||
|
<option value={item?.family_uid} key={idx}>
|
||||||
|
{`${item?.firstname} ${item?.lastname}`}
|
||||||
|
</option>
|
||||||
|
)}
|
||||||
|
{inputName === "public" && (
|
||||||
|
<option value={item?.duration} key={idx}>
|
||||||
|
{item?.name}
|
||||||
|
</option>
|
||||||
|
)}
|
||||||
|
{/* {inputName === "group" && (
|
||||||
|
<option value={item?.group_id} key={idx}>
|
||||||
|
{item?.group_name}
|
||||||
|
</option>
|
||||||
|
)} */}
|
||||||
|
</React.Fragment>
|
||||||
|
))}
|
||||||
|
</>
|
||||||
|
}
|
||||||
|
{(inputName == 'group') &&
|
||||||
|
<>
|
||||||
|
{data.loading ?
|
||||||
|
<option value={''}>
|
||||||
|
Loading...
|
||||||
|
</option>
|
||||||
|
: data?.groups?.length > 0 ?
|
||||||
|
<>
|
||||||
|
<option value="">{optionText}</option>
|
||||||
|
{ data?.groups?.map((item, index)=>(
|
||||||
|
<option value={item?.group_id} key={index}>
|
||||||
|
{item?.group_name}
|
||||||
</option>
|
</option>
|
||||||
)}
|
))}
|
||||||
{inputName === "public" && (
|
</>
|
||||||
<option value={item?.duration} key={idx}>
|
:
|
||||||
{item?.name}
|
<option value="">No Group Found</option>
|
||||||
</option>
|
}
|
||||||
)}
|
</>
|
||||||
{inputName === "group" && (
|
}
|
||||||
<option value={item?.family_uid} key={idx}>
|
|
||||||
{item?.firstname}
|
|
||||||
</option>
|
|
||||||
)}
|
|
||||||
</React.Fragment>
|
|
||||||
))}
|
|
||||||
</Field>
|
</Field>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user