More configurator tweaks
This commit is contained in:
parent
9b349daa35
commit
dea2ada125
|
@ -17,6 +17,7 @@ defmodule Farmbot.Bootstrap.Authorization do
|
|||
|
||||
@version Farmbot.Project.version()
|
||||
@target Farmbot.Project.target()
|
||||
@data_path Application.get_env(:farmbot, :data_path)
|
||||
|
||||
@doc """
|
||||
Callback for an authorization implementation.
|
||||
|
@ -56,6 +57,8 @@ defmodule Farmbot.Bootstrap.Authorization do
|
|||
{:ok, body} <- Poison.decode(resp),
|
||||
{:ok, map} <- Map.fetch(body, "token") do
|
||||
Farmbot.System.GPIO.Leds.led_status_ok()
|
||||
last_reset_reason_file = Path.join(@data_path, "last_shutdown_reason")
|
||||
File.rm(last_reset_reason_file)
|
||||
Map.fetch(map, "encoded")
|
||||
else
|
||||
:error -> {:error, "unknown error."}
|
||||
|
|
|
@ -22,10 +22,15 @@ defmodule Farmbot.Host.TargetConfiguratorTest do
|
|||
|
||||
get "/" do
|
||||
last_reset_reason_file = Path.join(@data_path, "last_shutdown_reason")
|
||||
if File.exists?(last_reset_reason_file) do
|
||||
render_page(conn, "index", [version: @version, last_reset_reason: File.read!(last_reset_reason_file)])
|
||||
else
|
||||
render_page(conn, "index", [version: @version, last_reset_reason: nil])
|
||||
case File.read(last_reset_reason_file) do
|
||||
{:ok, reason} when is_binary(reason) ->
|
||||
if String.contains?(reason, "CeleryScript request.") do
|
||||
render_page(conn, "index", [version: @version, last_reset_reason: nil])
|
||||
else
|
||||
render_page(conn, "index", [version: @version, last_reset_reason: reason])
|
||||
end
|
||||
{:error, _} ->
|
||||
render_page(conn, "index", [version: @version, last_reset_reason: nil])
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -46,7 +51,13 @@ defmodule Farmbot.Host.TargetConfiguratorTest do
|
|||
end
|
||||
|
||||
post "/configure_network" do
|
||||
require IEx; IEx.pry
|
||||
interface = conn.body_params["interface"]
|
||||
settings =
|
||||
Enum.filter(conn.body_params, &String.starts_with?(elem(&1, 0), interface))
|
||||
|> Enum.map(fn({key, val}) -> {String.trim(key, interface <> "_"), val} end)
|
||||
|> Map.new()
|
||||
|> Map.put("enable", "on")
|
||||
Logger.info 1, "Got fake network config interface: `#{interface}` settings: #{inspect settings}"
|
||||
redir(conn, "/credentials")
|
||||
end
|
||||
|
||||
|
|
|
@ -22,10 +22,15 @@ defmodule Farmbot.Target.Bootstrap.Configurator.Router do
|
|||
|
||||
get "/" do
|
||||
last_reset_reason_file = Path.join(@data_path, "last_shutdown_reason")
|
||||
if File.exists?(last_reset_reason_file) do
|
||||
render_page(conn, "index", [version: @version, last_reset_reason: File.read!(last_reset_reason_file)])
|
||||
else
|
||||
render_page(conn, "index", [version: @version, last_reset_reason: nil])
|
||||
case File.read(last_reset_reason_file) do
|
||||
{:ok, reason} when is_binary(reason) ->
|
||||
if String.contains?(reason, "CeleryScript request.") do
|
||||
render_page(conn, "index", [version: @version, last_reset_reason: nil])
|
||||
else
|
||||
render_page(conn, "index", [version: @version, last_reset_reason: reason])
|
||||
end
|
||||
{:error, _} ->
|
||||
render_page(conn, "index", [version: @version, last_reset_reason: nil])
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -117,7 +122,7 @@ defmodule Farmbot.Target.Bootstrap.Configurator.Router do
|
|||
redir(conn, "/firmware")
|
||||
rescue
|
||||
err ->
|
||||
Logger.error 1, "Failed too input network config: #{Exception.message(err)}: #{inspect System.stacktrace()}"
|
||||
Logger.error 1, "Failed too input network config: #{Exception.message(err)}: #{inspect System.stacktrace()}"
|
||||
redir(conn, "/network")
|
||||
end
|
||||
end
|
||||
|
|
|
@ -23,6 +23,16 @@
|
|||
elem.outerHTML = "";
|
||||
delete elem;
|
||||
}
|
||||
|
||||
function selectInterface(iface, type) {
|
||||
if(type == "wireless") {
|
||||
var elems = document.getElementsByClassName("wireless");
|
||||
for(i=0; i<elems.length; i++){ elems[i].removeAttribute("hidden")}
|
||||
} else {
|
||||
var elems = document.getElementsByClassName("wireless");
|
||||
for(i=0; i<elems.length; i++){ elems[i].setAttribute("hidden", true) }
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
|
@ -38,16 +48,16 @@
|
|||
<%= for {interface, settings} <- interfaces do %>
|
||||
<%= case settings do %>
|
||||
<% %{type: :wired, checked: checked} -> %>
|
||||
<fieldset>
|
||||
<label>Enable Ethernet (<%= interface %>)</label>
|
||||
<input <%= checked %> type=radio name="interface" value="<%= interface %>">
|
||||
<input hidden=true name="<%= interface %>_type" value=wired>
|
||||
<label>Enable Ethernet (<%= interface %>)</label>
|
||||
<input <%= checked %> type=radio name="interface" value="<%= interface %>" onClick="selectInterface('<%= interface %>', 'wired');" />
|
||||
<fieldset class="wired">
|
||||
<input hidden=true name="<%= interface %>_type" value="wired" />
|
||||
</fieldset>
|
||||
|
||||
<% %{type: :wireless, ssids: ssids, checked: checked} -> %>
|
||||
<fieldset>
|
||||
<label>Enable Wireless (<%= interface %>) </label>
|
||||
<input <%= checked %> type=radio name="interface" value="<%= interface %>">
|
||||
<label>Enable Wireless (<%= interface %>) </label>
|
||||
<input <%= checked %> type=radio name="interface" value="<%= interface %>" onClick="selectInterface('<%= interface %>', 'wireless');" />
|
||||
<fieldset class="wireless">
|
||||
<label>Network Name/SSID</label>
|
||||
<select name="<%= interface %>_ssid" id="<%= interface %>_ssid_select" onchange="ssidSelectOnChange('<%= interface %>');">
|
||||
<%= Enum.reduce(ssids, "", fn(ssid, acc) ->
|
||||
|
@ -56,8 +66,8 @@
|
|||
<option id="<%= interface %>_ssid_manual_input"> <bold> Manual Input </bold> </option>
|
||||
</select>
|
||||
<label>Password</label>
|
||||
<input type=password name="<%= interface %>_psk">
|
||||
<input hidden=true name="<%= interface %>_type" value=wireless>
|
||||
<input type=password name="<%= interface %>_psk" />
|
||||
<input hidden=true name="<%= interface %>_type" value="wireless" />
|
||||
</fieldset>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
|
Loading…
Reference in a new issue