defmodule ExqUIWeb.BusyLive.Index do @moduledoc false use ExqUIWeb, :live_view alias ExqUI.Queue @impl true def mount(_params, _session, socket) do {:ok, assign(socket, %{nodes: Queue.list_nodes(), jobs: Queue.list_current_jobs()})} end @impl true def handle_event( "signal", %{ "signal" => %{"name" => "TSTP", "node_id" => node_id}, "_target" => ["signal", "quiet"] }, socket ) do :ok = Queue.send_signal(node_id, "TSTP") nodes = Enum.map(socket.assigns.nodes, fn node -> if node.identity == node_id do %{node | quiet: true} else node end end) socket = assign(socket, :nodes, nodes) {:noreply, socket} end @impl true def handle_event("signal", _, socket) do {:noreply, socket} end end