fix: display on-call user names instead of emails on schedule index

Update add_member test to use phx-change select instead of form submit.
This commit is contained in:
Graham McIntire 2026-03-11 13:35:43 -05:00
parent 7a83b13faa
commit 3bba1a6289
No known key found for this signature in database
3 changed files with 14 additions and 7 deletions

View file

@ -39,10 +39,20 @@ defmodule ToweropsWeb.ScheduleLive.Index do
schedules_with_on_call =
Enum.map(schedules, fn schedule ->
on_call = OnCall.who_is_on_call(schedule.id)
Map.put(schedule, :current_on_call, on_call)
schedule
|> Map.put(:current_on_call, on_call)
|> Map.put(:current_on_call_name, display_name(on_call))
end)
assign(socket, :schedules, schedules_with_on_call)
end
end
defp display_name(%{first_name: first, last_name: last}) when first != nil and last != nil do
"#{first} #{last}"
end
defp display_name(%{email: email}), do: email
defp display_name(nil), do: nil
end

View file

@ -152,7 +152,7 @@
<%= if schedule.current_on_call do %>
<span class="inline-flex items-center gap-1.5">
<span class="h-2 w-2 rounded-full bg-green-500"></span>
{schedule.current_on_call.email}
{schedule.current_on_call_name}
</span>
<% else %>
<span class="text-gray-400 dark:text-gray-500">{t("No one")}</span>

View file

@ -245,11 +245,8 @@ defmodule ToweropsWeb.ScheduleLiveTest do
{:ok, view, _html} = live(conn, ~p"/schedules/#{schedule.id}")
view
|> form("form[phx-submit='add_member']", %{
layer_id: layer.id,
user_id: user.id
})
|> render_submit()
|> element("select[phx-change='add_member'][phx-value-layer_id='#{layer.id}']")
|> render_change(%{"user_id" => user.id, "layer_id" => layer.id})
html = render(view)