diff --git a/apps/OpenSign/src/pages/Form.js b/apps/OpenSign/src/pages/Form.js
index 6af4107ac..fd3e521f0 100644
--- a/apps/OpenSign/src/pages/Form.js
+++ b/apps/OpenSign/src/pages/Form.js
@@ -109,69 +109,69 @@ const Forms = (props) => {
}
}
} else {
- if (isEnableSubscription) {
- const isImage = files?.[0]?.type.includes("image/");
- if (isImage) {
- const image = await toDataUrl(files[0]);
- const pdfDoc = await PDFDocument.create();
- let embedImg;
- if (files?.[0]?.type === "image/png") {
- embedImg = await pdfDoc.embedPng(image);
- } else {
- embedImg = await pdfDoc.embedJpg(image);
- }
-
- // Get image dimensions
- const imageWidth = embedImg.width;
- const imageHeight = embedImg.height;
- const page = pdfDoc.addPage([imageWidth, imageHeight]);
- page.drawImage(embedImg, {
- x: 0,
- y: 0,
- width: imageWidth,
- height: imageHeight
- });
- const getFile = await pdfDoc.save({
- useObjectStreams: false
- });
- setfileload(true);
- const fileName = files[0].name;
- const size = files[0].size;
- const name = sanitizeFileName(fileName);
- const pdfName = `${name?.split(".")[0]}.pdf`;
- const parseFile = new Parse.File(
- pdfName,
- [...getFile],
- "application/pdf"
- );
-
- try {
- const response = await parseFile.save({
- progress: (progressValue, loaded, total, { type }) => {
- if (type === "upload" && progressValue !== null) {
- const percentCompleted = Math.round(
- (loaded * 100) / total
- );
- setpercentage(percentCompleted);
- }
- }
- });
- // The response object will contain information about the uploaded file
- // You can access the URL of the uploaded file using response.url()
- setFileUpload(response.url());
- setfileload(false);
- if (response.url()) {
- const tenantId = localStorage.getItem("TenantId");
- SaveFileSize(size, response.url(), tenantId);
- return response.url();
- }
- } catch (error) {
- e.target.value = "";
- setfileload(false);
- setpercentage(0);
- console.error("Error uploading file:", error);
- }
+ const isImage = files?.[0]?.type.includes("image/");
+ if (isImage) {
+ const image = await toDataUrl(files[0]);
+ const pdfDoc = await PDFDocument.create();
+ let embedImg;
+ if (files?.[0]?.type === "image/png") {
+ embedImg = await pdfDoc.embedPng(image);
} else {
+ embedImg = await pdfDoc.embedJpg(image);
+ }
+
+ // Get image dimensions
+ const imageWidth = embedImg.width;
+ const imageHeight = embedImg.height;
+ const page = pdfDoc.addPage([imageWidth, imageHeight]);
+ page.drawImage(embedImg, {
+ x: 0,
+ y: 0,
+ width: imageWidth,
+ height: imageHeight
+ });
+ const getFile = await pdfDoc.save({
+ useObjectStreams: false
+ });
+ setfileload(true);
+ const fileName = files[0].name;
+ const size = files[0].size;
+ const name = sanitizeFileName(fileName);
+ const pdfName = `${name?.split(".")[0]}.pdf`;
+ const parseFile = new Parse.File(
+ pdfName,
+ [...getFile],
+ "application/pdf"
+ );
+
+ try {
+ const response = await parseFile.save({
+ progress: (progressValue, loaded, total, { type }) => {
+ if (type === "upload" && progressValue !== null) {
+ const percentCompleted = Math.round(
+ (loaded * 100) / total
+ );
+ setpercentage(percentCompleted);
+ }
+ }
+ });
+ // The response object will contain information about the uploaded file
+ // You can access the URL of the uploaded file using response.url()
+ setFileUpload(response.url());
+ setfileload(false);
+ if (response.url()) {
+ const tenantId = localStorage.getItem("TenantId");
+ SaveFileSize(size, response.url(), tenantId);
+ return response.url();
+ }
+ } catch (error) {
+ e.target.value = "";
+ setfileload(false);
+ setpercentage(0);
+ console.error("Error uploading file:", error);
+ }
+ } else {
+ if (isEnableSubscription) {
try {
setfileload(true);
const url = "http://tools.opensignlabs.com/docxtopdf";
@@ -426,7 +426,10 @@ const Forms = (props) => {
)}
{fileupload.length > 0 ? (
@@ -454,11 +457,10 @@ const Forms = (props) => {
type="file"
className="bg-white px-2 py-1.5 w-full border-[1px] border-gray-300 rounded focus:outline-none text-xs"
onChange={(e) => handleFileInput(e)}
- // accept="application/pdf"
accept={
isEnableSubscription
- ? "application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,image/png,image/jpeg"
- : "application/pdf"
+ ? "application/pdf,application/vnd.openxmlformats-officedocument.wordprocessingml.document,image/png,image/jpeg"
+ : "application/pdf,image/png,image/jpeg"
}
required
/>
diff --git a/apps/OpenSignServer/cloud/parsefunction/DocumentBeforesave.js b/apps/OpenSignServer/cloud/parsefunction/DocumentBeforesave.js
index 0effff5ec..e7f251ca4 100644
--- a/apps/OpenSignServer/cloud/parsefunction/DocumentBeforesave.js
+++ b/apps/OpenSignServer/cloud/parsefunction/DocumentBeforesave.js
@@ -25,6 +25,10 @@ async function DocumentBeforesave(request) {
} catch (error) {
console.log('Error updating document count in contracts_users: ' + error.message);
}
+ if (document?.get('Signers') && document.get('Signers').length > 0) {
+ document.set('DocSentAt', new Date());
+ document.save(null, { useMasterKey: true });
+ }
}
} catch (err) {
console.log('err in document beforesave', err.message);
diff --git a/apps/OpenSignServer/cloud/parsefunction/pdf/GenerateCertificate.js b/apps/OpenSignServer/cloud/parsefunction/pdf/GenerateCertificate.js
index c3ce72ac9..0f3081c5e 100644
--- a/apps/OpenSignServer/cloud/parsefunction/pdf/GenerateCertificate.js
+++ b/apps/OpenSignServer/cloud/parsefunction/pdf/GenerateCertificate.js
@@ -25,6 +25,7 @@ export default async function GenerateCertificate(docDetails) {
const generatedOn = 'Generated On ' + generatedUTCTime;
const OriginIp = docDetails?.OriginIp || '';
const company = docDetails?.ExtUserPtr?.Company || '';
+ const createdAt = docDetails?.DocSentAt?.iso || docDetails.createdAt;
const auditTrail =
docDetails.AuditTrail?.length > 1
? docDetails.AuditTrail.map(x => {
@@ -33,7 +34,7 @@ export default async function GenerateCertificate(docDetails) {
...data,
ipAddress: x.ipAddress,
SignedOn: x?.SignedOn || generatedUTCTime,
- ViewedOn: x?.ViewedOn || generatedUTCTime,
+ ViewedOn: x?.ViewedOn || x?.SignedOn || generatedUTCTime,
Signature: x?.Signature || '',
};
})
@@ -42,7 +43,10 @@ export default async function GenerateCertificate(docDetails) {
...docDetails.ExtUserPtr,
ipAddress: docDetails?.AuditTrail[0].ipAddress,
SignedOn: docDetails?.AuditTrail[0]?.SignedOn || generatedUTCTime,
- ViewedOn: docDetails?.AuditTrail[0]?.ViewedOn || generatedUTCTime,
+ ViewedOn:
+ docDetails?.AuditTrail[0]?.ViewedOn ||
+ docDetails?.AuditTrail[0]?.SignedOn ||
+ generatedUTCTime,
Signature: docDetails?.AuditTrail[0]?.Signature || '',
},
];
@@ -151,7 +155,7 @@ export default async function GenerateCertificate(docDetails) {
color: textKeyColor,
});
- page.drawText(`${new Date(docDetails.createdAt).toUTCString()}`, {
+ page.drawText(`${new Date(createdAt).toUTCString()}`, {
x: 105,
y: 625,
size: text,
diff --git a/apps/OpenSignServer/index.js b/apps/OpenSignServer/index.js
index e06f2e40e..2d51c739f 100644
--- a/apps/OpenSignServer/index.js
+++ b/apps/OpenSignServer/index.js
@@ -166,6 +166,7 @@ app.use(cors());
app.use(express.json({ limit: '50mb' }));
app.use(express.urlencoded({ limit: '50mb', extended: true }));
app.use(function (req, res, next) {
+ console.log('ip', getUserIP(req));
req.headers['x-real-ip'] = getUserIP(req);
next();
});
@@ -225,7 +226,7 @@ if (!process.env.TESTING) {
// Set the Keep-Alive and headers timeout to 100 seconds
httpServer.keepAliveTimeout = 100000; // in milliseconds
httpServer.headersTimeout = 100000; // in milliseconds
- httpServer.listen({ port: port, host: '0.0.0.0' }, function () {
+ httpServer.listen(port, '0.0.0.0', function () {
console.log('parse-server-example running on port ' + port + '.');
const isWindows = process.platform === 'win32';
// console.log('isWindows', isWindows);