mirror of https://github.com/docusealco/docuseal
				
				
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							60 lines
						
					
					
						
							4.2 KiB
						
					
					
				
			
		
		
	
	
							60 lines
						
					
					
						
							4.2 KiB
						
					
					
				| <%= form_for '', url: template_submissions_path(template), html: { class: 'space-y-4', autocomplete: 'off' }, data: { turbo_frame: :_top } do |f| %>
 | |
|   <% submitters = template.submitters.reject { |e| e['invite_by_uuid'].present? || e['optional_invite_by_uuid'].present? } %>
 | |
|   <dynamic-list class="space-y-4">
 | |
|     <div class="space-y-4">
 | |
|       <div class="card card-compact bg-base-300/40" data-targets="dynamic-list.items">
 | |
|         <div class="card-body">
 | |
|           <div class="absolute right-4 top-5">
 | |
|             <a href="#" data-action="click:dynamic-list#removeItem" class="<%= submitters.size == 1 ? 'right-2 top-1' : '-top-3' %> relative block w-6 h-6 rounded-lg text-neutral-700 text-center bg-base-300 p-1 hidden hover:bg-neutral hover:text-white">
 | |
|               <%= svg_icon('trash', class: 'w-4 h-4') %>
 | |
|             </a>
 | |
|           </div>
 | |
|           <div class="grid <%= 'md:grid-cols-2' if submitters.size > 1 %> gap-4">
 | |
|             <% submitters.each_with_index do |item, index| %>
 | |
|               <submitter-item class="form-control">
 | |
|                 <% if submitters.size > 1 %>
 | |
|                   <label class="label pt-0 pb-1">
 | |
|                     <span class="label-text"> <%= item['name'] %></span>
 | |
|                   </label>
 | |
|                 <% end %>
 | |
|                 <input type="hidden" name="submission[1][submitters][][uuid]" value="<%= item['uuid'] %>">
 | |
|                 <submitters-autocomplete data-field="name">
 | |
|                   <linked-input data-target-id="<%= "detailed_name_#{item['linked_to_uuid']}" if item['linked_to_uuid'].present? %>">
 | |
|                     <%= tag.input type: 'text', name: 'submission[1][submitters][][name]', autocomplete: 'off', class: 'base-input !h-10 w-full', placeholder: t('name'), required: index.zero?, value: item['email'].present? ? current_account.submitters.accessible_by(current_ability).where.not(name: nil).order(id: :desc).find_by(email: item['email'])&.name : ((params[:selfsign] && index.zero?) || item['is_requester'] ? current_user.full_name : ''), dir: 'auto', id: "detailed_name_#{item['uuid']}" %>
 | |
|                   </linked-input>
 | |
|                 </submitters-autocomplete>
 | |
|                 <div class="grid <%= 'md:grid-cols-2 gap-1' if submitters.size == 1 %>">
 | |
|                   <submitters-autocomplete data-field="email">
 | |
|                     <linked-input data-target-id="<%= "detailed_email_#{item['linked_to_uuid']}" if item['linked_to_uuid'].present? %>">
 | |
|                       <input type="email" multiple name="submission[1][submitters][][email]" autocomplete="off" class="base-input !h-10 mt-1.5 w-full" placeholder="<%= "#{t('email')} (#{t('optional')})" %>" value="<%= item['email'].presence || ((params[:selfsign] && index.zero?) || item['is_requester'] ? current_user.email : '') %>" id="detailed_email_<%= item['uuid'] %>">
 | |
|                     </linked-input>
 | |
|                   </submitters-autocomplete>
 | |
|                   <submitters-autocomplete data-field="phone">
 | |
|                     <linked-input data-target-id="<%= "detailed_phone_#{item['linked_to_uuid']}" if item['linked_to_uuid'].present? %>">
 | |
|                       <input type="tel" pattern="^\+[0-9\s\-]+$" oninvalid="this.value ? this.setCustomValidity('<%= t('use_international_format_1xxx_') %>') : ''" oninput="this.setCustomValidity('')" name="submission[1][submitters][][phone]" autocomplete="off" class="base-input !h-10 mt-1.5 w-full" placeholder="<%= "#{t('phone')} (#{t('optional')})" %>" id="detailed_phone_<%= item['uuid'] %>">
 | |
|                     </linked-input>
 | |
|                   </submitters-autocomplete>
 | |
|                 </div>
 | |
|               </submitter-item>
 | |
|             <% end %>
 | |
|           </div>
 | |
|         </div>
 | |
|       </div>
 | |
|     </div>
 | |
|     <% if params[:selfsign].blank? %>
 | |
|       <a href="#" class="btn btn-primary btn-sm w-full flex items-center justify-center" data-action="click:dynamic-list#addItem">
 | |
|         <%= svg_icon('user_plus', class: 'w-4 h-4 stroke-2') %>
 | |
|         <span><%= t('add_new') %></span>
 | |
|       </a>
 | |
|     <% end %>
 | |
|   </dynamic-list>
 | |
|   <div>
 | |
|     <%= render('submitters_order', f:, template:) if Accounts.can_send_emails?(current_account) %>
 | |
|     <%= render 'send_email', f:, template: %>
 | |
|     <%= render 'send_sms', f: %>
 | |
|   </div>
 | |
|   <div class="form-control">
 | |
|     <%= f.button button_title(title: t('add_recipients')), class: 'base-button' %>
 | |
|   </div>
 | |
| <% end %>
 |