diff --git a/app/controllers/templates_preferences_controller.rb b/app/controllers/templates_preferences_controller.rb index ac3b2857..a2da8f63 100644 --- a/app/controllers/templates_preferences_controller.rb +++ b/app/controllers/templates_preferences_controller.rb @@ -9,6 +9,7 @@ class TemplatesPreferencesController < ApplicationController authorize!(:update, @template) @template.preferences = @template.preferences.merge(template_params[:preferences]) + @template.preferences = @template.preferences.reject { |_, v| v.is_a?(String) && v.blank? } @template.save! head :ok @@ -19,7 +20,16 @@ class TemplatesPreferencesController < ApplicationController def template_params params.require(:template).permit( preferences: %i[bcc_completed request_email_subject request_email_body - documents_copy_email_subject documents_copy_email_body] - ) + documents_copy_email_subject documents_copy_email_body + documents_copy_email_enabled] + ).tap do |attrs| + attrs[:preferences] = attrs[:preferences].transform_values do |value| + if %w[true false].include?(value) + value == 'true' + else + value + end + end + end end end diff --git a/app/jobs/process_submitter_completion_job.rb b/app/jobs/process_submitter_completion_job.rb index 1f2b740d..7583a8f8 100644 --- a/app/jobs/process_submitter_completion_job.rb +++ b/app/jobs/process_submitter_completion_job.rb @@ -33,19 +33,25 @@ class ProcessSubmitterCompletionJob < ApplicationJob SubmitterMailer.completed_email(submitter, user).deliver_later! end - bcc = submission.preferences['bcc_completed'].presence || - submission.template.preferences['bcc_completed'].presence || - submission.account.account_configs - .find_by(key: AccountConfig::BCC_EMAILS)&.value - - bcc.to_s.scan(User::EMAIL_REGEXP).each do |to| + build_bcc_addresses(submission).each do |to| SubmitterMailer.completed_email(submitter, user, to:).deliver_later! end end to = build_to_addresses(submitter) - SubmitterMailer.documents_copy_email(submitter, to:).deliver_later! if to.present? + return if to.blank? || submitter.template.preferences['documents_copy_email_enabled'] == false + + SubmitterMailer.documents_copy_email(submitter, to:).deliver_later! + end + + def build_bcc_addresses(submission) + bcc = submission.preferences['bcc_completed'].presence || + submission.template.preferences['bcc_completed'].presence || + submission.account.account_configs + .find_by(key: AccountConfig::BCC_EMAILS)&.value + + bcc.to_s.scan(User::EMAIL_REGEXP) end def build_to_addresses(submitter) diff --git a/app/views/templates_preferences/show.html.erb b/app/views/templates_preferences/show.html.erb index c2aa251a..fd68ca8a 100644 --- a/app/views/templates_preferences/show.html.erb +++ b/app/views/templates_preferences/show.html.erb @@ -82,7 +82,7 @@