diff --git a/app/controllers/submissions_controller.rb b/app/controllers/submissions_controller.rb index acb95259..f10cb1f0 100644 --- a/app/controllers/submissions_controller.rb +++ b/app/controllers/submissions_controller.rb @@ -53,14 +53,15 @@ class SubmissionsController < ApplicationController else submissions_attrs = submissions_params[:submission].to_h.values - submissions_attrs, = - Submissions::NormalizeParamUtils.normalize_submissions_params!(submissions_attrs, @template) + submissions_attrs, _, new_fields = + Submissions::NormalizeParamUtils.normalize_submissions_params!(submissions_attrs, @template, add_fields: true) Submissions.create_from_submitters(template: @template, user: current_user, source: :invite, submitters_order: params[:preserve_order] == '1' ? 'preserved' : 'random', submissions_attrs:, + new_fields:, params: params.merge('send_completed_email' => true)) end diff --git a/app/models/account_config.rb b/app/models/account_config.rb index ab8c9049..3964e973 100644 --- a/app/models/account_config.rb +++ b/app/models/account_config.rb @@ -45,6 +45,7 @@ class AccountConfig < ApplicationRecord WITH_SIGNATURE_ID = 'with_signature_id' WITH_FILE_LINKS_KEY = 'with_file_links' WITH_SIGNATURE_ID_REASON_KEY = 'with_signature_id_reason' + RECIPIENT_FORM_FIELDS_KEY = 'recipient_form_fields' WITH_AUDIT_VALUES_KEY = 'with_audit_values' WITH_SUBMITTER_TIMEZONE_KEY = 'with_submitter_timezone' REQUIRE_SIGNING_REASON_KEY = 'require_signing_reason' diff --git a/app/views/submissions/_detailed_form.html.erb b/app/views/submissions/_detailed_form.html.erb index 3131a644..31b969bc 100644 --- a/app/views/submissions/_detailed_form.html.erb +++ b/app/views/submissions/_detailed_form.html.erb @@ -12,7 +12,8 @@
<% submitters.each_with_index do |item, index| %> - <% prefillable_fields = local_assigns[:prefillable_fields].to_a.select { |f| f['submitter_uuid'] == item['uuid'] } %> + <% prefillable_fields = local_assigns[:prefillable_fields].to_a.select { |f| f['submitter_uuid'] == item['uuid'] }.presence %> + <% prefillable_fields ||= local_assigns[:recipient_form_fields].presence %> <% if submitters.size > 1 %>
- <% if params[:selfsign].blank? && local_assigns[:prefillable_fields].blank? %> + <% if params[:selfsign].blank? && local_assigns[:prefillable_fields].blank? && local_assigns[:recipient_form_fields].blank? %> <%= svg_icon('user_plus', class: 'w-4 h-4 stroke-2') %> <%= t('add_new') %> diff --git a/app/views/submissions/new.html.erb b/app/views/submissions/new.html.erb index e70b181f..46088dbb 100644 --- a/app/views/submissions/new.html.erb +++ b/app/views/submissions/new.html.erb @@ -1,7 +1,8 @@ <% require_phone_2fa = @template.preferences['require_phone_2fa'] == true %> <% require_email_2fa = @template.preferences['require_email_2fa'] == true %> <% prefillable_fields = @template.fields.select { |f| f['prefillable'] } %> -<% only_detailed = require_phone_2fa || require_email_2fa || prefillable_fields.present? %> +<% recipient_form_fields = Accounts.load_recipient_form_fields(current_account) if prefillable_fields.blank? %> +<% only_detailed = require_phone_2fa || require_email_2fa || prefillable_fields.present? || recipient_form_fields.present? %> <%= render 'shared/turbo_modal_large', title: params[:selfsign] ? t('add_recipients') : t('add_new_recipients') do %> <% options = [only_detailed ? nil : [t('via_email'), 'email'], only_detailed ? nil : [t('via_phone'), 'phone'], [t('detailed'), 'detailed'], [t('upload_list'), 'list']].compact %> @@ -26,7 +27,7 @@ <% end %>
- <%= render 'detailed_form', template: @template, require_phone_2fa:, require_email_2fa:, prefillable_fields: %> + <%= render 'detailed_form', template: @template, require_phone_2fa:, require_email_2fa:, prefillable_fields:, recipient_form_fields: %>