diff --git a/apps/OpenSign/src/components/pdf/SignPad.js b/apps/OpenSign/src/components/pdf/SignPad.js
index 534f4ddae..340b3ab8f 100644
--- a/apps/OpenSign/src/components/pdf/SignPad.js
+++ b/apps/OpenSign/src/components/pdf/SignPad.js
@@ -125,7 +125,6 @@ function SignPad(props) {
props?.onSaveSign(signatureType);
}
}
-
setPenColor("blue");
} else {
setIsSignImg("");
@@ -136,7 +135,7 @@ function SignPad(props) {
props?.setIsImageSelect(false);
setIsDefaultSign(false);
props?.setImage();
- setIsTab("draw");
+ handleTab();
setSignValue("");
props?.setIsStamp(false);
}}
@@ -310,6 +309,19 @@ function SignPad(props) {
);
};
+
+ // `handleCancelBtn` function trigger when user click on cross button
+ const handleCancelBtn = () => {
+ setPenColor("blue");
+ props?.setIsSignPad(false);
+ props?.setIsInitial(false);
+ props?.setIsImageSelect(false);
+ setIsDefaultSign(false);
+ props?.setImage();
+ handleTab();
+ setSignValue("");
+ props?.setIsStamp(false);
+ };
return (
{props?.isSignPad && (
@@ -443,18 +455,7 @@ function SignPad(props) {
{
- setPenColor("blue");
- props?.setIsSignPad(false);
- props?.setIsInitial(false);
- props?.setIsImageSelect(false);
- setIsDefaultSign(false);
- props?.setImage();
- setIsTab("draw");
- setSignatureType("draw");
- setSignValue("");
- props?.setIsStamp(false);
- }}
+ onClick={handleCancelBtn}
>
×
@@ -657,18 +658,7 @@ function SignPad(props) {
{
- setPenColor("blue");
- props?.setIsSignPad(false);
- props?.setIsInitial(false);
- props?.setIsImageSelect(false);
- setIsDefaultSign(false);
- props?.setImage();
- setIsTab("draw");
- setSignatureType("draw");
- setSignValue("");
- props?.setIsStamp(false);
- }}
+ onClick={handleCancelBtn}
>
×
diff --git a/apps/OpenSign/src/constant/Utils.js b/apps/OpenSign/src/constant/Utils.js
index 41bc42042..9a4d9147c 100644
--- a/apps/OpenSign/src/constant/Utils.js
+++ b/apps/OpenSign/src/constant/Utils.js
@@ -637,10 +637,10 @@ export const signPdfFun = async (
return { status: "error", message: "something went wrong." };
}
}
- //change image width and height to 100/40 in png base64
- const getNewse64 = await changeImageWH(base64Sign);
- //remove suffiix of base64
- const suffixbase64 = getNewse64 && getNewse64.split(",").pop();
+ //change image width and height to 300/120 in png base64
+ const imagebase64 = await changeImageWH(base64Sign);
+ //remove suffiix of base64 (without type)
+ const suffixbase64 = imagebase64 && imagebase64.split(",").pop();
const params = {
mailProvider: activeMailAdapter,
@@ -1169,10 +1169,7 @@ export function onSaveSign(
Height: posHeight,
SignUrl: signatureImg,
signatureType: type && type,
- options: {
- ...position.options,
- response: signatureImg
- }
+ options: { ...position.options, response: signatureImg }
};
}
return position;
@@ -1382,11 +1379,16 @@ export const multiSignEmbed = async (
const form = pdfDoc.getForm();
const page = pages[pageNo - 1];
const images = await Promise.all(
- widgetsPositionArr.map(async (url) => {
- let signUrl = url.SignUrl && url.SignUrl;
- if (signUrl) {
- const res = await fetch(signUrl);
- return res.arrayBuffer();
+ widgetsPositionArr.map(async (widget) => {
+ // `SignUrl` this is wrong nomenclature and maintain for older code in this options we save base64 of signature image from sign pad
+ let signbase64 = widget.SignUrl && widget.SignUrl;
+ if (signbase64) {
+ let arr = signbase64.split(","),
+ mime = arr[0].match(/:(.*?);/)[1];
+ const res = await fetch(signbase64);
+ const arrayBuffer = await res.arrayBuffer();
+ const obj = { mimetype: mime, arrayBuffer: arrayBuffer };
+ return obj;
}
})
);
@@ -1397,17 +1399,17 @@ export const multiSignEmbed = async (
if (
["signature", "stamp", "initials", "image"].includes(position.type)
) {
- if (position.ImageType && position.ImageType === "image/jpeg") {
- img = await pdfDoc.embedJpg(images[id]);
+ if (images[id].mimetype === "image/png") {
+ img = await pdfDoc.embedPng(images[id].arrayBuffer);
} else {
- img = await pdfDoc.embedPng(images[id]);
+ img = await pdfDoc.embedJpg(images[id].arrayBuffer);
}
} else if (!position.type) {
// to handle old widget when only stamp and signature are exists
- if (position.ImageType && position.ImageType === "image/jpeg") {
- img = await pdfDoc.embedJpg(images[id]);
+ if (images[id].mimetype === "image/png") {
+ img = await pdfDoc.embedPng(images[id].arrayBuffer);
} else {
- img = await pdfDoc.embedPng(images[id]);
+ img = await pdfDoc.embedJpg(images[id].arrayBuffer);
}
}
let widgetWidth, widgetHeight;
@@ -1992,7 +1994,7 @@ export const getAppLogo = async () => {
}
};
-export const getTenantDetails = async (objectId, jwttoken) => {
+export const getTenantDetails = async (objectId, jwttoken, contactId) => {
try {
const url = `${localStorage.getItem("baseUrl")}functions/gettenant`;
const parseAppId = localStorage.getItem("parseAppId");
@@ -2000,7 +2002,7 @@ export const getTenantDetails = async (objectId, jwttoken) => {
const token = jwttoken
? { jwttoken: jwttoken }
: { "X-Parse-Session-Token": accesstoken };
- const data = jwttoken ? {} : { userId: objectId };
+ const data = jwttoken ? {} : { userId: objectId, contactId: contactId };
const res = await axios.post(url, data, {
headers: {
"Content-Type": "application/json",
diff --git a/apps/OpenSign/src/json/menuJson.js b/apps/OpenSign/src/json/menuJson.js
index 3bd41c110..6c70006f7 100644
--- a/apps/OpenSign/src/json/menuJson.js
+++ b/apps/OpenSign/src/json/menuJson.js
@@ -156,7 +156,7 @@ const sidebarList = [
objectId: "webhook"
},
{
- icon: "fa-light fa-pen-fancy",
+ icon: "fa-light fa-sliders",
title: "Preferences",
target: "_self",
pageType: "",
diff --git a/apps/OpenSign/src/pages/Managesign.js b/apps/OpenSign/src/pages/Managesign.js
index 326040082..28de605ef 100644
--- a/apps/OpenSign/src/pages/Managesign.js
+++ b/apps/OpenSign/src/pages/Managesign.js
@@ -136,10 +136,10 @@ const ManageSign = () => {
const replaceSpace = sanitizeFileName(sanitizename);
let file;
if (signature) {
- file = base64StringtoFile(signature, `${replaceSpace}_sign.png`);
+ file = base64StringtoFile(signature, `${replaceSpace}_sign`);
} else {
if (image && !isUrl) {
- file = base64StringtoFile(image, `${replaceSpace}__sign.png`);
+ file = base64StringtoFile(image, `${replaceSpace}__sign`);
}
}
let imgUrl;
@@ -153,12 +153,12 @@ const ManageSign = () => {
let initialFile;
if (Initials) {
- initialFile = base64StringtoFile(Initials, `${replaceSpace}_sign.png`);
+ initialFile = base64StringtoFile(Initials, `${replaceSpace}_sign`);
} else {
if (imgInitials && !isInitialsUrl) {
initialFile = base64StringtoFile(
imgInitials,
- `${replaceSpace}__sign.png`
+ `${replaceSpace}__sign`
);
}
}
@@ -179,14 +179,18 @@ const ManageSign = () => {
};
function base64StringtoFile(base64String, filename) {
let arr = base64String.split(","),
+ // type of uploaded image
mime = arr[0].match(/:(.*?);/)[1],
+ // decode base64
bstr = atob(arr[1]),
n = bstr.length,
u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
- return new File([u8arr], filename, { type: mime });
+ const ext = mime.split("/").pop();
+ const name = `${filename}.${ext}`;
+ return new File([u8arr], name, { type: mime });
}
const uploadFile = async (file) => {
diff --git a/apps/OpenSign/src/pages/PdfRequestFiles.js b/apps/OpenSign/src/pages/PdfRequestFiles.js
index 060218b85..06467f1d1 100644
--- a/apps/OpenSign/src/pages/PdfRequestFiles.js
+++ b/apps/OpenSign/src/pages/PdfRequestFiles.js
@@ -378,29 +378,29 @@ function PdfRequestFiles(props) {
return;
}
};
- const fetchTenantDetails = async () => {
+ const fetchTenantDetails = async (contactId) => {
const user = JSON.parse(
localStorage.getItem(
`Parse/${localStorage.getItem("parseAppId")}/currentUser`
)
);
- if (user) {
- try {
- const tenantDetails = await getTenantDetails(user?.objectId);
- if (tenantDetails && tenantDetails === "user does not exist!") {
- alert(t("user-not-exist"));
- } else if (tenantDetails) {
- const signatureType = tenantDetails?.SignatureType || [];
- const filterSignTypes = signatureType?.filter(
- (x) => x.enabled === true
- );
-
- return filterSignTypes;
- }
- } catch (e) {
+ try {
+ const tenantDetails = await getTenantDetails(
+ user?.objectId, // userId
+ "", // jwttoken
+ contactId // contactId
+ );
+ if (tenantDetails && tenantDetails === "user does not exist!") {
alert(t("user-not-exist"));
+ } else if (tenantDetails) {
+ const signatureType = tenantDetails?.SignatureType || [];
+ const filterSignTypes = signatureType?.filter(
+ (x) => x.enabled === true
+ );
+
+ return filterSignTypes;
}
- } else {
+ } catch (e) {
alert(t("user-not-exist"));
}
};
@@ -412,7 +412,10 @@ function PdfRequestFiles(props) {
`Parse/${localStorage.getItem("parseAppId")}/currentUser`
);
const jsonSender = JSON.parse(senderUser);
- const tenantSignTypes = await fetchTenantDetails();
+ const contactId = jsonSender?.objectId
+ ? ""
+ : contactBookId || signerObjectId || "";
+ const tenantSignTypes = await fetchTenantDetails(contactId);
// `currUserId` will be contactId or extUserId
let currUserId;
//getting document details
@@ -453,7 +456,7 @@ function PdfRequestFiles(props) {
currUserId = getCurrentSigner?.objectId
? getCurrentSigner.objectId
- : contactBookId || signerObjectId || "";
+ : contactBookId || signerObjectId || ""; //signerObjectId is contactBookId refer from public template flow
if (isEnableSubscription) {
await checkIsSubscribed(
documentData[0]?.ExtUserPtr?.objectId,
diff --git a/apps/OpenSign/src/pages/Preferences.js b/apps/OpenSign/src/pages/Preferences.js
index 0f4496600..07792cd8d 100644
--- a/apps/OpenSign/src/pages/Preferences.js
+++ b/apps/OpenSign/src/pages/Preferences.js
@@ -73,7 +73,7 @@ const Preferences = () => {
const params = { SignatureType: signatureType };
const updateRes = await Parse.Cloud.run("updatesignaturetype", params);
if (updateRes) {
- setIsAlert({ type: "danger", msg: "Saved successfully." });
+ setIsAlert({ type: "success", msg: "Saved successfully." });
setTimeout(() => setIsAlert({ type: "success", msg: "" }), 1500);
}
} catch (err) {
diff --git a/apps/OpenSign/src/pages/SignyourselfPdf.js b/apps/OpenSign/src/pages/SignyourselfPdf.js
index 06a2c4f95..624f200c7 100644
--- a/apps/OpenSign/src/pages/SignyourselfPdf.js
+++ b/apps/OpenSign/src/pages/SignyourselfPdf.js
@@ -755,10 +755,10 @@ function SignYourSelf() {
alert(t("something-went-wrong-mssg"));
}
}
- //change image width and height to 100/40 in png base64
- const getNewse64 = await changeImageWH(base64Sign);
- //remove suffiix of base64
- const suffixbase64 = getNewse64 && getNewse64.split(",").pop();
+ //change image width and height to 300/120 in png base64
+ const imagebase64 = await changeImageWH(base64Sign);
+ //remove suffiix of base64 (without type)
+ const suffixbase64 = imagebase64 && imagebase64.split(",").pop();
const params = {
pdfFile: base64Url,
docId: documentId,