diff --git a/apps/alert_processor/lib/model/user.ex b/apps/alert_processor/lib/model/user.ex index c87d6a480..5e4f69976 100644 --- a/apps/alert_processor/lib/model/user.ex +++ b/apps/alert_processor/lib/model/user.ex @@ -134,7 +134,11 @@ defmodule AlertProcessor.Model.User do %{"communication_mode" => "sms", "email" => _email} = params ) do struct - |> changeset(params, [:phone_number, :email]) + |> changeset(params, [:email]) + # Validate phone number as required separately for the custom error message. + |> validate_required([:phone_number], + message: "Please click the link above to add your phone number to your account." + ) |> update_change(:phone_number, &clean_phone_number/1) |> validate_phone_number() |> validate_accept_tnc(params) @@ -148,7 +152,11 @@ defmodule AlertProcessor.Model.User do %{"communication_mode" => "sms"} = params ) do struct - |> changeset(params, [:phone_number]) + |> changeset(params) + # Validate phone number as required separately for the custom error message. + |> validate_required([:phone_number], + message: "Please click the link above to add your phone number to your account." + ) |> update_change(:phone_number, &clean_phone_number/1) |> validate_phone_number() |> validate_accept_tnc(params) diff --git a/apps/concierge_site/lib/templates/account/edit_keycloak.html.eex b/apps/concierge_site/lib/templates/account/edit_keycloak.html.eex index 1e9322e18..185c26340 100644 --- a/apps/concierge_site/lib/templates/account/edit_keycloak.html.eex +++ b/apps/concierge_site/lib/templates/account/edit_keycloak.html.eex @@ -32,7 +32,7 @@
" data-phone="input"> - <%= if phone_number(@current_user) do %> + <%= if phone_number?(@current_user) do %> <%= label form, :phone_number, "My phone number is:", class: "form__label d-block" %>
<%= @current_user |> phone_number() |> format_phone_number() %>
<%= link to: update_profile_url(@conn) do %>Change phone number<% end %>
@@ -53,6 +53,7 @@ <% else %>

Please enter your number in order to recieve text messages.

<%= link to: update_profile_url(@conn) do %>Add phone number<% end %>
+ <%= error_tag form, :phone_number %> <% end %>
diff --git a/apps/concierge_site/lib/templates/account/options_new.html.eex b/apps/concierge_site/lib/templates/account/options_new.html.eex index 868108107..332a51624 100644 --- a/apps/concierge_site/lib/templates/account/options_new.html.eex +++ b/apps/concierge_site/lib/templates/account/options_new.html.eex @@ -32,12 +32,13 @@
" data-phone="input"> <%= if keycloak_auth?() do %> - <%= if phone_number(@current_user) do %> + <%= if phone_number?(@current_user) do %> <%= label form, :phone_number, "My phone number is:", class: "form__label d-block" %>
<%= @current_user |> phone_number() |> format_phone_number() %>
<% else %> -

Please enter your number in order to recieve text messages.

+

Please enter your number in order to recieve text messages.

<%= link to: update_profile_url(@conn) do %>Add phone number<% end %>
+ <%= error_tag form, :phone_number %> <% end %> <% else %> <%= label form, :phone_number, "What’s your mobile phone number?", class: "form__label d-block" %> diff --git a/apps/concierge_site/lib/views/account_view.ex b/apps/concierge_site/lib/views/account_view.ex index 93abb398d..1cf6ad043 100644 --- a/apps/concierge_site/lib/views/account_view.ex +++ b/apps/concierge_site/lib/views/account_view.ex @@ -10,6 +10,11 @@ defmodule ConciergeSite.AccountView do defdelegate email(user), to: User defdelegate phone_number(user), to: User + def phone_number?(user) do + phone_number = User.phone_number(user) + is_binary(phone_number) and phone_number != "" + end + def fetch_field!(changeset, field) do {_, value} = Changeset.fetch_field(changeset, field) value