id="<%= dom_id(f.object) %>"<% end %>
+ data-inactive-toggle-target="row">
+
+ <% if f.object.persisted? && f.object.person.present? %>
+ Person
+ <% show_email = f.object.person.profile_show_email? || allowed_to?(:manage?, Person) %>
+ <%= person_profile_button(f.object.person, truncate_at: 30, subtitle: (f.object.person.preferred_email if show_email)) %>
+ <%= f.hidden_field :person_id %>
+ <% else %>
+ <%= f.input :person_id,
+ include_blank: true,
+ required: true,
+ input_html: {
+ data: {
+ controller: "remote-select",
+ remote_select_model_value: "person"
+ }
+ },
+ label: "Person"
+ %>
+ <% end %>
+
-
- <%= f.input :title,
- as: :text,
- input_html: {
- rows: 1,
- value: f.object&.title || f.object&.position || "Facilitator",
- style: "height: 42px; min-height: 42px;",
- data: { action: "input->affiliation-dates#recalculate" }
- } %>
-
+
+ <%= f.input :title,
+ as: :text,
+ input_html: {
+ rows: 1,
+ value: f.object&.title || f.object&.position || "Facilitator",
+ style: "height: 42px; min-height: 42px;",
+ data: {
+ inactive_toggle_target: "title",
+ action: "affiliation-dates#recalculate inactive-toggle#updateBorder"
+ }
+ } %>
+
-
- <%= f.input :start_date,
- as: :string,
- label: "Start",
- input_html: {
- type: "date",
- value: (f.object.start_date || (Date.current unless f.object.persisted?))&.strftime("%Y-%m-%d"),
- class: "rounded-md border-gray-300 focus:ring-blue-500 focus:border-blue-500 text-sm",
- data: { action: "change->affiliation-dates#recalculate" }
- } %>
-
+
+ <%= f.input :start_date,
+ as: :string,
+ label: "Start",
+ input_html: {
+ type: "date",
+ value: (f.object.start_date || (Date.current unless f.object.persisted?))&.strftime("%Y-%m-%d"),
+ class: "rounded-md border-gray-300 focus:ring-blue-500 focus:border-blue-500 text-sm",
+ data: { action: "change->affiliation-dates#recalculate" }
+ } %>
+
-
- <%= f.input :end_date,
- as: :string,
- label: "End",
- input_html: {
- type: "date",
- value: f.object.end_date&.strftime("%Y-%m-%d"),
- class: "rounded-md border-gray-300 focus:ring-blue-500 focus:border-blue-500 text-sm",
- data: { action: "change->inactive-toggle#toggle change->affiliation-dates#recalculate" }
- } %>
-
+
+ <%= f.input :end_date,
+ as: :string,
+ label: "End",
+ input_html: {
+ type: "date",
+ value: f.object.end_date&.strftime("%Y-%m-%d"),
+ class: "rounded-md border-gray-300 focus:ring-blue-500 focus:border-blue-500 text-sm",
+ data: {
+ inactive_toggle_target: "endDate",
+ action: "change->inactive-toggle#toggle change->affiliation-dates#recalculate"
+ }
+ } %>
+
-
- Primary
- <%= f.check_box :primary_contact,
- checked: f.object.primary_contact? || !f.object.persisted?,
- class: "h-4 w-4 text-blue-600 border-gray-300 rounded focus:ring-blue-500" %>
-
+
+ Primary contact
+ <%= f.check_box :primary_contact,
+ checked: f.object.primary_contact? || !f.object.persisted?,
+ class: "h-4 w-4 text-blue-600 border-gray-300 rounded focus:ring-blue-500" %>
+
-
- <%= link_to_remove_association "Remove",
- f,
- class: "text-sm text-gray-400 hover:text-red-600 underline whitespace-nowrap admin-only bg-blue-100 rounded px-2 py-1" %>
+
+ <%= link_to_remove_association "Remove",
+ f,
+ class: "text-sm text-gray-400 hover:text-red-600 underline whitespace-nowrap admin-only bg-blue-100 rounded px-2 py-1" %>
+
<% else %>
diff --git a/app/views/people/_affiliation_fields.html.erb b/app/views/people/_affiliation_fields.html.erb
index 545b5abb3..085745fdc 100644
--- a/app/views/people/_affiliation_fields.html.erb
+++ b/app/views/people/_affiliation_fields.html.erb
@@ -1,78 +1,86 @@
<% if allowed_to?(:manage?, Person) %>
<% expired = f.object.inactive? || (f.object.end_date.present? && f.object.end_date < Date.current) %>
-