@@ -19,6 +19,7 @@ export default function FileList({ refType, refId, allowDelete, sx, dateHideable | |||
const theme = useTheme(); | |||
const isMdOrLg = useMediaQuery(theme.breakpoints.up('md')); | |||
const intl = useIntl(); | |||
const [onDownload, setOnDownload] = React.useState(false); | |||
React.useEffect(() => { | |||
loadData(); | |||
@@ -41,10 +42,17 @@ export default function FileList({ refType, refId, allowDelete, sx, dateHideable | |||
}; | |||
const onDownloadClick = (fileId, skey, filename) => () => { | |||
setOnDownload(true) | |||
HttpUtils.fileDownload({ | |||
fileId: fileId, | |||
skey: skey, | |||
filename: filename, | |||
onResponse:()=>{ | |||
setOnDownload(false) | |||
}, | |||
onError:()=>{ | |||
setOnDownload(false) | |||
} | |||
}); | |||
}; | |||
@@ -91,6 +99,7 @@ export default function FileList({ refType, refId, allowDelete, sx, dateHideable | |||
className="textPrimary" | |||
onClick={onDownloadClick(params.id, params.row.skey, params.row.filename)} | |||
color="primary" | |||
disabled={onDownload} | |||
/>] | |||
}, | |||
}, | |||
@@ -139,6 +148,7 @@ export default function FileList({ refType, refId, allowDelete, sx, dateHideable | |||
className="textPrimary" | |||
onClick={onDownloadClick(params.id, params.row.skey, params.row.filename)} | |||
color="primary" | |||
disabled={onDownload} | |||
/>] | |||
}, | |||
}, | |||
@@ -21,8 +21,8 @@ import {ThemeProvider} from "@emotion/react"; | |||
import * as DateUtils from "utils/DateUtils"; | |||
import * as UrlUtils from "utils/ApiPathConst"; | |||
import * as HttpUtils from "utils/HttpUtils"; | |||
import Loadable from 'components/Loadable'; | |||
const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent'))); | |||
// import Loadable from 'components/Loadable'; | |||
// const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent'))); | |||
import {DatePicker} from "@mui/x-date-pickers/DatePicker"; | |||
import dayjs from "dayjs"; | |||
@@ -190,16 +190,13 @@ const AuditLogSearchForm = ({ applySearch, searchCriteria, onGridReady}) => { | |||
<Grid container maxWidth justifyContent="flex-end"> | |||
{isGranted("MAINTAIN_SETTING") ? | |||
<Grid item sx={{ ml: 3, mr: 3, mb: 3,}}> | |||
{onDownload? | |||
<LoadingComponent disableText={true} alignItems="flex-start"/> | |||
: | |||
<Button | |||
variant="contained" | |||
onClick={exportExcel} | |||
> | |||
Export | |||
</Button> | |||
} | |||
<Button | |||
variant="contained" | |||
onClick={exportExcel} | |||
disabled={onDownload} | |||
> | |||
Export | |||
</Button> | |||
</Grid> : null | |||
} | |||
<Grid item sx={{ ml: 3, mr: 3, mb: 3,}}> | |||
@@ -41,6 +41,7 @@ export default function SearchDemandNote({ applySearch, searchCriteria, applyGri | |||
const [_searchCriteria, set_searchCriteria] = useState({}); | |||
const [selectedRowItems, setSelectedRowItems] = useState([]); | |||
const navigate = useNavigate() | |||
const [onDownload, setOnDownload] = useState(false); | |||
useEffect(() => { | |||
set_searchCriteria(searchCriteria); | |||
@@ -86,10 +87,17 @@ export default function SearchDemandNote({ applySearch, searchCriteria, applyGri | |||
} | |||
const onDownloadClick = (params) => () => { | |||
setOnDownload(true) | |||
HttpUtils.fileDownload({ | |||
fileId: params.row.fileId, | |||
skey: params.row.skey, | |||
filename: params.row.filename, | |||
onResponse:()=>{ | |||
setOnDownload(false) | |||
}, | |||
onError:()=>{ | |||
setOnDownload(false) | |||
} | |||
}); | |||
}; | |||
@@ -282,7 +290,7 @@ export default function SearchDemandNote({ applySearch, searchCriteria, applyGri | |||
), | |||
width: 280, | |||
renderCell: (params) => { | |||
return <Button onClick={onDownloadClick(params)}><u>{params.row.filename}</u></Button>; | |||
return <Button disabled={onDownload} onClick={onDownloadClick(params)}><u>{params.row.filename}</u></Button>; | |||
}, | |||
}, | |||
{ | |||
@@ -24,6 +24,7 @@ const OrganizationSearchForm = ({ applySearch, onGridReady, searchCriteria }) => | |||
const [type, setType] = useState([]); | |||
const [creditorSelected, setCreditorSelected] = React.useState(ComboData.CreditorStatus[0]); | |||
const { reset, register, handleSubmit } = useForm() | |||
const [onDownload, setOnDownload] = React.useState(false); | |||
useEffect(() => { | |||
if(searchCriteria.creditor!=undefined){ | |||
@@ -65,8 +66,15 @@ const OrganizationSearchForm = ({ applySearch, onGridReady, searchCriteria }) => | |||
} | |||
const doExport=()=>{ | |||
setOnDownload(true) | |||
HttpUtils.fileDownload({ | |||
url: UrlUtils.GET_ORG_EXPORT | |||
url: UrlUtils.GET_ORG_EXPORT, | |||
onResponse:()=>{ | |||
setOnDownload(false) | |||
}, | |||
onError:()=>{ | |||
setOnDownload(false) | |||
} | |||
}); | |||
} | |||
@@ -164,6 +172,7 @@ const OrganizationSearchForm = ({ applySearch, onGridReady, searchCriteria }) => | |||
<Button | |||
variant="contained" | |||
onClick={doExport} | |||
disabled={onDownload} | |||
> | |||
Export | |||
</Button> | |||
@@ -165,14 +165,10 @@ const PaymentDetails = ({ formData,doPrint,onDownload }) => { | |||
</FormLabel> | |||
</Grid> | |||
<Grid xs={6} md={5} sx={{ml:5,textAlign: "left" }}> | |||
{onDownload? | |||
<LoadingComponent disableText={true} alignItems="flex-start"/> | |||
: | |||
<Button className="printHidden" variant="contained" sx={{ mt:2 }} onClick={doPrint}> | |||
<DownloadIcon/> | |||
<Typography sx={{fontSize: "16px"}}>Download</Typography> | |||
</Button> | |||
} | |||
<Button className="printHidden" variant="contained" disabled={onDownload} sx={{ mt:2 }} onClick={doPrint}> | |||
<DownloadIcon/> | |||
<Typography sx={{fontSize: "16px"}}>Download</Typography> | |||
</Button> | |||
</Grid> | |||
</Grid> | |||
</Grid> | |||
@@ -208,16 +208,12 @@ const PaymentDetails = ({ formData,doPrint,onDownload }) => { | |||
</FormLabel> | |||
</Grid> | |||
<Grid item xs={6} md={5} sx={{textAlign: "left" }}> | |||
{onDownload? | |||
<LoadingComponent disableText={true} alignItems="flex-start"/> | |||
: | |||
<Button className="printHidden" variant="contained" sx={{ mt:2 }} onClick={doPrint}> | |||
<DownloadIcon/> | |||
<Typography sx={{fontSize: "16px"}}> | |||
<FormattedMessage id="download"/> | |||
</Typography> | |||
</Button> | |||
} | |||
<Button className="printHidden" variant="contained" disabled={onDownload} sx={{ mt:2 }} onClick={doPrint}> | |||
<DownloadIcon/> | |||
<Typography sx={{fontSize: "16px"}}> | |||
<FormattedMessage id="download"/> | |||
</Typography> | |||
</Button> | |||
</Grid> | |||
</Grid> | |||
</Grid> | |||
@@ -34,6 +34,7 @@ const ApplicationDetailCard = ({ | |||
const [data, setData] = useState({}); | |||
const [cancelPopUp, setCancelPopUp] = useState(false); | |||
const [onDownload, setOnDownload] = useState(false); | |||
useEffect(() => { | |||
if (formData) { | |||
@@ -108,8 +109,15 @@ const ApplicationDetailCard = ({ | |||
} | |||
const genProof = () => { | |||
setOnDownload(true) | |||
HttpUtils.fileDownload({ | |||
url: UrlUtils.GEN_GAZETTE_PROOF + "/" + params.id | |||
url: UrlUtils.GEN_GAZETTE_PROOF + "/" + params.id, | |||
onResponse:()=>{ | |||
setOnDownload(false) | |||
}, | |||
onError:()=>{ | |||
setOnDownload(false) | |||
} | |||
}); | |||
} | |||
@@ -130,7 +138,7 @@ const ApplicationDetailCard = ({ | |||
component="span" | |||
variant="contained" | |||
size="large" | |||
disabled={!showProofBtn} | |||
disabled={!showProofBtn||onDownload} | |||
onClick={genProof} | |||
> | |||
<Typography variant="h5">Proof Slip</Typography> | |||
@@ -56,6 +56,7 @@ const ApplicationDetailCard = ( | |||
const [warningText, setWarningText] = useState(""); | |||
const [remarksPopUp, setRemarksPopUp] = useState(false); | |||
const [onDownload, setOnDownload] = useState(false); | |||
useEffect(() => { | |||
//if user data from parent are not null | |||
@@ -84,12 +85,19 @@ const ApplicationDetailCard = ( | |||
} | |||
const onDownloadClick = () => () => { | |||
setOnDownload(true) | |||
HttpUtils.fileDownload({ | |||
fileId: fileDetail?.id, | |||
skey: fileDetail?.skey, | |||
filename: fileDetail?.filename, | |||
onResponse:()=>{ | |||
setOnDownload(false) | |||
notifyDownloadSuccess() | |||
}, | |||
onError:()=>{ | |||
setOnDownload(false) | |||
} | |||
}); | |||
notifyDownloadSuccess() | |||
setUploadStatus(true) | |||
}; | |||
@@ -680,7 +688,7 @@ const ApplicationDetailCard = ( | |||
size="small" | |||
variant="contained" | |||
onClick={onDownloadClick()} | |||
disabled={!fileDetail?.filename} | |||
disabled={!fileDetail?.filename||onDownload} | |||
sx={{ | |||
textTransform: 'capitalize', | |||
alignItems: 'end', | |||
@@ -61,6 +61,8 @@ const ApplicationDetailCard = ( | |||
const [onReady, setOnReady] = useState(false); | |||
const [issueNum, setIssueNum] = useState(""); | |||
const [issueDate, setIssueDate] = useState(""); | |||
const [onDownload, setOnDownload] = useState(false); | |||
const { register, | |||
// getValues | |||
} = useForm(); | |||
@@ -89,10 +91,17 @@ const ApplicationDetailCard = ( | |||
}, [currentApplicationDetailData]); | |||
const onDownloadClick = () => () => { | |||
setOnDownload(true) | |||
HttpUtils.fileDownload({ | |||
fileId: fileDetail?.id, | |||
skey: fileDetail?.skey, | |||
filename: fileDetail?.filename, | |||
onResponse:()=>{ | |||
setOnDownload(false) | |||
}, | |||
onError:()=>{ | |||
setOnDownload(false) | |||
} | |||
}); | |||
}; | |||
@@ -646,7 +655,7 @@ const ApplicationDetailCard = ( | |||
aria-label={intl.formatMessage({ id: 'download' })} | |||
title={intl.formatMessage({ id: 'download' })} | |||
color="save" | |||
disabled={!fileDetail?.filename} | |||
disabled={!fileDetail?.filename||onDownload} | |||
startIcon={<DownloadIcon sx={{ alignItems: "center" }} />} | |||
> | |||
<FormattedMessage id="download" /> | |||