diff --git a/app/mailers/submitter_mailer.rb b/app/mailers/submitter_mailer.rb index 7faeb454..5c6af4f8 100644 --- a/app/mailers/submitter_mailer.rb +++ b/app/mailers/submitter_mailer.rb @@ -18,6 +18,7 @@ class SubmitterMailer < ApplicationMailer end mail(to: @submitter.email, + from: from_address_for_submitter(submitter), subject:, reply_to: submitter.submission.created_by_user&.friendly_name) end @@ -27,8 +28,18 @@ class SubmitterMailer < ApplicationMailer @submitter = submitter @user = user - mail(to: user.email, - subject: %(#{submitter.email} has completed the "#{submitter.submission.template.name}" form)) + @email_config = @current_account.account_configs.find_by(key: AccountConfig::SUBMITTER_COMPLETED_EMAIL_KEY) + + subject = + if @email_config + ReplaceEmailVariables.call(@email_config.value['subject'], submitter:) + else + %(#{submitter.email} has completed the "#{submitter.submission.template.name}" form) + end + + mail(from: from_address_for_submitter(submitter), + to: user.email, + subject:) end def documents_copy_email(submitter) @@ -43,6 +54,23 @@ class SubmitterMailer < ApplicationMailer attachments[attachment.filename.to_s] = attachment.download end - mail(to: submitter.email, subject: 'Your copy of documents') + @email_config = @current_account.account_configs.find_by(key: AccountConfig::SUBMITTER_DOCUMENTS_COPY_EMAIL_KEY) + + subject = + if @email_config + ReplaceEmailVariables.call(@email_config.value['subject'], submitter:) + else + 'Your copy of documents' + end + + mail(from: from_address_for_submitter(submitter), + to: submitter.email, + subject:) + end + + private + + def from_address_for_submitter(submitter) + submitter.submission.created_by_user&.friendly_name || submitter.submission.template.author.friendly_name end end diff --git a/app/models/account_config.rb b/app/models/account_config.rb index 44e5fa32..39752a09 100644 --- a/app/models/account_config.rb +++ b/app/models/account_config.rb @@ -22,6 +22,8 @@ # class AccountConfig < ApplicationRecord SUBMITTER_INVITATION_EMAIL_KEY = 'submitter_invitation_email' + SUBMITTER_COMPLETED_EMAIL_KEY = 'submitter_completed_email' + SUBMITTER_DOCUMENTS_COPY_EMAIL_KEY = 'submitter_documents_copy_email' DEFAULT_VALUES = { SUBMITTER_INVITATION_EMAIL_KEY => { @@ -32,6 +34,23 @@ class AccountConfig < ApplicationRecord "Please contact us by replying to this email if you didn't request this.\n\n" \ "Thanks,\n" \ '{{account.name}}' + }, + SUBMITTER_COMPLETED_EMAIL_KEY => { + 'subject' => '{{submitter.email}} has completed the "{{template.name}}" form', + 'body' => "Hi,\n\n" \ + "{{submitter.email}} has completed the \"{{template.name}}\" form:\n\n" \ + "{{submission.link}}\n\n" \ + "Thanks,\n" \ + '{{account.name}}' + }, + SUBMITTER_DOCUMENTS_COPY_EMAIL_KEY => { + 'subject' => 'Your copy of documents', + 'body' => "Hi there,\n\n" \ + "Please check the copy of your \"{{template.name}}\" submission in the email attachments.\n" \ + "Alternatively, you can download the copy using:\n\n" \ + "{{documents.links}}\n\n" \ + "Thanks,\n" \ + '{{account.name}}' } }.freeze diff --git a/app/views/personalization_settings/show.html.erb b/app/views/personalization_settings/show.html.erb index 4af1a826..73cb2140 100644 --- a/app/views/personalization_settings/show.html.erb +++ b/app/views/personalization_settings/show.html.erb @@ -1,25 +1,91 @@
Signature Request Email
- <%= form_for AccountConfigs.find_or_initialize_for_key(current_account, AccountConfig::SUBMITTER_INVITATION_EMAIL_KEY), url: settings_personalization_path, method: :post, html: { autocomplete: 'off', class: 'space-y-4' } do |f| %> - <%= f.hidden_field :key %> - <%= f.fields_for :value, Struct.new(:subject, :body).new(*f.object.value.values_at('subject', 'body')) do |ff| %> -Email Templates
+Company Logo
<%= render 'logo_form' %>Hi <%= @user.first_name %>,
-<%= @submitter.email %> has completed the "<%= @submitter.submission.template.name %>" form.
-<%= link_to 'View Submission', submission_url(@submitter.submission) %>
+<% if @email_config %> + <%= auto_link(simple_format(h(ReplaceEmailVariables.call(@email_config.value['body'], submitter: @submitter)))) %> +<% else %> +Hi <%= @user.first_name %>,
+<%= @submitter.email %> has completed the "<%= @submitter.submission.template.name %>" form.
+<%= link_to 'View Submission', submission_url(@submitter.submission) %>
+<% end %> diff --git a/app/views/submitter_mailer/documents_copy_email.html.erb b/app/views/submitter_mailer/documents_copy_email.html.erb index e669a3e3..adf633da 100644 --- a/app/views/submitter_mailer/documents_copy_email.html.erb +++ b/app/views/submitter_mailer/documents_copy_email.html.erb @@ -1,13 +1,17 @@ -Hi there,
-Please check the copy of your "<%= @submitter.submission.template.name %>" submission in the email attachments.
-Alternatively, you can download the copy using:
-<% @documents.each do |document| %> -Hi there,
+Please check the copy of your "<%= @submitter.submission.template.name %>" submission in the email attachments.
+Alternatively, you can download the copy using:
+ <% @documents.each do |document| %> +
+ Thanks,
<%= @current_account.name %>
+
- Thanks,
<%= @current_account.name %>
-