Merge branch 'staging' of https://github.com/OpenSignLabs/OpenSign into feat_bulksend

This commit is contained in:
prafull-opensignlabs
2024-05-22 12:11:46 +05:30
6 changed files with 92 additions and 35 deletions
+9 -1
View File
@@ -19,6 +19,7 @@ function GuestLogin() {
const [appLogo, setAppLogo] = useState("");
const [documentId, setDocumentId] = useState(id);
const [contactId, setContactId] = useState(contactBookId);
const [sendmail, setSendmail] = useState();
useEffect(() => {
handleServerUrl();
@@ -54,6 +55,7 @@ function GuestLogin() {
setDocumentId(checkSplit[0]);
setEmail(checkSplit[1]);
setContactId(checkSplit[2]);
setSendmail(checkSplit[3]);
}
setIsLoading(false);
@@ -146,7 +148,13 @@ function GuestLogin() {
//save isGuestSigner true in local to handle login flow header in mobile view
localStorage.setItem("isGuestSigner", true);
setLoading(false);
navigate(`/load/recipientSignPdf/${documentId}/${contactId}`);
if (sendmail === "false") {
navigate(
`/load/recipientSignPdf/${documentId}/${contactId}?sendmail=${sendmail}`
);
} else {
navigate(`/load/recipientSignPdf/${documentId}/${contactId}`);
}
}
} catch (error) {
console.log("err ", error);
+6 -1
View File
@@ -39,11 +39,16 @@ import Title from "../components/Title";
import DefaultSignature from "../components/pdf/DefaultSignature";
import ModalUi from "../primitives/ModalUi";
import VerifyEmail from "../components/pdf/VerifyEmail";
function useQuery() {
return new URLSearchParams(useLocation().search);
}
function PdfRequestFiles() {
const { docId } = useParams();
const navigate = useNavigate();
const location = useLocation();
const query = useQuery();
const sendmail = query.get("sendmail");
const [pdfDetails, setPdfDetails] = useState([]);
const [signedSigners, setSignedSigners] = useState([]);
const [unsignedSigners, setUnSignedSigners] = useState([]);
@@ -730,7 +735,7 @@ function PdfRequestFiles() {
);
const newIndex = index + 1;
const user = pdfDetails?.[0].Signers[newIndex];
if (sendInOrder) {
if (sendmail !== "false" && sendInOrder) {
const requestBody = pdfDetails?.[0]?.RequestBody;
const requestSubject = pdfDetails?.[0]?.RequestSubject;
if (user) {
+38 -32
View File
@@ -998,9 +998,10 @@ function PlaceHolderSign() {
for (let i = 0; i < signerMail.length; i++) {
const objectId = signerMail[i].objectId;
const hostUrl = window.location.origin;
const sendMail = false;
//encode this url value `${pdfDetails?.[0].objectId}/${signerMail[i].Email}/${objectId}` to base64 using `btoa` function
const encodeBase64 = btoa(
`${pdfDetails?.[0].objectId}/${signerMail[i].Email}/${objectId}`
`${pdfDetails?.[0].objectId}/${signerMail[i].Email}/${objectId}/${sendMail}`
);
let signPdf = `${hostUrl}/login/${encodeBase64}`;
shareLinkList.push({ signerEmail: signerMail[i].Email, url: signPdf });
@@ -1162,40 +1163,45 @@ function PlaceHolderSign() {
}
if (sendMail.data.result.status === "success") {
setMailStatus("success");
if (
requestBody &&
requestSubject &&
isCustomize &&
(isSubscribe || !isEnableSubscription)
) {
try {
const data = {
try {
let data;
if (
requestBody &&
requestSubject &&
isCustomize &&
(isSubscribe || !isEnableSubscription)
) {
data = {
RequestBody: htmlReqBody,
RequestSubject: requestSubject
RequestSubject: requestSubject,
SendMail: true
};
} else {
data = {
SendMail: true
};
await axios
.put(
`${localStorage.getItem("baseUrl")}classes/${localStorage.getItem(
"_appName"
)}_Document/${documentId}`,
data,
{
headers: {
"Content-Type": "application/json",
"X-Parse-Application-Id": localStorage.getItem("parseAppId"),
"X-Parse-Session-Token": localStorage.getItem("accesstoken")
}
}
)
.then(() => {})
.catch((err) => {
console.log("axois err ", err);
});
} catch (e) {
console.log("error", e);
}
await axios
.put(
`${localStorage.getItem("baseUrl")}classes/${localStorage.getItem(
"_appName"
)}_Document/${documentId}`,
data,
{
headers: {
"Content-Type": "application/json",
"X-Parse-Application-Id": localStorage.getItem("parseAppId"),
"X-Parse-Session-Token": localStorage.getItem("accesstoken")
}
}
)
.then(() => {})
.catch((err) => {
console.log("axois err ", err);
});
} catch (e) {
console.log("error", e);
}
setIsSend(true);
@@ -308,9 +308,12 @@ const ReportTable = (props) => {
const handleShare = (item) => {
setActLoader({ [item.objectId]: true });
const host = window.location.origin;
const sendMail = item?.SendMail || false;
const getUrl = (x) => {
//encode this url value `${item.objectId}/${x.Email}/${x.objectId}` to base64 using `btoa` function
const encodeBase64 = btoa(`${item.objectId}/${x.Email}/${x.objectId}`);
const encodeBase64 = btoa(
`${item.objectId}/${x.Email}/${x.objectId}/${sendMail}`
);
return `${host}/login/${encodeBase64}`;
};
@@ -101,6 +101,7 @@ export default function reportJson(id, userId) {
'AuditTrail',
'AuditTrail.UserPtr',
'ExpiryDate',
'SendMail',
],
};
// completed documents report
@@ -0,0 +1,34 @@
/**
*
* @param {Parse} Parse
*/
exports.up = async Parse => {
// TODO: set className here
const className = 'contracts_Document';
const schema = new Parse.Schema(className);
schema.addBoolean('SendMail');
schema.addBoolean('SendCompletionMail');
// TODO: Set the schema here
// Example:
// schema.addString('name').addNumber('cash');
return schema.update();
};
/**
*
* @param {Parse} Parse
*/
exports.down = async Parse => {
// TODO: set className here
const className = 'contracts_Document';
const schema = new Parse.Schema(className);
schema.deleteField('SendMail');
schema.deleteField('SendCompletionMail');
// TODO: Set the schema here
// Example:
// schema.deleteField('name').deleteField('cash');
return schema.update();
};