diff --git a/apps/OpenSign/public/locales/en/translation.json b/apps/OpenSign/public/locales/en/translation.json index 0f544addd..ce2707fe1 100644 --- a/apps/OpenSign/public/locales/en/translation.json +++ b/apps/OpenSign/public/locales/en/translation.json @@ -672,6 +672,14 @@ "document-logs":"Document logs", "server-down": "Unable to connect to the OpenSign server. If you are self-hosting OpenSign, please ensure that all the steps in the documentation have been followed correctly. If you're running OpenSign locally, you might be accessing it through an incorrect port number.", "admin-exists": "Admin already exists. Please login to the application using admin credentials in order to manage users.", + "enable-tour":"Enable Tour", + "istourenabled-help":{ + "p1":"This will enable a guided tour for signers, providing instructions during the signing process.", + "p2":"This will disable the guided tour, ensuring a faster, uninterrupted signing experience.", + "p3":"Tip: If your signers are familiar with OpenSign and frequently use it, you may want to disable the guided tour for a more seamless experience. Choose the option that best fits your document signing needs." + }, + "form-title-1":"Document Flow Setting", + "form-title-2":"Security Setting", "public-tour-message":"The template needs to be public before you can generate a shareable link.", "add-user-template": "You need to add a role before you can add fields for it.", "pdf-uncompatible": "This pdf is not compatible with opensign, please contact " diff --git a/apps/OpenSign/public/locales/es/translation.json b/apps/OpenSign/public/locales/es/translation.json index 2ea7c7c4c..0754c0c5a 100644 --- a/apps/OpenSign/public/locales/es/translation.json +++ b/apps/OpenSign/public/locales/es/translation.json @@ -674,6 +674,14 @@ "admin-exists": "El administrador ya existe. Por favor, inicia sesión en la aplicación usando las credenciales de administrador para poder administrar los usuarios.", "public-tour-message": "Por favor, convierte la plantilla en pública para copiar la URL pública", "add-user-template": "Es necesario agregar un rol antes de poder agregarle campos.", - "pdf-uncompatible": "Este pdf no es compatible con opensign, comuníquese con " + "pdf-uncompatible": "Este pdf no es compatible con opensign, comuníquese con ", + "enable-tour": "Habilitar recorrido", + "istourenabled-help":{ + "p1": "Esto permitirá realizar una visita guiada para los firmantes, brindando instrucciones durante el proceso de firma.", + "p2": "Esto desactivará la visita guiada, lo que garantizará una experiencia de firma más rápida e ininterrumpida.", + "p3": "Consejo: si sus firmantes están familiarizados con OpenSign y lo utilizan con frecuencia, es posible que desee desactivar la visita guiada para disfrutar de una experiencia más fluida. Elija la opción que mejor se adapte a sus necesidades de firma de documentos" + }, + "form-title-1": "Configuración del flujo de documentos", + "form-title-2": "Configuración de seguridad" } diff --git a/apps/OpenSign/public/locales/fr/translation.json b/apps/OpenSign/public/locales/fr/translation.json index 3d3de12c3..5de75adea 100644 --- a/apps/OpenSign/public/locales/fr/translation.json +++ b/apps/OpenSign/public/locales/fr/translation.json @@ -671,6 +671,14 @@ "document-logs":"Journaux de documents", "server-down": "Impossible de se connecter au serveur OpenSign. Si vous hébergez vous-même OpenSign, veuillez vous assurer que toutes les étapes de la documentation ont été correctement suivies. Si vous exécutez OpenSign localement, vous y accédez peut-être via un numéro de port incorrect.", "admin-exists": "L'administrateur existe déjà. Veuillez vous connecter à l'application en utilisant les informations d'identification de l'administrateur afin de gérer les utilisateurs.", + "enable-tour": "Activer la visite", + "istourenabled-otp-help":{ + "p1": "Cela permettra une visite guidée pour les signataires, fournissant des instructions pendant le processus de signature.", + "p2": "Cela désactivera la visite guidée, garantissant ainsi une expérience de signature plus rapide et ininterrompue.", + "p3": "Conseil : si vos signataires connaissent OpenSign et l'utilisent fréquemment, vous souhaiterez peut-être désactiver la visite guidée pour une expérience plus fluide. Choisissez l'option qui correspond le mieux à vos besoins en matière de signature de documents." + }, + "form-title-1": "Paramètre du flux de documents", + "form-title-2": "Paramètre de sécurité", "public-tour-message": "Le modèle doit être public avant que vous puissiez générer un lien partageable.", "add-user-template":"Vous devez ajouter un rôle avant de pouvoir lui ajouter des champs. ", "pdf-uncompatible":"Ce pdf n'est pas compatible avec opensign, veuillez contacter " diff --git a/apps/OpenSign/src/components/pdf/EditTemplate.js b/apps/OpenSign/src/components/pdf/EditTemplate.js index 713906fa8..735ac2a9e 100644 --- a/apps/OpenSign/src/components/pdf/EditTemplate.js +++ b/apps/OpenSign/src/components/pdf/EditTemplate.js @@ -17,7 +17,10 @@ const EditTemplate = ({ template, onSuccess }) => { SendinOrder: template?.SendinOrder ? `${template?.SendinOrder}` : "false", AutomaticReminders: template?.AutomaticReminders || false, RemindOnceInEvery: template?.RemindOnceInEvery || 5, - IsEnableOTP: template?.IsEnableOTP ? `${template?.IsEnableOTP}` : "false" + IsEnableOTP: template?.IsEnableOTP ? `${template?.IsEnableOTP}` : "false", + IsTourEnabled: template?.IsTourEnabled + ? `${template?.IsTourEnabled}` + : "false" }); const [isSubscribe, setIsSubscribe] = useState(false); useEffect(() => { @@ -43,6 +46,7 @@ const EditTemplate = ({ template, onSuccess }) => { e.preventDefault(); e.stopPropagation(); const isChecked = formData.SendinOrder === "true" ? true : false; + const isTourEnabled = formData?.IsTourEnabled === "false" ? false : true; const AutoReminder = formData?.AutomaticReminders || false; const IsEnableOTP = formData.IsEnableOTP === "true" ? true : false; let reminderDate = {}; @@ -56,6 +60,7 @@ const EditTemplate = ({ template, onSuccess }) => { ...formData, SendinOrder: isChecked, IsEnableOTP: IsEnableOTP, + IsTourEnabled: isTourEnabled, ...reminderDate }; onSuccess(data); @@ -256,6 +261,59 @@ const EditTemplate = ({ template, onSuccess }) => { )} + +
+ +
+ +
{t("yes")}
+
+
+ +
{t("no")}
+
+
- {props.title !== "New Template" && ( + {props.title === "Sign Yourself" ? ( - )} - {props.title !== "Sign Yourself" && ( -
- -
- -
{t("yes")}
-
-
- -
{t("no")}
-
-
- )} - {isAdvanceOpt && ( -
- {props.title === "Request Signatures" && ( -
- - handleStrInput(e)} - onInvalid={(e) => - e.target.setCustomValidity(t("input-required")) - } - onInput={(e) => e.target.setCustomValidity("")} - required + ) : ( +
+
+ {props.title !== "New Template" ? ( + -
+ ) : ( + <> + + {t("form-title-1")} + +
+ +
+
+ +
{t("yes")}
+
+
+ +
{t("no")}
+
+
+
+ + )} + {isAdvanceOpt && ( + <> + {isEnableSubscription && + props.title === "New Template" && ( +
+ + {t("auto-reminder")}{" "} + {!isSubscribe && isEnableSubscription && ( + + )} + + +
+ )} + {formData?.autoreminder === true && ( +
+ + + e.target.setCustomValidity(t("input-required")) + } + onInput={(e) => e.target.setCustomValidity("")} + required + /> +
+ )} + {props.title !== "New Template" && ( + <> + + {t("form-title-1")} + +
+ +
+
+ +
{t("yes")}
+
+
+ +
{t("no")}
+
+
+
+ + )} + +
+ {props.title === "Request Signatures" && ( +
+ + handleStrInput(e)} + onInvalid={(e) => + e.target.setCustomValidity(t("input-required")) + } + onInput={(e) => e.target.setCustomValidity("")} + required + /> +
+ )} +
+ + )} +
+ {isAdvanceOpt && ( +
)} - {props.title !== "Sign Yourself" && ( - <> - {isEnableSubscription && ( -
+ {isAdvanceOpt && ( +
+ {isEnableSubscription && props.title !== "New Template" && ( +
{t("auto-reminder")}{" "} {!isSubscribe && isEnableSubscription && } @@ -1029,28 +1202,30 @@ const Forms = (props) => {
)} - {formData?.autoreminder === true && ( -
- - - e.target.setCustomValidity(t("input-required")) - } - onInput={(e) => e.target.setCustomValidity("")} - required - /> -
- )} + {formData?.autoreminder === true && + props.title !== "New Template" && ( +
+ + + e.target.setCustomValidity(t("input-required")) + } + onInput={(e) => e.target.setCustomValidity("")} + required + /> +
+ )} + {t("form-title-2")} {isEnableSubscription && ( -
+
-
+
+
+ +
{t("yes")}
+
+
+ +
{t("no")}
+
+
+
+ )} +
+ +
+
{t("yes")}
-
+
{t("no")}
- )} - +
+
)}
)} - {props.title !== "Sign Yourself" && ( + + {isAdvanceOpt && props.title !== "Sign Yourself" ? (
setIsAdvanceOpt(!isAdvanceOpt)} className={`mt-2.5 op-link op-link-primary text-sm`} > - {isAdvanceOpt - ? t("hide-advanced-options") - : t("advanced-options")} + {t("hide-advanced-options")}
+ ) : ( + props.title !== "Sign Yourself" && ( +
setIsAdvanceOpt(!isAdvanceOpt)} + className={`mt-2.5 op-link op-link-primary text-sm`} + > + {t("advanced-options")} +
+ ) )} +