From d53fa5613b3c19978196426879d3eeef8f0b634e Mon Sep 17 00:00:00 2001 From: Alex Turchyn Date: Mon, 26 Jun 2023 00:46:01 +0300 Subject: [PATCH] adjust email templates --- .../send_submission_email_controller.rb | 4 +++- app/controllers/submissions_controller.rb | 2 +- .../submissions_debug_controller.rb | 2 +- .../submissions_download_controller.rb | 12 ++++------ app/controllers/submit_form_controller.rb | 6 +++++ app/mailers/application_mailer.rb | 2 +- app/mailers/submitter_mailer.rb | 23 +++++++++++++++---- app/models/user.rb | 2 +- app/views/icons/_info_circle.html.erb | 7 +++++- app/views/layouts/application.html.erb | 2 +- app/views/layouts/form.html.erb | 2 +- app/views/layouts/mailer.html.erb | 6 +++++ app/views/layouts/mailer.text.erb | 1 - app/views/layouts/plain.html.erb | 3 ++- app/views/setup/index.html.erb | 2 +- app/views/shared/_attribution.html.erb | 4 ++++ app/views/start_form/completed.html.erb | 3 +-- app/views/start_form/show.html.erb | 9 ++++---- app/views/submissions/new.html.erb | 18 +++++++++++++-- app/views/submissions/show.html.erb | 10 ++++---- app/views/submit_form/completed.html.erb | 3 ++- app/views/submit_form/show.html.erb | 5 +--- .../submitter_mailer/completed_email.html.erb | 3 +++ .../copy_to_submitter.html.erb | 3 --- .../documents_copy_email.html.erb | 13 +++++++++++ .../invitation_email.html.erb | 9 +++++--- .../user_mailer/invitation_email.html.erb | 9 +++++--- app/views/users/_form.html.erb | 2 +- config/routes.rb | 2 +- lib/docuseal.rb | 6 +++++ lib/generate_certificate.rb | 2 +- .../generate_result_attachments.rb | 5 ++-- lib/submitters.rb | 14 +++++++++++ public/robots.txt | 2 +- .../previews/submitter_mailer_preview.rb | 19 +++++++++++++++ 35 files changed, 160 insertions(+), 57 deletions(-) delete mode 100644 app/views/layouts/mailer.text.erb create mode 100644 app/views/shared/_attribution.html.erb create mode 100644 app/views/submitter_mailer/completed_email.html.erb delete mode 100644 app/views/submitter_mailer/copy_to_submitter.html.erb create mode 100644 app/views/submitter_mailer/documents_copy_email.html.erb create mode 100644 lib/submitters.rb create mode 100644 spec/mailers/previews/submitter_mailer_preview.rb diff --git a/app/controllers/send_submission_email_controller.rb b/app/controllers/send_submission_email_controller.rb index f0a40954..e4d1d1c8 100644 --- a/app/controllers/send_submission_email_controller.rb +++ b/app/controllers/send_submission_email_controller.rb @@ -17,7 +17,9 @@ class SendSubmissionEmailController < ApplicationController Submitter.find_by!(slug: params[:submitter_slug]) end - SubmitterMailer.copy_to_submitter(@submitter).deliver_later! + Submissions::GenerateResultAttachments.call(@submitter) if @submitter.documents.blank? + + SubmitterMailer.documents_copy_email(@submitter).deliver_later! respond_to do |f| f.html { redirect_to success_send_submission_email_index_path } diff --git a/app/controllers/submissions_controller.rb b/app/controllers/submissions_controller.rb index 3902a166..45dc072f 100644 --- a/app/controllers/submissions_controller.rb +++ b/app/controllers/submissions_controller.rb @@ -42,7 +42,7 @@ class SubmissionsController < ApplicationController submission.update!(deleted_at: Time.current) - redirect_to template_submissions_path(submission.template), notice: 'Submission has been archieved' + redirect_to template_submissions_path(submission.template), notice: 'Submission has been archived' end private diff --git a/app/controllers/submissions_debug_controller.rb b/app/controllers/submissions_debug_controller.rb index 87147e08..952c651f 100644 --- a/app/controllers/submissions_debug_controller.rb +++ b/app/controllers/submissions_debug_controller.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class SubmissionsDebugController < ApplicationController - layout 'form' + layout 'plain' skip_before_action :authenticate_user! diff --git a/app/controllers/submissions_download_controller.rb b/app/controllers/submissions_download_controller.rb index 93f90027..45b688d8 100644 --- a/app/controllers/submissions_download_controller.rb +++ b/app/controllers/submissions_download_controller.rb @@ -8,14 +8,10 @@ class SubmissionsDownloadController < ApplicationController Submissions::GenerateResultAttachments.call(submitter) if submitter.documents.blank? - original_documents = submitter.submission.template.documents.preload(:blob) - is_more_than_two_images = original_documents.count(&:image?) > 1 - - urls = submitter.documents.preload(:blob).filter_map do |attachment| - next if is_more_than_two_images && original_documents.find { |a| a.uuid == attachment.uuid }&.image? - - helpers.rails_blob_url(attachment) - end + urls = + Submitters.select_attachments_for_download(submitter).map do |attachment| + helpers.rails_blob_url(attachment) + end render json: urls end diff --git a/app/controllers/submit_form_controller.rb b/app/controllers/submit_form_controller.rb index ef386e2c..00f3e19a 100644 --- a/app/controllers/submit_form_controller.rb +++ b/app/controllers/submit_form_controller.rb @@ -22,6 +22,12 @@ class SubmitFormController < ApplicationController submitter.save! + if submitter.completed_at? + submitter.submission.template.account.users.active.each do |user| + SubmitterMailer.completed_email(submitter, user).deliver_later! + end + end + head :ok end diff --git a/app/mailers/application_mailer.rb b/app/mailers/application_mailer.rb index 8631df97..08ad2233 100644 --- a/app/mailers/application_mailer.rb +++ b/app/mailers/application_mailer.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class ApplicationMailer < ActionMailer::Base - default from: 'from@example.com' + default from: 'DocuSeal ' layout 'mailer' register_interceptor ActionMailerConfigsInterceptor diff --git a/app/mailers/submitter_mailer.rb b/app/mailers/submitter_mailer.rb index d9c9f813..d66ef55c 100644 --- a/app/mailers/submitter_mailer.rb +++ b/app/mailers/submitter_mailer.rb @@ -1,19 +1,32 @@ # frozen_string_literal: true class SubmitterMailer < ApplicationMailer - DEFAULT_MESSAGE = "You've been invited to submit the following documents:" + DEFAULT_MESSAGE = %(You have been invited to submit the "%s" form:) - def invitation_email(submitter, message: DEFAULT_MESSAGE) + def invitation_email(submitter, message: format(DEFAULT_MESSAGE, name: submitter.submission.template.name)) @submitter = submitter @message = message mail(to: @submitter.email, - subject: 'You have been invited to submit forms') + subject: 'You have been invited to submit a form') end - def copy_to_submitter(submitter) + def completed_email(submitter, user) @submitter = submitter + @user = user - mail(to: submitter.email, subject: 'Here is your copy') + mail(to: user.email, + subject: %(#{submitter.email} has completed the "#{submitter.submission.template.name}" form)) + end + + def documents_copy_email(submitter) + @submitter = submitter + @documents = Submitters.select_attachments_for_download(submitter) + + @documents.each do |attachment| + attachments[attachment.filename.to_s] = attachment.download + end + + mail(to: submitter.email, subject: 'Your copy of documents') end end diff --git a/app/models/user.rb b/app/models/user.rb index 68a1f024..d57f24c0 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -46,7 +46,7 @@ class User < ApplicationRecord belongs_to :account devise :database_authenticatable, :recoverable, :rememberable, :validatable, :trackable - devise :registerable # if ENV['APP_MULTITENANT'] + devise :registerable if Docuseal.multitenant? attribute :role, :string, default: 'admin' diff --git a/app/views/icons/_info_circle.html.erb b/app/views/icons/_info_circle.html.erb index 9ee66ae1..e2b2f806 100644 --- a/app/views/icons/_info_circle.html.erb +++ b/app/views/icons/_info_circle.html.erb @@ -1 +1,6 @@ - + + + + + + diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index f94ae9e6..e0ac91ec 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -2,7 +2,7 @@ - Docuseal + DocuSeal <%= csrf_meta_tags %> <%= csp_meta_tag %> diff --git a/app/views/layouts/form.html.erb b/app/views/layouts/form.html.erb index 837e7b98..fdd9be4f 100644 --- a/app/views/layouts/form.html.erb +++ b/app/views/layouts/form.html.erb @@ -2,7 +2,7 @@ - Docuseal + DocuSeal <%= csrf_meta_tags %> <%= csp_meta_tag %> diff --git a/app/views/layouts/mailer.html.erb b/app/views/layouts/mailer.html.erb index cfacc8b3..ff49ec3a 100644 --- a/app/views/layouts/mailer.html.erb +++ b/app/views/layouts/mailer.html.erb @@ -8,5 +8,11 @@ <%= yield %> +

+ --- +

+

+ Sent using <%= Docuseal::PRODUCT_NAME %> documents software. +

diff --git a/app/views/layouts/mailer.text.erb b/app/views/layouts/mailer.text.erb deleted file mode 100644 index 37f0bddb..00000000 --- a/app/views/layouts/mailer.text.erb +++ /dev/null @@ -1 +0,0 @@ -<%= yield %> diff --git a/app/views/layouts/plain.html.erb b/app/views/layouts/plain.html.erb index 38775b79..947d11b5 100644 --- a/app/views/layouts/plain.html.erb +++ b/app/views/layouts/plain.html.erb @@ -2,11 +2,12 @@ - Docuseal + DocuSeal <%= csrf_meta_tags %> <%= csp_meta_tag %> + <%= javascript_pack_tag 'application', defer: true %> <%= stylesheet_pack_tag 'application', media: 'all' %> diff --git a/app/views/setup/index.html.erb b/app/views/setup/index.html.erb index f6341b66..626ec961 100644 --- a/app/views/setup/index.html.erb +++ b/app/views/setup/index.html.erb @@ -41,7 +41,7 @@ <% end %>
- <%= f.button button_title(title: 'Confirm', disabled_with: 'Processing'), class: 'base-button' %> + <%= f.button button_title, class: 'base-button' %>
<% end %> diff --git a/app/views/shared/_attribution.html.erb b/app/views/shared/_attribution.html.erb new file mode 100644 index 00000000..58fbee58 --- /dev/null +++ b/app/views/shared/_attribution.html.erb @@ -0,0 +1,4 @@ +
+ Powered by + <%= Docuseal::PRODUCT_NAME %> - open source documents software +
diff --git a/app/views/start_form/completed.html.erb b/app/views/start_form/completed.html.erb index 6ce0db85..16bf621a 100644 --- a/app/views/start_form/completed.html.erb +++ b/app/views/start_form/completed.html.erb @@ -1,5 +1,4 @@

- Form has been submitted alredy by ypu - thanks! + Form has been submitted already - thanks!

<%= button_to button_title(title: 'Send copy to Email', disabled_with: 'Sending'), send_submission_email_index_path, params: { template_slug: @template.slug, email: params[:email] }, form: { onsubmit: 'event.submitter.disabled = true' } %> -<%# do not allow donwload for securetiy reaosnDownload documets %> diff --git a/app/views/start_form/show.html.erb b/app/views/start_form/show.html.erb index 9cf59384..58dfd599 100644 --- a/app/views/start_form/show.html.erb +++ b/app/views/start_form/show.html.erb @@ -1,7 +1,7 @@ -
+
-
+
@@ -11,7 +11,7 @@

DocuSeal

-

You have been invited to submit the document

+

You have been invited to submit the form

@@ -35,10 +35,11 @@ <%= f.email_field :email, required: true, class: 'base-input', placeholder: 'Provide your email to start' %>
- <%= f.button button_title(title: 'Confirm', disabled_with: 'Processing'), class: 'base-button' %> + <%= f.button button_title(title: 'Start'), class: 'base-button' %>
<% end %>
+<%= render 'shared/attribution' %> diff --git a/app/views/submissions/new.html.erb b/app/views/submissions/new.html.erb index 158ad1ea..93ed785a 100644 --- a/app/views/submissions/new.html.erb +++ b/app/views/submissions/new.html.erb @@ -36,16 +36,30 @@ <% end %>
+ <% is_smtp_configured = Docuseal.multitenant? || current_account.encrypted_configs.exists?(key: EncryptedConfig::EMAIL_SMTP_KEY) %> <%= f.label :send_email, class: 'flex items-center cursor-pointer' do %> - <%= f.check_box :send_email, class: 'base-checkbox', onchange: "message_field.classList.toggle('hidden', !event.currentTarget.checked)" %> + <%= f.check_box :send_email, class: 'base-checkbox', disabled: !is_smtp_configured, onchange: "message_field.classList.toggle('hidden', !event.currentTarget.checked)" %> Send Email <% end %> + <% unless is_smtp_configured %> +
+ <%= svg_icon('info_circle', class: 'w-6 h-6') %> +
+

SMTP not Configured

+

+ Configure SMTP settings in order to send emails: +
+ Go to SMTP settings +

+
+
+ <% end %>