diff --git a/apps/OpenSign/src/components/pdf/PdfHeader.js b/apps/OpenSign/src/components/pdf/PdfHeader.js index 4d6a280f9..ad230f29d 100644 --- a/apps/OpenSign/src/components/pdf/PdfHeader.js +++ b/apps/OpenSign/src/components/pdf/PdfHeader.js @@ -40,7 +40,7 @@ function Header({ signerPos && signerPos?.filter((data) => data.Role !== "prefill"); const isMobile = window.innerWidth < 767; const navigate = useNavigate(); - const [isCertificate, setIsCertificate] = useState(false); + const [isDownloading, setIsDownloading] = useState(""); const isGuestSigner = localStorage.getItem("isGuestSigner"); //for go to previous page function previousPage() { @@ -62,7 +62,7 @@ function Header({ //function for print digital sign pdf const handleToPrint = async (event) => { event.preventDefault(); - + setIsDownloading("pdf"); try { // const url = await Parse.Cloud.run("getsignedurl", { url: pdfUrl }); const axiosRes = await axios.post( @@ -93,10 +93,13 @@ function Header({ const blob = new Blob([byteArray], { type: "application/pdf" }); const blobUrl = URL.createObjectURL(blob); window.open(blobUrl, "_blank"); + setIsDownloading(""); } else { printModule({ printable: pdf, type: "pdf", base64: true }); + setIsDownloading(""); } } catch (err) { + setIsDownloading(""); console.log("err in getsignedurl", err); alert("something went wrong, please try again later."); } @@ -104,6 +107,7 @@ function Header({ //handle download signed pdf const handleDownloadPdf = async () => { + setIsDownloading("pdf"); const pdfName = pdfDetails[0] && pdfDetails[0].Name; try { // const url = await Parse.Cloud.run("getsignedurl", { url: pdfUrl }); @@ -120,8 +124,10 @@ function Header({ ); const url = axiosRes.data.result; saveAs(url, `${sanitizeFileName(pdfName)}_signed_by_OpenSign™.pdf`); + setIsDownloading(""); } catch (err) { console.log("err in getsignedurl", err); + setIsDownloading(""); alert("something went wrong, please try again later."); } }; @@ -142,7 +148,7 @@ function Header({ console.log("err in download in certificate", err); } } else { - setIsCertificate(true); + setIsDownloading("certificate"); try { const data = { docId: pdfDetails[0]?.objectId @@ -164,12 +170,13 @@ function Header({ await fetch(doc?.CertificateUrl); const certificateUrl = doc?.CertificateUrl; saveAs(certificateUrl, `Certificate_signed_by_OpenSign™.pdf`); - setIsCertificate(false); + setIsDownloading(""); } else { - setIsCertificate(true); + setIsDownloading("certificate"); } } } catch (err) { + setIsDownloading(""); console.log("err in download in certificate", err); alert("something went wrong, please try again later."); } @@ -628,12 +635,25 @@ function Header({ )} )} + {isDownloading === "pdf" && ( +
+
+
+ )} setIsCertificate(false)} + isOpen={isDownloading === "certificate"} + title={ + isDownloading === "certificate" + ? "Generating certificate" + : "PDF Download" + } + handleClose={() => setIsDownloading("")} >
+ {isDownloading === "certificate"}{" "}

Your completion certificate is being generated. Please wait momentarily. diff --git a/apps/OpenSign/src/json/ReportJson.js b/apps/OpenSign/src/json/ReportJson.js index 705ce8fb9..e0cceda69 100644 --- a/apps/OpenSign/src/json/ReportJson.js +++ b/apps/OpenSign/src/json/ReportJson.js @@ -3,7 +3,7 @@ export default function reportJson(id) { const head = ["Sr.No", "Title", "Note", "Folder", "File", "Owner", "Signers"]; const contactbook = ["Sr.No", "Title", "Email", "Phone"]; const dashboardReportHead = ["Title", "File", "Owner", "Signers"]; - const templateReport = ["Sr.No", "Title", "File", "Owner", "Signers"]; + const templateReport = ["Sr.No", "Title", "File", "Owner", "Roles"]; switch (id) { // draft documents report case "ByHuevtCFY": diff --git a/apps/OpenSign/src/pages/PdfRequestFiles.js b/apps/OpenSign/src/pages/PdfRequestFiles.js index 0cc5fb9c2..2b3a3f976 100644 --- a/apps/OpenSign/src/pages/PdfRequestFiles.js +++ b/apps/OpenSign/src/pages/PdfRequestFiles.js @@ -783,7 +783,10 @@ function PdfRequestFiles() { (x) => x.Email === jsonSender.email ); const newIndex = index + 1; - const user = pdfDetails?.[0].Signers[newIndex]; + const usermail = { + Email: pdfDetails?.[0]?.Placeholders[newIndex]?.email || "" + }; + const user = usermail || pdfDetails?.[0]?.Signers[newIndex]; if (sendmail !== "false" && sendInOrder) { const requestBody = pdfDetails?.[0]?.RequestBody; const requestSubject = pdfDetails?.[0]?.RequestSubject; diff --git a/apps/OpenSign/src/primitives/GetReportDisplay.js b/apps/OpenSign/src/primitives/GetReportDisplay.js index 88cb44c97..412cb6550 100644 --- a/apps/OpenSign/src/primitives/GetReportDisplay.js +++ b/apps/OpenSign/src/primitives/GetReportDisplay.js @@ -43,7 +43,7 @@ const ReportTable = (props) => { const [templateDeatils, setTemplateDetails] = useState({}); const [placeholders, setPlaceholders] = useState([]); const [isLoader, setIsLoader] = useState({}); - + const [isViewShare, setIsViewShare] = useState({}); const startIndex = (currentPage - 1) * props.docPerPage; const { isMoreDocs, setIsNextRecord } = props; // For loop is used to calculate page numbers visible below table @@ -340,9 +340,9 @@ const ReportTable = (props) => { await axios .put( - `${localStorage.getItem("baseUrl")}classes/${localStorage.getItem( - "_appName" - )}_Document/${item.objectId}`, + `${localStorage.getItem("baseUrl")}classes/contracts_Document/${ + item.objectId + }`, data, { headers: { @@ -578,9 +578,15 @@ const ReportTable = (props) => { }; try { const res = await axios.post(url, params, { headers: headers }); - if (res) { + if (res?.data?.result?.status === "success") { setIsAlert(true); setAlertMsg({ type: "success", message: "Mail sent successfully." }); + } else { + setIsAlert(true); + setAlertMsg({ + type: "danger", + message: "Something went wrong, please try again later!" + }); } } catch (err) { console.log("err in sendmail", err); @@ -681,6 +687,9 @@ const ReportTable = (props) => { setTimeout(() => setIsAlert(false), 1500); } }; + const handleViewSigners = (item) => { + setIsViewShare({ [item.objectId]: true }); + }; return (

{Object.keys(actLoader)?.length > 0 && ( @@ -835,7 +844,17 @@ const ReportTable = (props) => { {formatRow(item?.ExtUserPtr)} - {item?.Signers ? formatRow(item?.Signers) : "-"} + {/* {item?.Signers ? formatRow(item?.Signers) : "-"} */} + {item?.Placeholders ? ( + + ) : ( + "-" + )} {props.actions?.length > 0 && @@ -865,19 +884,21 @@ const ReportTable = (props) => { )} {isOption[item.objectId] && act.action === "option" && ( -
+
{act.subaction?.map((subact) => (
handleActionBtn(subact, item) } title={subact.hoverLabel} > - + {subact.btnLabel && ( - + {subact.btnLabel} )} @@ -887,6 +908,48 @@ const ReportTable = (props) => { )} ))} + {isViewShare[item.objectId] && ( +
+
+
setIsViewShare({})} + > + × +
+ + + + + {props.ReportName === "Templates" && ( + + )} + + + + + {item.Placeholders.map((x, i) => ( + + {props.ReportName === "Templates" && ( + + )} + + + ))} + +
RolesSigners
+ {x.Role && x.Role} + + {x.email + ? x.email + : x?.signerPtr?.Email || "-"} +
+
+
+ )} {isDeleteModal[item.objectId] && (