Files
docuseal/app/views/submissions/_send_email.html.erb
T

116 lines
7.5 KiB
Plaintext
Raw Normal View History

2025-06-05 14:32:51 +03:00
<% submitter_preferences_index = template&.preferences&.dig('submitters').to_a.index_by { |e| e['uuid'] } %>
2025-06-09 11:46:04 +03:00
<% template_submitters = local_assigns[:submitter]&.submission&.template_submitters || template.submitters %>
2023-09-03 14:05:31 +03:00
<div class="form-control">
2024-04-07 17:12:46 +03:00
<% can_send_emails = Accounts.can_send_emails?(current_account) %>
<div class="flex justify-between items-center">
2023-09-17 20:38:09 +03:00
<%= f.label :send_email, for: uuid = SecureRandom.uuid, class: 'flex items-center cursor-pointer' do %>
2025-07-27 10:27:12 +03:00
<%= f.check_box :send_email, id: uuid, class: 'base-checkbox', disabled: !can_send_emails || local_assigns[:disable_email], checked: can_send_emails && !local_assigns.key?(:resend_email) && !local_assigns[:disable_email] && template&.preferences&.dig('request_email_enabled') != false %>
2024-10-08 13:25:55 +03:00
<span class="label"><%= local_assigns[:resend_email] ? t('re_send_email') : t('send_email') %></span>
2023-09-17 20:38:09 +03:00
<% end %>
<div>
2024-04-07 17:12:46 +03:00
<% if can_send_emails %>
2024-10-08 13:25:55 +03:00
<%= render 'submissions/email_stats' %>
2024-09-21 12:38:50 +03:00
<%= content_for(:edit_button) || capture do %>
2025-09-24 12:07:54 +03:00
<toggle-visible data-element-ids="<%= %w[message_field].to_json %>" class="flex">
<label>
<%= f.check_box :is_custom_message, checked: false, class: 'hidden peer', data: { action: 'change:toggle-visible#trigger', type: 'checkbox' } %>
<span class="link peer-checked:hidden"><%= t('edit_message') %></span>
</label>
</toggle-visible>
2024-09-21 12:38:50 +03:00
<% end %>
2024-04-07 17:12:46 +03:00
<% end %>
</div>
2023-09-17 20:38:09 +03:00
</div>
2024-04-07 17:12:46 +03:00
<% if !Docuseal.multitenant? && !can_send_emails %>
2023-09-03 14:05:31 +03:00
<div class="alert my-4">
<%= svg_icon('info_circle', class: 'w-6 h-6') %>
<div>
2024-09-18 19:47:47 +03:00
<p class="font-bold"><%= t('smtp_not_configured') %></p>
2023-09-03 14:05:31 +03:00
<p class="text-gray-700">
2024-09-18 19:47:47 +03:00
<%= t('configure_smtp_settings_in_order_to_send_emails_') %>
2023-09-03 14:05:31 +03:00
<br>
2024-09-18 19:47:47 +03:00
<a class="link font-medium" data-turbo-frame="_top" href="<%= settings_email_index_path %>">
2024-11-16 18:19:25 +02:00
<%= t('go_to_smtp_settings') %>
2024-09-18 19:47:47 +03:00
</a>
2023-09-03 14:05:31 +03:00
</p>
</div>
</div>
<% end %>
</div>
<% config = AccountConfigs.find_or_initialize_for_key(current_account, AccountConfig::SUBMITTER_INVITATION_EMAIL_KEY) %>
2024-09-13 20:20:30 +03:00
<div id="message_field" class="card card-compact bg-base-300/40 hidden">
<div class="card-body">
2025-06-05 14:32:51 +03:00
<%= tag.input id: toggle_uuid = SecureRandom.uuid, value: '1', name: 'request_email_per_submitter', class: 'peer', type: 'checkbox', hidden: true, checked: local_assigns[:message_per_submitter] != false && template&.preferences&.dig('submitters').to_a.size > 1 %>
2025-02-09 00:45:16 +02:00
<div class="peer-checked:hidden form-control space-y-2">
<div class="form-control">
2025-02-09 00:45:16 +02:00
<div class="flex justify-between">
<%= f.label :subject, t('subject'), class: 'label' %>
2025-06-09 11:46:04 +03:00
<% if template_submitters.size > 1 && template_submitters.size < 5 && local_assigns[:message_per_submitter] != false %>
2025-02-14 17:43:28 +02:00
<label for="<%= toggle_uuid %>" class="label underline">
2025-02-09 00:45:16 +02:00
<%= t('edit_per_party') %>
</label>
<% end %>
</div>
2025-06-05 14:32:51 +03:00
<%= f.text_field :subject, value: local_assigns[:submitter_email_message]&.subject.presence || submitter_preferences_index.dig(local_assigns[:submitter]&.uuid, 'request_email_subject').presence || template&.preferences&.dig('request_email_subject').presence || config.value['subject'], required: true, class: '!text-sm base-input w-full', dir: 'auto' %>
</div>
<div class="form-control">
2024-01-07 00:58:43 +02:00
<div class="flex items-center">
2024-09-18 19:47:47 +03:00
<%= f.label :message, t('body'), class: 'label' %>
2024-09-21 12:10:08 +03:00
<span class="tooltip tooltip-right" data-tip="<%= t('use_following_placeholders_text_') %> <%= AccountConfig::DEFAULT_VALUES[AccountConfig::SUBMITTER_INVITATION_EMAIL_KEY].call['body'].scan(/{.*?}/).join(', ') %>">
2024-01-07 00:58:43 +02:00
<%= svg_icon('info_circle', class: 'w-4 h-4') %>
</span>
</div>
<autoresize-textarea>
2025-06-05 14:32:51 +03:00
<%= f.text_area :body, value: local_assigns[:submitter_email_message]&.body.presence || submitter_preferences_index.dig(local_assigns[:submitter]&.uuid, 'request_email_body').presence || template&.preferences&.dig('request_email_body').presence || config.value['body'], required: true, class: 'base-textarea w-full', rows: 10, dir: 'auto' %>
</autoresize-textarea>
2024-10-08 13:25:55 +03:00
<% unless local_assigns.fetch(:disable_save_as_default_template_option, false) %>
<label for="<%= uuid = SecureRandom.uuid %>" class="flex items-center cursor-pointer">
<%= check_box_tag :save_message, id: uuid, class: 'base-checkbox', checked: false %>
<span class="label"><%= t('save_as_default_template_message') %></span>
</label>
<% end %>
</div>
2024-10-08 13:25:55 +03:00
<%= render 'submissions/message_fields' %>
</div>
2025-06-09 11:46:04 +03:00
<% if template_submitters.size > 1 && template_submitters.size < 5 && local_assigns[:message_per_submitter] != false %>
2025-02-09 00:45:16 +02:00
<div class="hidden peer-checked:block form-control space-y-2">
2025-02-14 17:43:28 +02:00
<% uuid = SecureRandom.uuid %>
2025-06-09 11:46:04 +03:00
<% options = template_submitters.map { |e| [e['name'], "request_email_#{uuid}_#{e['uuid']}"] } %>
2025-02-09 00:45:16 +02:00
<toggle-visible data-element-ids="<%= options.map(&:last).to_json %>" class="flex relative px-1">
<ul class="tabs w-full flex flex-nowrap">
<% options.each_with_index do |(label, val), index| %>
<div class="w-full">
<%= f.radio_button :selected, val, checked: index.zero?, id: "#{val}_radio", data: { action: 'click:toggle-visible#trigger' }, class: 'hidden peer' %>
<%= f.label :selected, label, value: val, for: "#{val}_radio", class: 'tab w-full tab-lifted peer-checked:tab-active !bg-transparent' %>
</div>
<% end %>
</ul>
</toggle-visible>
2025-06-09 11:46:04 +03:00
<% template_submitters.each_with_index do |submitter, index| %>
2025-02-09 00:45:16 +02:00
<%= fields_for :submitter_preferences, nil, index: submitter['uuid'] do |ff| %>
2025-02-14 17:43:28 +02:00
<div id="request_email_<%= uuid %>_<%= submitter['uuid'] %>" class="<%= 'hidden' if index != 0 %>">
2025-02-09 00:45:16 +02:00
<div class="form-control">
<div class="flex justify-between">
<%= ff.label :subject, t('subject'), class: 'label' %>
</div>
2025-06-05 14:32:51 +03:00
<%= ff.text_field :subject, value: local_assigns[:submitter_email_message]&.subject.presence || submitter_preferences_index.dig(submitter['uuid'], 'request_email_subject').presence || template&.preferences&.dig('request_email_subject').presence || config.value['subject'], required: true, class: '!text-sm base-input w-full', dir: 'auto' %>
2025-02-09 00:45:16 +02:00
</div>
<div class="form-control">
<div class="flex items-center">
<%= ff.label :message, t('body'), class: 'label' %>
<span class="tooltip tooltip-right" data-tip="<%= t('use_following_placeholders_text_') %> <%= AccountConfig::DEFAULT_VALUES[AccountConfig::SUBMITTER_INVITATION_EMAIL_KEY].call['body'].scan(/{.*?}/).join(', ') %>">
<%= svg_icon('info_circle', class: 'w-4 h-4') %>
</span>
</div>
<autoresize-textarea>
2025-06-05 14:32:51 +03:00
<%= ff.text_area :body, value: local_assigns[:submitter_email_message]&.body.presence || submitter_preferences_index.dig(submitter['uuid'], 'request_email_body').presence || template&.preferences&.dig('request_email_body').presence || config.value['body'], required: true, class: 'base-textarea w-full', rows: 10, dir: 'auto' %>
2025-02-09 00:45:16 +02:00
</autoresize-textarea>
</div>
</div>
<% end %>
<% end %>
</div>
<% end %>
</div>
</div>