From fd7d0eaf536e8e3642994c87053103f5e1b4e1a9 Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Thu, 26 Sep 2024 12:19:33 +0300 Subject: [PATCH] enforce order toggle --- .../templates_preferences_controller.rb | 1 + app/views/submissions/_submitters_order.html.erb | 4 +++- app/views/templates_preferences/show.html.erb | 16 +++++++++++++--- config/locales/en.yml | 1 + 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/app/controllers/templates_preferences_controller.rb b/app/controllers/templates_preferences_controller.rb index 30f1c3d6..76af325b 100644 --- a/app/controllers/templates_preferences_controller.rb +++ b/app/controllers/templates_preferences_controller.rb @@ -24,6 +24,7 @@ class TemplatesPreferencesController < ApplicationController documents_copy_email_enabled documents_copy_email_attach_audit completed_notification_email_attach_documents completed_redirect_url + submitters_order completed_notification_email_subject completed_notification_email_body completed_notification_email_enabled completed_notification_email_attach_audit] + [completed_message: %i[title body]] diff --git a/app/views/submissions/_submitters_order.html.erb b/app/views/submissions/_submitters_order.html.erb index fb6bdb27..bb0827e9 100644 --- a/app/views/submissions/_submitters_order.html.erb +++ b/app/views/submissions/_submitters_order.html.erb @@ -1,4 +1,6 @@ -<% if template.submitters.size > 1 %> +<% if template.preferences['submitters_order'] == 'preserved' %> + <%= f.hidden_field :preserve_order, value: '1' %> +<% elsif template.submitters.size > 1 %>
<%= f.label :preserve_order, for: uuid = SecureRandom.uuid, class: 'flex items-center cursor-pointer' do %> <%= f.check_box :preserve_order, id: uuid, class: 'base-checkbox', checked: template.submissions.last&.submitters_order.in?(['preserved', nil]) %> diff --git a/app/views/templates_preferences/show.html.erb b/app/views/templates_preferences/show.html.erb index 55fb51fe..6ea5e028 100644 --- a/app/views/templates_preferences/show.html.erb +++ b/app/views/templates_preferences/show.html.erb @@ -256,10 +256,20 @@
<% end %> -
- <%= f.button button_title(title: t('save'), disabled_with: t('updating')), class: 'base-button' %> + <% end %> + <%= form_for @template, url: template_preferences_path(@template), method: :post, html: { autocomplete: 'off', class: 'mt-2' }, data: { close_on_submit: false } do |f| %> +
+ + <%= t('enforce_recipients_order') %> + + <%= f.fields_for :preferences, Struct.new(:submitters_order).new(@template.preferences['submitters_order']) do |ff| %> + <%= ff.check_box :submitters_order, { class: 'toggle', onchange: 'this.form.requestSubmit()' }, 'preserved', '' %> + <% end %>
<% end %> +
+ <%= button_tag button_title(title: t('save'), disabled_with: t('updating')), class: 'base-button', form: :submitters_form %> +
<% end %> <% if show_api %> @@ -285,7 +295,7 @@ <%= render 'templates_code_modal/placeholder' %> <%= render 'templates/embedding', template: @template %> <% if can?(:manage, TemplateSharing.new(template: @template)) %> - <%= form_for '', url: template_sharings_testing_index_path, method: :post, html: { class: 'mt-1' } do |f| %> + <%= form_for '', url: template_sharings_testing_index_path, method: :post, html: { class: 'mt-1' }, data: { close_on_submit: false } do |f| %> <%= f.hidden_field :template_id, value: @template.id %>
diff --git a/config/locales/en.yml b/config/locales/en.yml index d88cd476..2ef4b3af 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -72,6 +72,7 @@ en: &en reason: Reason provide_your_email_to_start: Provide your email to start start: Start + enforce_recipients_order: Enforce recipients order starting: Starting form_has_been_deleted_by_html: 'Form has been deleted by %{name}.' invited_by_html: 'Invited by %{name}'