SpeciesFileGroup/taxonworks

View on GitHub
app/views/people/_role_picker.html.erb

Summary

Maintainability
Test Coverage
<div class="role_picker" id="<%= role.type.underscore %>_role_picker" data-role-type='<%= role.type -%>' data-base-class='<%= object.metamorphosize.class.name.underscore -%>' data-help="Find people, or create-new ones inline, assigning them to the role of <%= role.type -%>. You can drag drop people to reorder them."  >

  <div>
    <div class="role_picker_header"><%= role.type.titleize  %> <span class='role_picker_alert' hidden></span> </div>
    <span class="role_picker_message"></span>

    <ul class="role_list">
      <% if roles = object.roles.select{|r| r.type == role.type } -%>
        <%= f.fields_for :roles, roles do |role_fields| %>

          <% if role_fields.object.new_record? %>
            <% inc_index = "#{Time.now.to_i}#{role_fields.object.id}" %>

            <%= content_tag(:li, 'data-role-index' => inc_index) do -%>
              <%= role_fields.hidden_field :type -%> 
              <%= role_fields.fields_for :person do |person_fields| %>
                <%= person_fields.hidden_field :first_name-%>
                <%= person_fields.hidden_field :prefix -%>
                <%= person_fields.hidden_field :last_name -%>
                <%= person_fields.hidden_field :suffix -%>
                <%= object_tag(role_fields.object.person) -%> <%= link_to('', "#", class: :remove_role, data: {icon: :trash, turbolinks: :false}) -%>
              <% end %>
            <% end %>

          <% else %>
            <li class="role_item" data-role-id="<%= role_fields.object.id -%>" data-role-index="<%= role_fields.index -%>" >
            <%= role_fields.text_field :id, hidden: true -%>
            <%= object_tag(role_fields.object.person) -%> <%= link_to('', "#", class: :remove_role, data: {turbolinks: :false, icon: :trash}) -%>
            </li>
          <% end %>
        <% end %>
      <% end %>
    </ul>
  </div>

  <div class="role_picker_selection">
    <div><%= text_field_tag "#{role.type.underscore}_autocomplete", nil, class: 'role_picker_autocomplete expandable', placeholder: "Family name, Given name" %></div>

    <div class="person_details"></div> 

    <div class="new_person" hidden >
      <div>
        <span class="name_label"></span>
        <%= link_to "switch", '#', data: { turbolinks: false }, class: :role_picker_switch  %>
        <%= link_to "add new", '#', data: { turbolinks: false }, class: :role_picker_add_new %>
        <%= link_to "expand", '#', data: { turbolinks: false }, class: :role_picker_expand %>
      </div>

      <div class="role_picker_person_form" hidden>
        <%= f.fields_for Person.new do |fp| %>
          <%= render partial: '/people/form_elements2', locals: {role_object_type: object.class.name.underscore, f: fp} %>
        <% end %>
      </div>
    </div>

  </div>
</div>