From f38e8705de147c49deb0df9572d307907b3268a3 Mon Sep 17 00:00:00 2001 From: prafull-opensignlabs Date: Mon, 20 May 2024 15:31:20 +0530 Subject: [PATCH] feat: now user can sent automatic reminders --- .../src/components/pdf/EditTemplate.js | 94 ++++++- apps/OpenSign/src/constant/Utils.js | 10 +- apps/OpenSign/src/pages/Form.js | 244 ++++++++++++------ apps/OpenSign/src/pages/PlaceHolderSign.js | 2 +- .../OpenSign/src/pages/TemplatePlaceholder.js | 48 ++-- .../src/primitives/GetReportDisplay.js | 5 +- .../cloud/customRoute/autoReminder.js | 231 +++++++++++++++++ .../cloud/customRoute/customApp.js | 13 +- .../cloud/parsefunction/DocumentAftersave.js | 18 +- .../cloud/parsefunction/GetTemplate.js | 2 +- .../cloud/parsefunction/TemplateAfterSave.js | 9 +- 11 files changed, 539 insertions(+), 137 deletions(-) create mode 100644 apps/OpenSignServer/cloud/customRoute/autoReminder.js diff --git a/apps/OpenSign/src/components/pdf/EditTemplate.js b/apps/OpenSign/src/components/pdf/EditTemplate.js index 8010bf3fe..59c573941 100644 --- a/apps/OpenSign/src/components/pdf/EditTemplate.js +++ b/apps/OpenSign/src/components/pdf/EditTemplate.js @@ -1,6 +1,9 @@ -import React, { useState } from "react"; +import React, { useState, useEffect } from "react"; import "../../styles/AddUser.css"; -import { getFileName } from "../../constant/Utils"; +import { checkIsSubscribed, getFileName } from "../../constant/Utils"; +import PremiumAlertHeader from "../../primitives/PremiumAlertHeader"; +import Upgrade from "../../primitives/Upgrade"; +import { isEnableSubscription } from "../../constant/const"; // import SelectFolder from "../../premitives/SelectFolder"; const EditTemplate = ({ template, onSuccess }) => { @@ -9,9 +12,21 @@ const EditTemplate = ({ template, onSuccess }) => { Name: template?.Name || "", Note: template?.Note || "", Description: template?.Description || "", - SendinOrder: template?.SendinOrder ? `${template?.SendinOrder}` : "false" + SendinOrder: template?.SendinOrder ? `${template?.SendinOrder}` : "false", + AutomaticReminders: template?.AutomaticReminders || false, + RemindOnceInEvery: template?.RemindOnceInEvery || 5 }); - + const [isSubscribe, setIsSubscribe] = useState(false); + useEffect(() => { + fetchSubscription(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + const fetchSubscription = async () => { + if (isEnableSubscription) { + const getIsSubscribe = await checkIsSubscribed(); + setIsSubscribe(getIsSubscribe); + } + }; const handleStrInput = (e) => { setFormData({ ...formData, [e.target.name]: e.target.value }); }; @@ -25,12 +40,26 @@ const EditTemplate = ({ template, onSuccess }) => { e.preventDefault(); e.stopPropagation(); const isChecked = formData.SendinOrder === "true" ? true : false; - const data = { ...formData, SendinOrder: isChecked }; + const AutoReminder = formData?.AutomaticReminders || false; + + let reminderDate = {}; + if (AutoReminder) { + const RemindOnceInEvery = parseInt(formData?.RemindOnceInEvery); + const ReminderDate = new Date(template?.createdAt); + ReminderDate.setDate(ReminderDate.getDate() + RemindOnceInEvery); + reminderDate = { NextReminderDate: ReminderDate }; + } + const data = { ...formData, SendinOrder: isChecked, ...reminderDate }; onSuccess(data); }; - + const handleAutoReminder = () => { + setFormData((prev) => ({ + ...prev, + AutomaticReminders: !formData.AutomaticReminders + })); + }; return ( -
+
@@ -128,6 +157,57 @@ const EditTemplate = ({ template, onSuccess }) => {
No
+
+ {!isEnableSubscription && ( + + )} + + Auto reminder{" "} + {!isSubscribe && isEnableSubscription && } + + +
+ {isSubscribe && formData?.AutomaticReminders === true && ( +
+ + +
+ )} {/* */}