diff --git a/app/controllers/templates_preferences_controller.rb b/app/controllers/templates_preferences_controller.rb index ca21a52e..30f1c3d6 100644 --- a/app/controllers/templates_preferences_controller.rb +++ b/app/controllers/templates_preferences_controller.rb @@ -9,7 +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.preferences = @template.preferences.reject { |_, v| (v.is_a?(String) || v.is_a?(Hash)) && v.blank? } @template.save! head :ok @@ -23,12 +23,16 @@ class TemplatesPreferencesController < ApplicationController documents_copy_email_subject documents_copy_email_body documents_copy_email_enabled documents_copy_email_attach_audit completed_notification_email_attach_documents + completed_redirect_url completed_notification_email_subject completed_notification_email_body - completed_notification_email_enabled completed_notification_email_attach_audit] + completed_notification_email_enabled completed_notification_email_attach_audit] + + [completed_message: %i[title body]] ).tap do |attrs| attrs[:preferences] = attrs[:preferences].transform_values do |value| if %w[true false].include?(value) value == 'true' + elsif value.respond_to?(:compact_blank) + value.compact_blank else value end diff --git a/app/views/submit_form/_submission_form.html.erb b/app/views/submit_form/_submission_form.html.erb index fc8778d7..5fd0c640 100644 --- a/app/views/submit_form/_submission_form.html.erb +++ b/app/views/submit_form/_submission_form.html.erb @@ -1,4 +1,4 @@ <% data_attachments = attachments_index.values.select { |e| e.record_id == submitter.id }.to_json(only: %i[uuid created_at], methods: %i[url filename content_type]) %> <% data_fields = (submitter.submission.template_fields || submitter.submission.template.fields).select { |f| f['submitter_uuid'] == submitter.uuid }.to_json %> <% invite_submitters = (submitter.submission.template_submitters || submitter.submission.template.submitters).select { |s| s['invite_by_uuid'] == submitter.uuid && submitter.submission.submitters.none? { |e| e.uuid == s['uuid'] } }.to_json %> - + diff --git a/app/views/templates_preferences/show.html.erb b/app/views/templates_preferences/show.html.erb index bb6c1416..a61d3f06 100644 --- a/app/views/templates_preferences/show.html.erb +++ b/app/views/templates_preferences/show.html.erb @@ -41,6 +41,38 @@ <% end %> <%= render 'templates_code_modal/preferences' %> +
+ +
+ Form preferences +
+
+ <%= form_for @template, url: template_preferences_path(@template), method: :post, html: { autocomplete: 'off', class: 'mt-1' }, data: { close_on_submit: false } do |f| %> + + <% configs = AccountConfigs.find_or_initialize_for_key(current_account, AccountConfig::SUBMITTER_COMPLETED_EMAIL_KEY).value %> + <%= f.fields_for :preferences, Struct.new(:completed_redirect_url, :completed_message).new(@template.preferences['completed_redirect_url'].presence, Struct.new(:title, :body).new(*(@template.preferences['completed_message'] || {}).values_at('title', 'body'))) do |ff| %> +
+ <%= ff.label :completed_redirect_url, 'Redirect on completion URL', class: 'label' %> + <%= ff.url_field :completed_redirect_url, required: false, class: 'base-input', dir: 'auto' %> +
+ <%= ff.fields_for :completed_message, ff.object.completed_message do |fff| %> +
+ <%= fff.label :body, 'Completion message', class: 'label' %> + + <%= fff.text_area :body, required: false, class: 'base-input w-full py-2', dir: 'auto' %> + +
+ <% end %> + <% end %> +
+ <%= f.button button_title(title: 'Save', disabled_with: 'Saving'), class: 'base-button' %> +
+ +
+
+ <% end %> +
+