app/views/people/_role_picker.html.erb
<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>