From c53ed7f984bc0bfd4c499df473ab52ce4fd64558 Mon Sep 17 00:00:00 2001 From: Alex Turchyn Date: Fri, 14 Nov 2025 00:32:30 +0200 Subject: [PATCH] add custom invitation reminder emails --- app/controllers/personalization_settings_controller.rb | 1 + app/controllers/templates_preferences_controller.rb | 6 ++++-- app/models/account_config.rb | 7 +++++++ .../_submitter_invitation_reminder_email_collapse.html.erb | 0 app/views/templates_preferences/show.html.erb | 1 + config/locales/i18n.yml | 7 +++++++ 6 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 app/views/templates_preferences/_submitter_invitation_reminder_email_collapse.html.erb diff --git a/app/controllers/personalization_settings_controller.rb b/app/controllers/personalization_settings_controller.rb index 9812aaee..d9d33490 100644 --- a/app/controllers/personalization_settings_controller.rb +++ b/app/controllers/personalization_settings_controller.rb @@ -4,6 +4,7 @@ class PersonalizationSettingsController < ApplicationController ALLOWED_KEYS = [ AccountConfig::FORM_COMPLETED_BUTTON_KEY, AccountConfig::SUBMITTER_INVITATION_EMAIL_KEY, + AccountConfig::SUBMITTER_INVITATION_REMINDER_EMAIL_KEY, AccountConfig::SUBMITTER_DOCUMENTS_COPY_EMAIL_KEY, AccountConfig::SUBMITTER_COMPLETED_EMAIL_KEY, AccountConfig::FORM_COMPLETED_MESSAGE_KEY, diff --git a/app/controllers/templates_preferences_controller.rb b/app/controllers/templates_preferences_controller.rb index 6b610b57..391b6714 100644 --- a/app/controllers/templates_preferences_controller.rb +++ b/app/controllers/templates_preferences_controller.rb @@ -5,6 +5,8 @@ class TemplatesPreferencesController < ApplicationController RESETTABLE_PREFERENCE_KEYS = { AccountConfig::SUBMITTER_INVITATION_EMAIL_KEY => %w[request_email_subject request_email_body submitters], + AccountConfig::SUBMITTER_INVITATION_REMINDER_EMAIL_KEY => %w[invitation_reminder_email_subject + invitation_reminder_email_body], AccountConfig::SUBMITTER_DOCUMENTS_COPY_EMAIL_KEY => %w[documents_copy_email_subject documents_copy_email_body], AccountConfig::SUBMITTER_COMPLETED_EMAIL_KEY => %w[completed_notification_email_subject completed_notification_email_body] @@ -46,14 +48,14 @@ class TemplatesPreferencesController < ApplicationController def template_params params.require(:template).permit( preferences: %i[bcc_completed request_email_subject request_email_body + invitation_reminder_email_subject invitation_reminder_email_body documents_copy_email_subject documents_copy_email_body documents_copy_email_enabled documents_copy_email_attach_audit documents_copy_email_attach_documents documents_copy_email_reply_to completed_notification_email_attach_documents completed_redirect_url validate_unique_submitters require_all_submitters submitters_order require_phone_2fa - default_expire_at_duration shared_link_2fa - default_expire_at request_email_enabled + default_expire_at_duration shared_link_2fa default_expire_at request_email_enabled completed_notification_email_subject completed_notification_email_body completed_notification_email_enabled completed_notification_email_attach_audit] + [completed_message: %i[title body], diff --git a/app/models/account_config.rb b/app/models/account_config.rb index 462cc725..c2893360 100644 --- a/app/models/account_config.rb +++ b/app/models/account_config.rb @@ -22,6 +22,7 @@ # class AccountConfig < ApplicationRecord SUBMITTER_INVITATION_EMAIL_KEY = 'submitter_invitation_email' + SUBMITTER_INVITATION_REMINDER_EMAIL_KEY = 'submitter_invitation_reminder_email' SUBMITTER_COMPLETED_EMAIL_KEY = 'submitter_completed_email' SUBMITTER_DOCUMENTS_COPY_EMAIL_KEY = 'submitter_documents_copy_email' BCC_EMAILS = 'bcc_emails' @@ -59,6 +60,12 @@ class AccountConfig < ApplicationRecord 'body' => I18n.t(:submitter_invitation_email_sign_body) } }, + SUBMITTER_INVITATION_REMINDER_EMAIL_KEY => lambda { + { + 'subject' => I18n.t(:you_are_invited_to_sign_a_document), + 'body' => I18n.t(:submitter_invitation_email_sign_body) + } + }, SUBMITTER_COMPLETED_EMAIL_KEY => lambda { { 'subject' => I18n.t(:template_name_has_been_completed_by_submitters), diff --git a/app/views/templates_preferences/_submitter_invitation_reminder_email_collapse.html.erb b/app/views/templates_preferences/_submitter_invitation_reminder_email_collapse.html.erb new file mode 100644 index 00000000..e69de29b diff --git a/app/views/templates_preferences/show.html.erb b/app/views/templates_preferences/show.html.erb index 71c0f7e4..290286cf 100644 --- a/app/views/templates_preferences/show.html.erb +++ b/app/views/templates_preferences/show.html.erb @@ -101,6 +101,7 @@ <%= render 'templates_preferences/submitter_invitation_email_form' %> + <%= render 'templates_preferences/submitter_invitation_reminder_email_collapse' %>
diff --git a/config/locales/i18n.yml b/config/locales/i18n.yml index 92d43e72..3b6d649f 100644 --- a/config/locales/i18n.yml +++ b/config/locales/i18n.yml @@ -290,6 +290,7 @@ en: &en invalid_timeserver: Invalid Timeserver email_templates: Email Templates signature_request_email: Signature request email + signature_request_reminder_email: Signature request reminder email signature_request_sms: Signature Request SMS verification_code_sms: Verification Code SMS completed_notification_email: Completed notification email @@ -1217,6 +1218,7 @@ es: &es invalid_timeserver: Servidor de tiempo inválido email_templates: Plantillas de correo electrónico signature_request_email: Correo de solicitud de firma + signature_request_reminder_email: Correo de recordatorio de solicitud de firma signature_request_sms: SMS de solicitud de firma verification_code_sms: SMS de código de verificación completed_notification_email: Correo de notificación de formulario completado @@ -2143,6 +2145,7 @@ it: &it invalid_timeserver: Server di timestamp non valido email_templates: Modelli email signature_request_email: Email di richiesta di firma + signature_request_reminder_email: Email di promemoria di richiesta di firma signature_request_sms: SMS di richiesta di firma verification_code_sms: SMS con codice di verifica completed_notification_email: Email di notifica di completamento @@ -3071,6 +3074,7 @@ fr: &fr invalid_timeserver: Serveur d’horodatage invalide email_templates: Modèles d’e‑mail signature_request_email: E‑mail de demande de signature + signature_request_reminder_email: E‑mail de rappel de demande de signature signature_request_sms: SMS de demande de signature verification_code_sms: SMS de code de vérification completed_notification_email: E‑mail de notification de finalisation @@ -3995,6 +3999,7 @@ pt: &pt invalid_timeserver: Servidor de carimbo de tempo inválido email_templates: Modelos de e-mail signature_request_email: E-mail de solicitação de assinatura + signature_request_reminder_email: E-mail de lembrete de solicitação de assinatura signature_request_sms: SMS de solicitação de assinatura verification_code_sms: SMS com código de verificação completed_notification_email: E-mail de notificação de submissão concluída @@ -4923,6 +4928,7 @@ de: &de invalid_timeserver: Ungültiger Zeitstempelserver email_templates: E-Mail-Vorlagen signature_request_email: E-Mail für Signaturanfrage + signature_request_reminder_email: E-Mail-Erinnerung für Signaturanfrage signature_request_sms: SMS für Signaturanfrage verification_code_sms: SMS mit Verifizierungscode completed_notification_email: E-Mail-Benachrichtigung bei Abschluss @@ -6216,6 +6222,7 @@ nl: &nl invalid_timeserver: Ongeldige tijdserver email_templates: E-mailsjablonen signature_request_email: E-mail voor handtekeningverzoek + signature_request_reminder_email: E-mailherinnering voor handtekeningverzoek signature_request_sms: SMS voor handtekeningverzoek verification_code_sms: Verificatiecode-SMS completed_notification_email: E-mailmelding voltooid