diff --git a/app/packs/src/decidim/user_registrations.js b/app/packs/src/decidim/user_registrations.js index 41e79f69..456b9466 100644 --- a/app/packs/src/decidim/user_registrations.js +++ b/app/packs/src/decidim/user_registrations.js @@ -12,6 +12,8 @@ $(() => { const $cityLivingArea = $(".city_living_area"); const $metropolisLivingArea = $(".metropolis_living_area"); const $railsValidationAsterisk = $("[for=\"registration_user_living_area\"]").children("span.label-required").clone() + const newsletterSelector = 'input[type="checkbox"][name="user[newsletter]"]'; + const $newsletterModal = $("#sign-up-newsletter-modal"); const $underageSelector = $("#registration_underage_registration"); const $statutoryRepresentativeEmailSelector = $("#statutory_representative_email"); @@ -24,6 +26,13 @@ $(() => { } }; + const checkNewsletter = (check) => { + $userRegistrationForm.find(newsletterSelector).prop("checked", check); + $newsletterModal.data("continue", true); + $newsletterModal.foundation("close"); + $userRegistrationForm.submit(); + } + if ($underageSelector.is(":checked")) { emailSelectorToggle(); } @@ -120,4 +129,18 @@ $(() => { $formStepForwardButton.attr("disabled", (checkMandatoryFormField().length > 0)); }); + + $newsletterModal.find(".check-newsletter").on("click", (event) => { + checkNewsletter($(event.target).data("check")); + }); + + $userRegistrationForm.on("submit", (event) => { + const newsletterChecked = $userRegistrationForm.find(newsletterSelector); + if (!$newsletterModal.data("continue")) { + if (!newsletterChecked.prop("checked")) { + event.preventDefault(); + $newsletterModal.foundation("open"); + } + } + }); });