diff --git a/app/assets/javascripts/update_required_status.js b/app/assets/javascripts/update_required_status.js new file mode 100644 index 0000000..a624317 --- /dev/null +++ b/app/assets/javascripts/update_required_status.js @@ -0,0 +1,13 @@ +$(document).on("turbolinks:load", function() { + $("[data-behavior=update-required-status]").click(function(e) { + const required = !!($(this)[0] && $(this)[0].checked); + + + $("[data-required-tag=guardian]").each(function(index, element) { + const labelForField = element.previousSibling; + + element.required = required; + labelForField.classList.add("required"); + }); + }); +}); \ No newline at end of file diff --git a/app/views/public/appearance_releases/new.html.erb b/app/views/public/appearance_releases/new.html.erb index c88d7d6..fc80010 100644 --- a/app/views/public/appearance_releases/new.html.erb +++ b/app/views/public/appearance_releases/new.html.erb @@ -16,7 +16,7 @@ <% unless @contract_template.guardian_clause.blank? %> <%= form.form_group :minor do %> - <%= form.check_box :minor, label: t("helpers.label.appearance_release.minor"), data: { target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %> + <%= form.check_box :minor, label: t("helpers.label.appearance_release.minor"), data: { behavior: "update-required-status", target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %> <% end %> <%= card_field_set_tag t(".guardian_clause.heading") do %> @@ -72,12 +72,12 @@
!@appearance_release.minor?) %>" data-ujs-target="guardian-fields"> <%= card_field_set_tag t(".guardian_info.heading") do %>
- <%= form.text_field :guardian_first_name, required: @appearance_release.minor?, wrapper_class: "col-sm-3" %> - <%= form.text_field :guardian_last_name, required: @appearance_release.minor?, wrapper_class: "col-sm-3" %> - <%= form.phone_field :guardian_phone, required: @appearance_release.minor?, wrapper_class: "col-sm-6" %> - <%= form.text_field :guardian_email, required: @appearance_release.minor?, wrapper_class: "col-sm-6" %> + <%= form.text_field :guardian_first_name, required: @appearance_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %> + <%= form.text_field :guardian_last_name, required: @appearance_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %> + <%= form.phone_field :guardian_phone, required: @appearance_release.minor?, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %> + <%= form.text_field :guardian_email, required: @appearance_release.minor?, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
- <%= render "shared/address_fields", form: form, subject: "guardian", required: @appearance_release.minor? %> + <%= render "shared/address_fields", form: form, subject: "guardian", required: @appearance_release.minor?, data: { required_tag: "guardian" } %> <% end %>
diff --git a/app/views/public/medical_releases/new.html.erb b/app/views/public/medical_releases/new.html.erb index 7f4dd2f..0f73c32 100644 --- a/app/views/public/medical_releases/new.html.erb +++ b/app/views/public/medical_releases/new.html.erb @@ -16,7 +16,7 @@ <% unless @contract_template.guardian_clause.blank? %> <%= form.form_group :minor do %> - <%= form.check_box :minor, label: t("helpers.label.medical_release.minor"), data: { target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %> + <%= form.check_box :minor, label: t("helpers.label.medical_release.minor"), data: { behavior: "update-required-status", target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %> <% end %> <%= card_field_set_tag t(".guardian_clause.heading") do %> @@ -59,14 +59,12 @@
!@medical_release.minor?) %>" data-ujs-target="guardian-fields"> <%= card_field_set_tag t(".guardian_info.heading") do %>
- <%= form.text_field :guardian_first_name, required: @medical_release.minor?, wrapper_class: "col-sm-3" %> - <%= form.text_field :guardian_last_name, required: @medical_release.minor?, wrapper_class: "col-sm-3" %> - <%= form.phone_field :guardian_phone, required: @medical_release.minor?, wrapper_class: "col-sm-6" %> + <%= form.text_field :guardian_first_name, required: @medical_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %> + <%= form.text_field :guardian_last_name, required: @medical_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %> + <%= form.phone_field :guardian_phone, required: @medical_release.minor?, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %> + <%= form.text_field :guardian_email, required: @medical_release.minor?, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
-
- <%= form.text_field :guardian_email, required: @medical_release.minor?, wrapper_class: "col-sm-6" %> -
- <%= render "shared/address_fields", form: form, subject: "guardian", required: @medical_release.minor? %> + <%= render "shared/address_fields", form: form, subject: "guardian", required: @medical_release.minor?, data: { required_tag: "guardian" } %> <% end %>
diff --git a/app/views/public/misc_releases/new.html.erb b/app/views/public/misc_releases/new.html.erb index 804068d..a2e8c50 100644 --- a/app/views/public/misc_releases/new.html.erb +++ b/app/views/public/misc_releases/new.html.erb @@ -11,7 +11,7 @@ <% unless @contract_template.guardian_clause.blank? %> <%= form.form_group :minor do %> - <%= form.check_box :minor, label: t("helpers.label.appearance_release.minor"), data: { target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %> + <%= form.check_box :minor, label: t("helpers.label.appearance_release.minor"), data: { behavior: "update-required-status", target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %> <% end %> <%= card_field_set_tag t(".guardian_clause.heading") do %> @@ -56,14 +56,12 @@
!@misc_release.minor?) %>" data-ujs-target="guardian-fields"> <%= card_field_set_tag t(".guardian_info.heading") do %>
- <%= form.text_field :guardian_first_name, required: @misc_release.minor?, wrapper_class: "col-sm-3" %> - <%= form.text_field :guardian_last_name, required: @misc_release.minor?, wrapper_class: "col-sm-3" %> - <%= form.phone_field :guardian_phone, wrapper_class: "col-sm-6" %> + <%= form.text_field :guardian_first_name, required: @misc_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %> + <%= form.text_field :guardian_last_name, required: @misc_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %> + <%= form.phone_field :guardian_phone, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %> + <%= form.text_field :guardian_email, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
-
- <%= form.text_field :guardian_email, wrapper_class: "col-sm-6" %> -
- <%= render "shared/address_fields", form: form, subject: "guardian" %> + <%= render "shared/address_fields", form: form, subject: "guardian", data: { required_tag: "guardian" } %> <% end %>
diff --git a/app/views/public/talent_releases/new.html.erb b/app/views/public/talent_releases/new.html.erb index 01f4e72..6af7df2 100644 --- a/app/views/public/talent_releases/new.html.erb +++ b/app/views/public/talent_releases/new.html.erb @@ -16,7 +16,7 @@ <% unless @contract_template.guardian_clause.blank? %> <%= form.form_group :minor do %> - <%= form.check_box :minor, label: t("helpers.label.appearance_release.minor"), data: { target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %> + <%= form.check_box :minor, label: t("helpers.label.appearance_release.minor"), data: { behavior: "update-required-status", target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %> <% end %> <%= card_field_set_tag t(".guardian_clause.heading") do %> @@ -46,12 +46,12 @@
!@talent_release.minor?) %>" data-ujs-target="guardian-fields"> <%= card_field_set_tag t(".guardian_info.heading") do %>
- <%= form.text_field :guardian_first_name, required: @talent_release.minor?, wrapper_class: "col-sm-3" %> - <%= form.text_field :guardian_last_name, required: @talent_release.minor?, wrapper_class: "col-sm-3" %> - <%= form.phone_field :guardian_phone, wrapper_class: "col-sm-6" %> - <%= form.text_field :guardian_email, wrapper_class: "col-sm-6" %> + <%= form.text_field :guardian_first_name, required: @talent_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %> + <%= form.text_field :guardian_last_name, required: @talent_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %> + <%= form.phone_field :guardian_phone, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %> + <%= form.text_field :guardian_email, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
- <%= render "shared/address_fields", form: form, subject: "guardian" %> + <%= render "shared/address_fields", form: form, subject: "guardian", data: { required_tag: "guardian" } %> <% end %>
diff --git a/app/views/shared/_address_fields.html.erb b/app/views/shared/_address_fields.html.erb index 51cda48..8d175bb 100644 --- a/app/views/shared/_address_fields.html.erb +++ b/app/views/shared/_address_fields.html.erb @@ -1,14 +1,15 @@ <% field_name_prefix = subject.present? ? "#{subject}_" : "" %> <% required = required || false %> +<% data = data || nil %>
- <%= form.text_field "#{field_name_prefix}address_street1", required: required, wrapper_class: "col-sm-6" %> + <%= form.text_field "#{field_name_prefix}address_street1", required: required, wrapper_class: "col-sm-6", data: data %> <%= form.text_field "#{field_name_prefix}address_street2", wrapper_class: "col-sm-6" %>
- <%= form.text_field "#{field_name_prefix}address_city", required: required, wrapper_class: "col-sm-6" %> - <%= form.text_field "#{field_name_prefix}address_state", required: required, wrapper_class: "col-sm-3" %> - <%= form.text_field "#{field_name_prefix}address_zip", required: required, wrapper_class: "col-sm-3" %> + <%= form.text_field "#{field_name_prefix}address_city", required: required, wrapper_class: "col-sm-6", data: data %> + <%= form.text_field "#{field_name_prefix}address_state", required: required, wrapper_class: "col-sm-3", data: data %> + <%= form.text_field "#{field_name_prefix}address_zip", required: required, wrapper_class: "col-sm-3", data: data %>
<%= form.form_group "#{field_name_prefix}address_country" do %> <%= form.label "#{field_name_prefix}address_country" %>