diff --git a/.all-contributorsrc b/.all-contributorsrc index e80ea83fdf..df60f4d6fb 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -241,6 +241,15 @@ "contributions": [ "translation" ] + }, + { + "login": "ehowe", + "name": "Eugene Howe", + "avatar_url": "https://avatars.githubusercontent.com/u/756984?v=4", + "profile": "https://github.com/ehowe", + "contributions": [ + "code" + ] } ] } diff --git a/.github/workflows/Docker.yml b/.github/workflows/Docker.yml index 098bd4e1f7..e6c2dd7f83 100644 --- a/.github/workflows/Docker.yml +++ b/.github/workflows/Docker.yml @@ -21,34 +21,46 @@ jobs: dockerfile: apps/OpenSign/Dockerhubfile - image: opensign/opensignserver dockerfile: apps/OpenSignServer/Dockerhubfile + steps: - - - name: Checkout + - name: Checkout uses: actions/checkout@v3 - - - name: Login to Docker Hub + + # 👇 Enable emulation so we can build for arm64 on amd64 runners + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + with: + platforms: linux/amd64,linux/arm64 + + # 👇 Enable Buildx for multi-arch builds + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Login to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Extract metadata (tags, labels) for Docker + + - name: Extract metadata (tags, labels) for Docker id: meta uses: docker/metadata-action@v4 with: images: ${{ matrix.image }} - - - name: Debug - List files opensign + + - name: Debug - List files opensign run: ls -R apps/OpenSign/ # Adjust the path as needed - - - name: Debug - List files opensignserver + + - name: Debug - List files opensignserver run: ls -R apps/OpenSignServer/ # Adjust the path as needed - - - name: Build and push + + - name: Build and push (multi-arch) uses: docker/build-push-action@v4 with: context: . file: ${{ matrix.dockerfile }} push: true + # 👇 Build for both AMD64 & ARM64 + platforms: linux/amd64,linux/arm64 tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} diff --git a/README.md b/README.md index 91a1974534..242420a669 100644 --- a/README.md +++ b/README.md @@ -165,6 +165,7 @@ We would like to thank all our contributors and users for their support and feed
{t("add-signer-note")}
- {isUserExist && ( -Hi {{receiver_name}},
We hope this email finds you well. {{sender_name}} has requested you to review and sign {{document_title}}.
Your signature is crucial to proceed with the next steps as it signifies your agreement and authorization.
If you have any questions or need further clarification regarding the document or the signing process, please contact the sender.
Thanks
Team ${appName}
Hi {{sender_name}},
All parties have successfully signed the document {{document_title}}. Kindly download the document from the attachment.
Thanks
Team ${appName}
Hi {{receiver_name}},
We hope this email finds you well. {{sender_name}} has requested you to review and sign {{document_title}}.
Your signature is crucial to proceed with the next steps as it signifies your agreement and authorization.
If you have any questions or need further clarification regarding the document or the signing process, please contact the sender.
Thanks
Team ${appName}
Hi {{receiver_name}},
We hope this email finds you well. {{sender_name}} has requested you to review and sign {{document_title}}.
Your signature is crucial to proceed with the next steps as it signifies your agreement and authorization.
If you have any questions or need further clarification regarding the document or the signing process, please contact the sender.
Thanks
Team ${appName}
Hi {{sender_name}},
All parties have successfully signed the document {{document_title}}. Kindly download the document from the attachment.
Thanks
Team ${appName}
{rowData?.Note || "-"}
+handleItemClick(col, rowData?.Note)} + > + {rowData?.Note || "-"} +
";
+ const opurl = ` here`;
+ const removePrefill =
+ doc?.Placeholders?.length > 0 && doc?.Placeholders?.filter(x => x?.Role !== 'prefill');
+ const signUser =
+ removePrefill?.length > 0 &&
+ removePrefill?.find(x => x?.signerPtr?.UserId?.objectId === userId);
+
+ const sender = doc.ExtUserPtr;
+ const pdfName = doc.Name;
+ const creatorName = doc.ExtUserPtr.Name;
+ const creatorEmail = doc.ExtUserPtr.Email;
+ const signerName = signUser?.signerPtr?.Name || '';
+ const signerEmail = signUser?.signerPtr?.Email || signUser?.email || '';
+ const viewDocUrl = `${publicUrl}/recipientSignPdf/${doc.objectId}`;
+ const subject = `Document "${pdfName}" has been declined by ${signerName}`;
+ const body =
+ "Document declined by ${signerName}
` + + `Dear ${creatorName},
` + + `${pdfName} has been declined by ${signerName} "${signerEmail}" on ${new Date().toLocaleDateString()}.
` + + `Decline Reason: ${reason || 'Not specified'}
` + + `This is an automated email from ${TenantAppName}. For any queries regarding this email, ` + + `please contact the sender ${creatorEmail} directly. If you think this email is inappropriate or spam, you may file a complaint with ${TenantAppName}${opurl}.