Migrate from channel to phoenix live view.

Move phoenix config to ui project.
Sync progress on page load.
This commit is contained in:
Pim Kunis 2019-10-23 14:38:11 +02:00
parent e888f1330b
commit ad24ec96ac
26 changed files with 120 additions and 164 deletions

View file

@ -13,6 +13,10 @@ defmodule Morse.Server do
GenServer.cast(__MODULE__, {:progress, progress})
end
def progress do
GenServer.call(__MODULE__, :progress)
end
@impl true
def init(state) do
{:ok, state}
@ -28,13 +32,17 @@ defmodule Morse.Server do
end
end
def handle_call(:progress, _from, {_pid, progress} = state) do
{:reply, progress, state}
end
@impl true
def handle_cast({:progress, new_progress}, {pid, _progress}) do
apply(progress_socket(), :broadcast_progress, [new_progress])
apply(pubsub(), :broadcast, [Ui.PubSub, "morse_progress", new_progress])
{:noreply, {pid, new_progress}}
end
defp progress_socket do
Application.fetch_env!(:morse, :progress_socket)
defp pubsub do
Application.fetch_env!(:morse, :pubsub)
end
end

View file

@ -60,7 +60,7 @@ defmodule Morse.Worker do
|> String.to_charlist()
end
case Mix.Nerves.Utils.mix_target() do
case Application.get_env(:ui, :target) do
:host ->
def toggle_lamp(state) do
:rpc.call(:"esrom@esrom.lan", Morse.Worker, :toggle_lamp, [state])

View file

@ -15,7 +15,7 @@ defmodule Morse.MixProject do
def application do
[
extra_applications: [:logger],
env: [morse_message: "...---...", relay_pin: 17],
env: [morse_message: "... --- ...", relay_pin: 17],
mod: {Morse.Application, []}
]
end