diff --git a/app/views/layouts/mailer.html.erb b/app/views/layouts/mailer.html.erb index 62b825ff..73f98b48 100644 --- a/app/views/layouts/mailer.html.erb +++ b/app/views/layouts/mailer.html.erb @@ -3,10 +3,60 @@ - + - - <%= yield %> - <%= render partial: 'shared/mailer_attribution' %> + + + + + +
+ + <%# Header with logo %> + + + + <%# Content %> + + + + <%# Footer %> + + + +
+ <% if @current_account&.logo&.attached? %> + <%= @current_account.name %> + <% else %> + <%= @current_account&.name || Docuseal.product_name %> + <% end %> +
+ <%= yield %> +
+

+ <% if @current_account&.testing? %> + <%= t('sent_using_product_name_in_testing_mode_html', product_url: "#{Docuseal::PRODUCT_EMAIL_URL}/start", product_name: Docuseal.product_name) %> + <% else %> + <%= t('sent_using_product_name_free_document_signing_html', product_url: "#{Docuseal::PRODUCT_EMAIL_URL}/start", product_name: Docuseal.product_name) %> + <% end %> +

+
+
diff --git a/app/views/shared/_email_attribution.html.erb b/app/views/shared/_email_attribution.html.erb deleted file mode 100644 index 8cfd4988..00000000 --- a/app/views/shared/_email_attribution.html.erb +++ /dev/null @@ -1,10 +0,0 @@ -

- --- -

-

- <% if @current_account&.testing? %> - <%= t('sent_using_product_name_in_testing_mode_html', product_url: "#{Docuseal::PRODUCT_EMAIL_URL}/start", product_name: Docuseal.product_name) %> - <% else %> - <%= t('sent_using_product_name_free_document_signing_html', product_url: "#{Docuseal::PRODUCT_EMAIL_URL}/start", product_name: Docuseal.product_name) %> - <% end %> -

diff --git a/app/views/shared/_email_button.html.erb b/app/views/shared/_email_button.html.erb new file mode 100644 index 00000000..099aa40f --- /dev/null +++ b/app/views/shared/_email_button.html.erb @@ -0,0 +1,9 @@ + + + + +
+ + <%= local_assigns[:label] %> + +
diff --git a/app/views/shared/_mailer_attribution.html.erb b/app/views/shared/_mailer_attribution.html.erb deleted file mode 100644 index b9fa9276..00000000 --- a/app/views/shared/_mailer_attribution.html.erb +++ /dev/null @@ -1 +0,0 @@ -<%= render 'shared/email_attribution' %> diff --git a/app/views/submitter_mailer/_custom_content.html.erb b/app/views/submitter_mailer/_custom_content.html.erb index e22c394a..655f2b1d 100644 --- a/app/views/submitter_mailer/_custom_content.html.erb +++ b/app/views/submitter_mailer/_custom_content.html.erb @@ -1 +1,11 @@ -<%= MarkdownToHtml.call(ReplaceEmailVariables.call(local_assigns[:content], submitter: local_assigns[:submitter], sig: local_assigns[:sig])) %> +<% submitter = local_assigns[:submitter] %> +<% submitter_url_pattern = submitter&.slug.present? ? "/s/#{submitter.slug}" : nil %> +<% rendered_html = MarkdownToHtml.call(ReplaceEmailVariables.call(local_assigns[:content], submitter: submitter, sig: local_assigns[:sig])) %> +<% if submitter_url_pattern && rendered_html.include?(submitter_url_pattern) %> + <% button_label = I18n.t(submitter.with_signature_fields? ? :review_and_sign : :review_and_submit) %> + <% rendered_html = rendered_html.gsub(%r{[^<]*}i) do + url = Regexp.last_match(1) + render(partial: 'shared/email_button', locals: { url: url, label: button_label }) + end %> +<% end %> +<%= rendered_html.html_safe %> diff --git a/app/views/submitter_mailer/completed_email.html.erb b/app/views/submitter_mailer/completed_email.html.erb index 382efb16..e1053d14 100644 --- a/app/views/submitter_mailer/completed_email.html.erb +++ b/app/views/submitter_mailer/completed_email.html.erb @@ -3,5 +3,5 @@ <% else %>

<%= t('hi_there') %>,

<%= I18n.t(:name_has_been_completed_by_submitters, name: @submitter.submission.name || @submitter.submission.template.name, submitters: @submitter.submission.submitters.order(:completed_at).map { |e| e.name || e.email || e.phone }.uniq.join(', ')) %>

-

<%= link_to submission_url(@submitter.submission), submission_url(@submitter.submission) %>

+ <%= render partial: 'shared/email_button', locals: { url: submission_url(@submitter.submission), label: I18n.t('view') } %> <% end %> diff --git a/app/views/submitter_mailer/documents_copy_email.html.erb b/app/views/submitter_mailer/documents_copy_email.html.erb index 9e230cf2..178049cd 100644 --- a/app/views/submitter_mailer/documents_copy_email.html.erb +++ b/app/views/submitter_mailer/documents_copy_email.html.erb @@ -4,9 +4,7 @@

<%= t('hi_there') %>,

<%= t('please_check_the_copy_of_your_name_in_the_email_attachments', name: @submitter.submission.name || @submitter.submission.template.name) %>

<%= t('alternatively_you_can_review_and_download_your_copy_using_the_link_below') %>

-

- <%= link_to @submitter.submission.name || @submitter.submission.template.name, submissions_preview_url(@submitter.submission.slug, { sig: @sig, host: @custom_domain || ENV.fetch('EMAIL_HOST', Docuseal.default_url_options[:host]) }.compact) %> -

+ <%= render partial: 'shared/email_button', locals: { url: submissions_preview_url(@submitter.submission.slug, { sig: @sig, host: @custom_domain || ENV.fetch('EMAIL_HOST', Docuseal.default_url_options[:host]) }.compact), label: @submitter.submission.name || @submitter.submission.template.name } %>

<%= t('thanks') %>,
<%= @current_account.name %>

diff --git a/app/views/submitter_mailer/invitation_email.html.erb b/app/views/submitter_mailer/invitation_email.html.erb index 408016df..08fc2bc7 100644 --- a/app/views/submitter_mailer/invitation_email.html.erb +++ b/app/views/submitter_mailer/invitation_email.html.erb @@ -1,12 +1,12 @@ <% if @body.present? %> <%= render 'custom_content', content: @body, submitter: @submitter %> <% if !@body.match?(ReplaceEmailVariables::SUBMITTER_LINK) && !@body.match?(ReplaceEmailVariables::SUBMITTER_ID) && !@body.match?(ReplaceEmailVariables::SUBMISSION_LINK) && !@body.match?(ReplaceEmailVariables::TEMPLATE_ID) && !@submitter.submission.source.in?(%w[api embed]) %> -

<%= link_to nil, submit_form_url(slug: @submitter.slug, t: SubmissionEvents.build_tracking_param(@submitter, 'click_email'), host: @custom_domain || ENV.fetch('EMAIL_HOST', Docuseal.default_url_options[:host])) %>

+ <%= render partial: 'shared/email_button', locals: { url: submit_form_url(slug: @submitter.slug, t: SubmissionEvents.build_tracking_param(@submitter, 'click_email'), host: @custom_domain || ENV.fetch('EMAIL_HOST', Docuseal.default_url_options[:host])), label: I18n.t(@submitter.with_signature_fields? ? :review_and_sign : :review_and_submit) } %> <% end %> <% else %>

<%= t('hi_there') %>,

<%= I18n.t(@submitter.with_signature_fields? ? :you_have_been_invited_to_sign_the_name : :you_have_been_invited_to_submit_the_name_form, name: @submitter.submission.name || @submitter.submission.template.name) %>

-

<%= link_to I18n.t(@submitter.with_signature_fields? ? :review_and_sign : :review_and_submit), submit_form_url(slug: @submitter.slug, t: SubmissionEvents.build_tracking_param(@submitter, 'click_email'), host: @custom_domain || ENV.fetch('EMAIL_HOST', Docuseal.default_url_options[:host])) %>

+ <%= render partial: 'shared/email_button', locals: { url: submit_form_url(slug: @submitter.slug, t: SubmissionEvents.build_tracking_param(@submitter, 'click_email'), host: @custom_domain || ENV.fetch('EMAIL_HOST', Docuseal.default_url_options[:host])), label: I18n.t(@submitter.with_signature_fields? ? :review_and_sign : :review_and_submit) } %>

<%= t('please_contact_us_by_replying_to_this_email_if_you_have_any_questions') %>

<%= t('thanks') %>,
<%= @current_account.name %>