From 71fbde00992549d89bbaabac9a41b81a5fd232da Mon Sep 17 00:00:00 2001 From: RaktimaNXG Date: Wed, 22 May 2024 09:50:12 +0530 Subject: [PATCH] fix: add migration script to add new filed SendMail and handle email sent using share link from inProgress report --- apps/OpenSign/src/pages/PlaceHolderSign.js | 67 ++++++++++--------- .../src/primitives/GetReportDisplay.js | 2 +- .../cloud/parsefunction/reportsJson.js | 1 + ...4801-update_contracts_document_cls_cjs.cjs | 32 +++++++++ 4 files changed, 70 insertions(+), 32 deletions(-) create mode 100644 apps/OpenSignServer/databases/migrations/20240521184801-update_contracts_document_cls_cjs.cjs diff --git a/apps/OpenSign/src/pages/PlaceHolderSign.js b/apps/OpenSign/src/pages/PlaceHolderSign.js index e3b6489cb..ae3879387 100644 --- a/apps/OpenSign/src/pages/PlaceHolderSign.js +++ b/apps/OpenSign/src/pages/PlaceHolderSign.js @@ -1163,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); diff --git a/apps/OpenSign/src/primitives/GetReportDisplay.js b/apps/OpenSign/src/primitives/GetReportDisplay.js index 654024778..5ecd9a3af 100644 --- a/apps/OpenSign/src/primitives/GetReportDisplay.js +++ b/apps/OpenSign/src/primitives/GetReportDisplay.js @@ -296,7 +296,7 @@ const ReportTable = (props) => { const handleShare = (item) => { setActLoader({ [item.objectId]: true }); const host = window.location.origin; - const sendMail = false; + 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( diff --git a/apps/OpenSignServer/cloud/parsefunction/reportsJson.js b/apps/OpenSignServer/cloud/parsefunction/reportsJson.js index 98d2c06b5..f639ec9ed 100644 --- a/apps/OpenSignServer/cloud/parsefunction/reportsJson.js +++ b/apps/OpenSignServer/cloud/parsefunction/reportsJson.js @@ -101,6 +101,7 @@ export default function reportJson(id, userId) { 'AuditTrail', 'AuditTrail.UserPtr', 'ExpiryDate', + 'SendMail', ], }; // completed documents report diff --git a/apps/OpenSignServer/databases/migrations/20240521184801-update_contracts_document_cls_cjs.cjs b/apps/OpenSignServer/databases/migrations/20240521184801-update_contracts_document_cls_cjs.cjs new file mode 100644 index 000000000..3429f64aa --- /dev/null +++ b/apps/OpenSignServer/databases/migrations/20240521184801-update_contracts_document_cls_cjs.cjs @@ -0,0 +1,32 @@ +/** + * + * @param {Parse} Parse + */ +exports.up = async Parse => { + // TODO: set className here + const className = 'contracts_Document'; + const schema = new Parse.Schema(className); + schema.addBoolean('SendMail'); + // 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'); + + // TODO: Set the schema here + // Example: + // schema.deleteField('name').deleteField('cash'); + + return schema.update(); +};