Some work has been done on making the Connection feel nicer, but also more work is needed to not have the channel be exposed to the upper layers of the application. We should wrap all the GRPC calls in the GenServer (which may also allow caching on certain calls such as get_sys_info)
33 lines
1 KiB
Text
33 lines
1 KiB
Text
<.header>
|
|
Your servers
|
|
<small class="block">
|
|
<%= "#{Enum.count(@servers)} servers" %>
|
|
</small>
|
|
<:actions>
|
|
<.link patch={~p"/servers/new"}>
|
|
<.button>Connect a Server</.button>
|
|
</.link>
|
|
</:actions>
|
|
</.header>
|
|
|
|
<div class="space-y-5" phx-update="replace" id="servers">
|
|
<.link
|
|
:for={server <- @servers}
|
|
navigate={~p"/servers/#{server}"}
|
|
class="group block rounded-lg bg-gray-100 p-5 shadow-sm shadow-gray-300 hover:bg-black hover:text-white"
|
|
>
|
|
<div class="flex flex-row flex-wrap justify-between">
|
|
<h2 class="text-xl"><%= server.name %></h2>
|
|
<span class="self-center text-sm">
|
|
<.server_status status={server.status} health={@healths[server.public_ip]} />
|
|
</span>
|
|
</div>
|
|
<div class="lg:text-sm">
|
|
<span>IP: <%= server.public_ip || "N/A" %></span>
|
|
</div>
|
|
</.link>
|
|
</div>
|
|
|
|
<.modal :if={@live_action == :new} id="server-modal" show on_cancel={JS.patch(~p"/servers")}>
|
|
<.live_component module={PrymnWeb.ServerLive.NewServer} id={:new} patch={~p"/servers"} />
|
|
</.modal>
|