From 452db5dc3933b4c5456cb793143656152336670e Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Sun, 14 Jan 2024 01:59:13 +0200 Subject: [PATCH] allow to disable audit log PDF attachment --- .../personalization_settings_controller.rb | 18 ++++++++++++++---- app/mailers/submitter_mailer.rb | 8 +++++--- .../_submitter_completed_email_form.html.erb | 8 +++++++- 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/app/controllers/personalization_settings_controller.rb b/app/controllers/personalization_settings_controller.rb index e5c08bf5..58a641de 100644 --- a/app/controllers/personalization_settings_controller.rb +++ b/app/controllers/personalization_settings_controller.rb @@ -7,18 +7,28 @@ class PersonalizationSettingsController < ApplicationController def create account_config = - current_account.account_configs.find_or_initialize_by(key: encrypted_config_params[:key]) + current_account.account_configs.find_or_initialize_by(key: account_config_params[:key]) authorize!(:create, account_config) - account_config.update!(encrypted_config_params) + account_config.update!(account_config_params) redirect_back(fallback_location: settings_personalization_path, notice: 'Settings have been saved.') end private - def encrypted_config_params - params.require(:account_config).permit! + def account_config_params + attrs = params.require(:account_config).permit! + + attrs[:value]&.transform_values! do |value| + if value.in?(%w[true false]) + value == 'true' + else + value + end + end + + attrs end end diff --git a/app/mailers/submitter_mailer.rb b/app/mailers/submitter_mailer.rb index 3e984205..abb97d9a 100644 --- a/app/mailers/submitter_mailer.rb +++ b/app/mailers/submitter_mailer.rb @@ -43,7 +43,9 @@ class SubmitterMailer < ApplicationMailer @email_config = AccountConfigs.find_for_account(@current_account, AccountConfig::SUBMITTER_COMPLETED_EMAIL_KEY) - add_completed_email_attachments!(submitter) + add_completed_email_attachments!( + submitter, with_audit_log: @email_config.nil? || @email_config.value['attach_audit_log'] != false + ) subject = if @email_config @@ -83,13 +85,13 @@ class SubmitterMailer < ApplicationMailer private - def add_completed_email_attachments!(submitter) + def add_completed_email_attachments!(submitter, with_audit_log: true) documents = Submitters.select_attachments_for_download(submitter) total_size = 0 audit_trail_data = nil - if submitter.submission.audit_trail.present? + if with_audit_log && submitter.submission.audit_trail.present? audit_trail_data = submitter.submission.audit_trail.download total_size = audit_trail_data.size diff --git a/app/views/personalization_settings/_submitter_completed_email_form.html.erb b/app/views/personalization_settings/_submitter_completed_email_form.html.erb index e759243e..e86189cf 100644 --- a/app/views/personalization_settings/_submitter_completed_email_form.html.erb +++ b/app/views/personalization_settings/_submitter_completed_email_form.html.erb @@ -8,7 +8,7 @@
<%= form_for AccountConfigs.find_or_initialize_for_key(current_account, AccountConfig::SUBMITTER_COMPLETED_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| %> + <%= f.fields_for :value, Struct.new(:subject, :body, :attach_audit_log).new(*f.object.value.values_at('subject', 'body', 'attach_audit_log')) do |ff| %>
<%= ff.label :subject, class: 'label' %> @@ -29,6 +29,12 @@ <%= ff.text_area :body, required: true, class: 'base-input w-full py-2', dir: 'auto' %>
+
+ + Attach audit log PDF + + <%= ff.check_box :attach_audit_log, { checked: ff.object.attach_audit_log != false, class: 'toggle' }, 'true', 'false' %> +
<% end %>
<%= f.button button_title(title: 'Save', disabled_with: 'Saving'), class: 'base-button' %>