Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 392e0394ed | |||
| a5d534f364 | |||
| 01416ff42c | |||
| 976b4afbbf |
@@ -1,10 +1,16 @@
|
|||||||
import React, { useState, useRef } from 'react'
|
import React, { useState } from 'react'
|
||||||
|
import { useNavigate } from 'react-router-dom'
|
||||||
|
|
||||||
import ModalCom from '../../Helpers/ModalCom'
|
import ModalCom from '../../Helpers/ModalCom'
|
||||||
import LoadingSpinner from '../../Spinners/LoadingSpinner'
|
import LoadingSpinner from '../../Spinners/LoadingSpinner'
|
||||||
|
|
||||||
|
import usersService from '../../../services/UsersService'
|
||||||
|
|
||||||
function CurrentTaskAction({jobDetails}) {
|
function CurrentTaskAction({jobDetails}) {
|
||||||
|
|
||||||
|
const apiCall = new usersService()
|
||||||
|
const navigate = useNavigate()
|
||||||
|
|
||||||
const [checked, setChecked] = useState(false)
|
const [checked, setChecked] = useState(false)
|
||||||
|
|
||||||
const [reqStatus, setReqStatus] = useState({loading:false, status: false, message: ''})
|
const [reqStatus, setReqStatus] = useState({loading:false, status: false, message: ''})
|
||||||
@@ -20,16 +26,37 @@ function CurrentTaskAction({jobDetails}) {
|
|||||||
|
|
||||||
// FUNCTION TO HANDLE WHEN USER CLICKS ON SEND FOR REVIEW AND ACCEPTANCE
|
// FUNCTION TO HANDLE WHEN USER CLICKS ON SEND FOR REVIEW AND ACCEPTANCE
|
||||||
const taskCompletedSubmit = () => {
|
const taskCompletedSubmit = () => {
|
||||||
setReqStatus({loading:true, status: false, message: ''})
|
setReqStatus({loading:true, status: false, message: ''}) // Sets loading spinner active
|
||||||
if(!checked){
|
let reqData = {
|
||||||
|
contract: jobDetails.contract,
|
||||||
|
contract_uid: jobDetails.contract_uid,
|
||||||
|
job_action: 'NOTIFY_COMPLETE',
|
||||||
|
}
|
||||||
|
if(!checked){ // checks that checkbox is selected
|
||||||
setReqStatus({loading:false, status: false, message: 'Please check the box above'})
|
setReqStatus({loading:false, status: false, message: 'Please check the box above'})
|
||||||
return setTimeout(()=>{
|
return setTimeout(()=>{
|
||||||
setReqStatus({loading:false, status: false, message: ''})
|
setReqStatus({loading:false, status: false, message: ''})
|
||||||
}, 3000)
|
}, 3000)
|
||||||
}
|
}
|
||||||
setTimeout(()=>{
|
|
||||||
setReqStatus({loading:false, status: false, message: ''})
|
// API CALL TO MARK TASK AS COMPLETED BY WORKER
|
||||||
}, 3000)
|
apiCall.taskCompleted(reqData).then((res)=>{
|
||||||
|
if(res.status != 200 || res.data.internal_return < 0){
|
||||||
|
setReqStatus({loading:false, status: false, message: 'unable to complete request. Try again'})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
setReqStatus({loading:false, status: true, message: 'Task marked completed successfully'})
|
||||||
|
setTimeout(()=>{ // Sets popout to false and navigates user to /mytask after 3 seconds
|
||||||
|
popUpHandler()
|
||||||
|
navigate('/mytask', {replace: true})
|
||||||
|
}, 3000)
|
||||||
|
}).catch(err => {
|
||||||
|
setReqStatus({loading:false, status: false, message: 'Opps! Network error. Try again'})
|
||||||
|
}).finally(()=>{
|
||||||
|
setTimeout(()=>{
|
||||||
|
setReqStatus({loading:false, status: false, message: ''})
|
||||||
|
}, 3000)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -1,9 +1,14 @@
|
|||||||
import React,{useState} from 'react'
|
import React,{useState} from 'react'
|
||||||
import ModalCom from '../../Helpers/ModalCom'
|
import ModalCom from '../../Helpers/ModalCom'
|
||||||
import LoadingSpinner from '../../Spinners/LoadingSpinner'
|
import LoadingSpinner from '../../Spinners/LoadingSpinner'
|
||||||
|
import { useNavigate } from 'react-router-dom'
|
||||||
|
import usersService from '../../../services/UsersService'
|
||||||
|
|
||||||
function PastDueJobAction({jobDetails}) {
|
function PastDueJobAction({jobDetails}) {
|
||||||
|
|
||||||
|
const apiCall = new usersService()
|
||||||
|
const navigate = useNavigate()
|
||||||
|
|
||||||
const [checked, setChecked] = useState(false)
|
const [checked, setChecked] = useState(false)
|
||||||
|
|
||||||
const [extendedTime, setExtendedTime] = useState('') // VALUE OF NEW EXTENDED TIME
|
const [extendedTime, setExtendedTime] = useState('') // VALUE OF NEW EXTENDED TIME
|
||||||
@@ -21,7 +26,7 @@ function PastDueJobAction({jobDetails}) {
|
|||||||
setPopUp(prev => !prev)
|
setPopUp(prev => !prev)
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION TO HANDLE WHEN USER CLICKS ON SEND FOR REVIEW AND ACCEPTANCE
|
// FUNCTION TO HANDLE WHEN OWNER CANCELS JOB
|
||||||
const cancelTask = () => {
|
const cancelTask = () => {
|
||||||
setAction('cancel')
|
setAction('cancel')
|
||||||
setReqStatus({loading:true, status: false, message: ''})
|
setReqStatus({loading:true, status: false, message: ''})
|
||||||
@@ -37,21 +42,41 @@ function PastDueJobAction({jobDetails}) {
|
|||||||
}, 3000)
|
}, 3000)
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION TO HANDLE WHEN USER CLICKS ON SEND FOR REVIEW AND ACCEPTANCE
|
// FUNCTION TO HANDLE WHEN USER/OWNER CLICKS ON EXTEND TIMELINE FOR A JOB
|
||||||
const extendTime = () => {
|
const extendTime = () => {
|
||||||
setAction('extend')
|
setAction('extend')
|
||||||
setReqStatus({loading:true, status: false, message: ''})
|
setReqStatus({loading:true, status: false, message: ''}) // Sets loading spinner active
|
||||||
|
let reqData = {
|
||||||
if(!extendedTime){ // CHECKS IF EXTENDED TIME IS SELECTED
|
contract: jobDetails.contract,
|
||||||
setReqStatus({loading:false, status: false, message: 'Please select extension duration'})
|
contract_uid: jobDetails.contract_uid,
|
||||||
|
job_action: 'EXTEND_TIMELINE',
|
||||||
|
duration: Number(extendedTime)
|
||||||
|
}
|
||||||
|
if(!extendedTime){ // checks that timeline duration is selected
|
||||||
|
setReqStatus({loading:false, status: false, message: 'Please select timeline duration'})
|
||||||
return setTimeout(()=>{
|
return setTimeout(()=>{
|
||||||
setReqStatus({loading:false, status: false, message: ''})
|
setReqStatus({loading:false, status: false, message: ''})
|
||||||
}, 3000)
|
}, 3000)
|
||||||
}
|
}
|
||||||
|
|
||||||
setTimeout(()=>{
|
// API CALL EXTEND TIMELINE BY OWNER
|
||||||
setReqStatus({loading:false, status: false, message: ''})
|
apiCall.extendJobTimeline(reqData).then((res)=>{
|
||||||
}, 3000)
|
if(res.status != 200 || res.data.internal_return < 0){
|
||||||
|
setReqStatus({loading:false, status: false, message: 'unable to complete request. Try again'})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
setReqStatus({loading:false, status: true, message: 'Timeline extended successfully'})
|
||||||
|
setTimeout(()=>{ // Sets popout to false and navigates user to /my-pastdue-jobs after 3 seconds
|
||||||
|
popUpHandler()
|
||||||
|
navigate('/my-pastdue-jobs', {replace: true})
|
||||||
|
}, 3000)
|
||||||
|
}).catch(err => {
|
||||||
|
setReqStatus({loading:false, status: false, message: 'Opps! Network error. Try again'})
|
||||||
|
}).finally(()=>{
|
||||||
|
setTimeout(()=>{
|
||||||
|
setReqStatus({loading:false, status: false, message: ''})
|
||||||
|
}, 3000)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -149,7 +174,7 @@ function PastDueJobAction({jobDetails}) {
|
|||||||
<option className='text-slate-500 text-lg' value='2'>1 days</option>
|
<option className='text-slate-500 text-lg' value='2'>1 days</option>
|
||||||
<option className='text-slate-500 text-lg' value='3'>3 days</option>
|
<option className='text-slate-500 text-lg' value='3'>3 days</option>
|
||||||
<option className='text-slate-500 text-lg' value='5'>5 days</option>
|
<option className='text-slate-500 text-lg' value='5'>5 days</option>
|
||||||
<option className='text-slate-500 text-lg' value='1'>1 week</option>
|
<option className='text-slate-500 text-lg' value='7'>1 week</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
{reqStatus.loading && action=='extend' ?
|
{reqStatus.loading && action=='extend' ?
|
||||||
|
|||||||
@@ -653,6 +653,30 @@ class usersService {
|
|||||||
return this.postAuxEnd("/offersresponse", postData);
|
return this.postAuxEnd("/offersresponse", postData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// END POINT FOR WORKER TO MARK TASK AS COMPLETED
|
||||||
|
taskCompleted(reqData) {
|
||||||
|
var postData = {
|
||||||
|
uid: localStorage.getItem("uid"),
|
||||||
|
member_id: localStorage.getItem("member_id"),
|
||||||
|
sessionid: localStorage.getItem("session_token"),
|
||||||
|
action: 14015,
|
||||||
|
...reqData,
|
||||||
|
};
|
||||||
|
return this.postAuxEnd("/activetaskstatus", postData);
|
||||||
|
}
|
||||||
|
|
||||||
|
// END POINT FOR OWNER TO EXTEND TIMELINE/DURATON OF JOB
|
||||||
|
extendJobTimeline(reqData) {
|
||||||
|
var postData = {
|
||||||
|
uid: localStorage.getItem("uid"),
|
||||||
|
member_id: localStorage.getItem("member_id"),
|
||||||
|
sessionid: localStorage.getItem("session_token"),
|
||||||
|
action: 14015,
|
||||||
|
...reqData,
|
||||||
|
};
|
||||||
|
return this.postAuxEnd("/activejobstatus ", postData);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
- 20:27:30.118 FLOG_MAX [757411]: REQ_STRING(username)
|
- 20:27:30.118 FLOG_MAX [757411]: REQ_STRING(username)
|
||||||
- 20:27:30.118 FLOG_MAX [757411]: REQ_STRING(password)
|
- 20:27:30.118 FLOG_MAX [757411]: REQ_STRING(password)
|
||||||
|
|||||||
Reference in New Issue
Block a user