Skip to content

Commit 68050e3

Browse files
feat: add Send in order to send mail sequentially for signing document
1 parent 4f2801d commit 68050e3

File tree

6 files changed

+320
-155
lines changed

6 files changed

+320
-155
lines changed

apps/OpenSign/src/routes/Form.js

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ const Forms = (props) => {
3434
Name: "",
3535
Description: "",
3636
Note: "Please review and sign this document",
37-
TimeToCompleteDays: 15
37+
TimeToCompleteDays: 15,
38+
SendinOrder: "false"
3839
});
3940
const [fileupload, setFileUpload] = useState([]);
4041
const [fileload, setfileload] = useState(false);
@@ -161,6 +162,8 @@ const Forms = (props) => {
161162
"TimeToCompleteDays",
162163
parseInt(formData?.TimeToCompleteDays)
163164
);
165+
const isChecked = formData.SendinOrder === "true" ? true : false;
166+
object.set("SendinOrder", isChecked);
164167
}
165168
object.set("URL", fileupload);
166169
object.set("CreatedBy", Parse.User.createWithoutData(currentUser.id));
@@ -365,6 +368,32 @@ const Forms = (props) => {
365368
/>
366369
</div>
367370
)}
371+
{props.title === "Request Signature" && (
372+
<div className="text-xs mt-2">
373+
<label className="block">Send In Order</label>
374+
<div className="flex items-center gap-2 ml-2 mb-1">
375+
<input
376+
type="radio"
377+
value={"true"}
378+
name="SendinOrder"
379+
checked={formData.SendinOrder === "true"}
380+
className=""
381+
onChange={handleStrInput}
382+
/>
383+
<div className="text-center">Yes</div>
384+
</div>
385+
<div className="flex items-center gap-2 ml-2 mb-1">
386+
<input
387+
type="radio"
388+
value={"false"}
389+
name="SendinOrder"
390+
checked={formData.SendinOrder === "false"}
391+
onChange={handleStrInput}
392+
/>
393+
<div className="text-center">No</div>
394+
</div>
395+
</div>
396+
)}
368397
<div className="flex items-center mt-3 gap-2 text-white">
369398
<button
370399
className={`${

apps/OpenSignServer/cloud/customRoute/v1/routes/CreateDocumentWithTemplate.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ export default async function createDocumentWithTemplate(request, response) {
5454
const send_email = request.body.send_email;
5555
const email_subject = request.body.email_subject;
5656
const email_body = request.body.email_body;
57+
const sendInOrder = request.body.sendInOrder || false;
58+
5759
try {
5860
const reqToken = request.headers['x-api-token'];
5961
if (!reqToken) {
@@ -101,6 +103,9 @@ export default async function createDocumentWithTemplate(request, response) {
101103
object.set('Description', template.Description);
102104
}
103105
object.set('IsSendMail', send_email);
106+
if (sendInOrder) {
107+
object.set('SendinOrder', sendInOrder);
108+
}
104109

105110
let templateSigner = template?.Signers ? template?.Signers : [];
106111
let contact = [];
@@ -196,6 +201,9 @@ export default async function createDocumentWithTemplate(request, response) {
196201
console.log("don't send mail");
197202
} else {
198203
for (let i = 0; i < contact.length; i++) {
204+
if (sendInOrder) {
205+
contact.splice(1);
206+
}
199207
try {
200208
const imgPng = 'https://qikinnovation.ams3.digitaloceanspaces.com/logo.png';
201209
let url = `${process.env.SERVER_URL}/functions/sendmailv3/`;

apps/OpenSignServer/cloud/customRoute/v1/routes/createDocumentwithCoordinate.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ export default async function createDocumentwithCoordinate(request, response) {
5757
const fileData = request.files?.[0] ? request.files[0].buffer : null;
5858
const email_subject = request.body.email_subject;
5959
const email_body = request.body.email_body;
60+
const sendInOrder = request.body.sendInOrder || false;
6061
// console.log('fileData ', fileData);
6162
const protocol = customAPIurl();
6263
const baseUrl = new URL(process.env.SERVER_URL);
@@ -112,6 +113,9 @@ export default async function createDocumentwithCoordinate(request, response) {
112113
if (description) {
113114
object.set('Description', description);
114115
}
116+
if (sendInOrder) {
117+
object.set('SendinOrder', sendInOrder);
118+
}
115119
object.set('URL', fileUrl);
116120
object.set('CreatedBy', userPtr);
117121
object.set('ExtUserPtr', extUserPtr);
@@ -248,6 +252,9 @@ export default async function createDocumentwithCoordinate(request, response) {
248252
if (send_email === false) {
249253
console.log("don't send mail");
250254
} else {
255+
if (sendInOrder) {
256+
contact.splice(1);
257+
}
251258
for (let i = 0; i < contact.length; i++) {
252259
try {
253260
const imgPng = 'https://qikinnovation.ams3.digitaloceanspaces.com/logo.png';

apps/OpenSignServer/cloud/parsefunction/pdf/PDF.min.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -238,13 +238,13 @@ async function PDF(i, n) {
238238
v && 0 < v.length
239239
? plainAddPlaceholder({
240240
pdfBuffer: e,
241-
reason: 'Digitally signed by OpenSign for ' + v?.join(', '),
241+
reason: 'Digitally signed by OpenSign for ' + v?.join(', '),
242242
location: 'location',
243243
signatureLength: 1e4,
244244
})
245245
: plainAddPlaceholder({
246246
pdfBuffer: e,
247-
reason: 'Digitally signed by OpenSign for ' + m + ' <' + g + '>',
247+
reason: 'Digitally signed by OpenSign for ' + m + ' <' + g + '>',
248248
location: 'location',
249249
signatureLength: 1e4,
250250
})),

0 commit comments

Comments
 (0)