patch
This commit is contained in:
@ -14,12 +14,15 @@ defmodule WebmonWeb.WebsiteLive.Index do
|
|||||||
for website <- websites, do: monitor_website(website)
|
for website <- websites, do: monitor_website(website)
|
||||||
end
|
end
|
||||||
|
|
||||||
{:ok, stream(socket, :websites, websites)}
|
{:ok,
|
||||||
|
socket
|
||||||
|
|> assign(:deleted, [])
|
||||||
|
|> stream(:websites, websites)}
|
||||||
end
|
end
|
||||||
|
|
||||||
def monitor_website(website) do
|
def monitor_website(website) do
|
||||||
me = self()
|
me = self()
|
||||||
Engine.start_link(website, on_update: fn website -> send me, {:update, website} end)
|
Engine.start_link(website, on_update: fn website -> send(me, {:update, website}) end)
|
||||||
end
|
end
|
||||||
|
|
||||||
@impl true
|
@impl true
|
||||||
@ -45,6 +48,15 @@ defmodule WebmonWeb.WebsiteLive.Index do
|
|||||||
|> assign(:website, nil)
|
|> assign(:website, nil)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@impl true
|
||||||
|
def handle_info({:update, website}, %{deleted: deleted_website} = socket) do
|
||||||
|
{:noreply,
|
||||||
|
unless(website.id in deleted_website,
|
||||||
|
do: stream_insert(socket, :websites, website),
|
||||||
|
else: socket
|
||||||
|
)}
|
||||||
|
end
|
||||||
|
|
||||||
@impl true
|
@impl true
|
||||||
def handle_info({:update, website}, socket) do
|
def handle_info({:update, website}, socket) do
|
||||||
{:noreply, stream_insert(socket, :websites, website)}
|
{:noreply, stream_insert(socket, :websites, website)}
|
||||||
@ -71,9 +83,11 @@ defmodule WebmonWeb.WebsiteLive.Index do
|
|||||||
end
|
end
|
||||||
|
|
||||||
def website_status(%{website: %{status: {:ok, code, ping}}} = assigns) do
|
def website_status(%{website: %{status: {:ok, code, ping}}} = assigns) do
|
||||||
assigns = assigns
|
assigns =
|
||||||
|
assigns
|
||||||
|> assign(:ping, ping)
|
|> assign(:ping, ping)
|
||||||
|> assign(:code, code)
|
|> assign(:code, code)
|
||||||
|
|
||||||
~H"""
|
~H"""
|
||||||
<span class=""><%= @ping %></span>
|
<span class=""><%= @ping %></span>
|
||||||
"""
|
"""
|
||||||
@ -84,5 +98,4 @@ defmodule WebmonWeb.WebsiteLive.Index do
|
|||||||
<span class="text-red">—</span>
|
<span class="text-red">—</span>
|
||||||
"""
|
"""
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
Reference in New Issue
Block a user