diff --git a/lib/aprsme_web/live/info_live/show.html.heex b/lib/aprsme_web/live/info_live/show.html.heex index 1ec5970..d44f7be 100644 --- a/lib/aprsme_web/live/info_live/show.html.heex +++ b/lib/aprsme_web/live/info_live/show.html.heex @@ -23,25 +23,25 @@ <% {symbol_table_id, symbol_code} = AprsmeWeb.MapLive.PacketUtils.get_symbol_info(@packet) %> <% symbol_table = if symbol_table_id in ["/", "\\", "]"], do: symbol_table_id, else: "/" %> <% symbol_code = symbol_code || ">" %> - <% symbol_table_num = - case symbol_table do - "/" -> 0 - "\\" -> 1 - "]" -> 2 - _ -> 0 - end %> + <% table_id = + if symbol_table == "/", do: "0", else: if(symbol_table == "]", do: "2", else: "1") %> <% symbol_code_ord = symbol_code |> String.to_charlist() |> List.first() |> (fn c -> if is_integer(c), do: c, else: 63 end).() %> - <% symbol_img = "/aprs-symbols/aprs-symbols-24-#{symbol_table_num}@2x.png" %> - <% symbol_index = symbol_code_ord - 33 %> - APRS symbol + <% index = symbol_code_ord - 33 %> + <% safe_index = max(0, min(index, 93)) %> + <% column = rem(safe_index, 16) %> + <% row = div(safe_index, 16) %> + <% x = -column * 128 %> + <% y = -row * 128 %> + <% symbol_img = "/aprs-symbols/aprs-symbols-128-#{table_id}@2x.png" %> +
+
<% end %> <.link navigate={~p"/packets/#{@callsign}"} class="ml-2 text-sm text-blue-600 hover:underline"> View packets @@ -112,25 +112,27 @@ <% symbol_table = if symbol_table_id in ["/", "\\", "]"], do: symbol_table_id, else: "/" %> <% symbol_code = symbol_code || ">" %> - <% symbol_table_num = - case symbol_table do - "/" -> 0 - "\\" -> 1 - "]" -> 2 - _ -> 0 - end %> + <% table_id = + if symbol_table == "/", + do: "0", + else: if(symbol_table == "]", do: "2", else: "1") %> <% symbol_code_ord = symbol_code |> String.to_charlist() |> List.first() |> (fn c -> if is_integer(c), do: c, else: 63 end).() %> - <% symbol_img = "/aprs-symbols/aprs-symbols-24-#{symbol_table_num}@2x.png" %> - <% symbol_index = symbol_code_ord - 33 %> - APRS symbol + <% index = symbol_code_ord - 33 %> + <% safe_index = max(0, min(index, 93)) %> + <% column = rem(safe_index, 16) %> + <% row = div(safe_index, 16) %> + <% x = -column * 128 %> + <% y = -row * 128 %> + <% symbol_img = "/aprs-symbols/aprs-symbols-128-#{table_id}@2x.png" %> +
+
<% end %> {neighbor.distance || ""} diff --git a/lib/aprsme_web/live/weather_live/callsign_view.html.heex b/lib/aprsme_web/live/weather_live/callsign_view.html.heex index 28df6b7..7ab65f8 100644 --- a/lib/aprsme_web/live/weather_live/callsign_view.html.heex +++ b/lib/aprsme_web/live/weather_live/callsign_view.html.heex @@ -2,9 +2,40 @@

Weather for {@callsign} + <%= if @weather_packet do %> + <% {symbol_table_id, symbol_code} = + AprsmeWeb.MapLive.PacketUtils.get_symbol_info(@weather_packet) %> + <% symbol_table = if symbol_table_id in ["/", "\\", "]"], do: symbol_table_id, else: "/" %> + <% symbol_code = symbol_code || ">" %> + <% table_id = + if symbol_table == "/", do: "0", else: if(symbol_table == "]", do: "2", else: "1") %> + <% symbol_code_ord = + symbol_code + |> String.to_charlist() + |> List.first() + |> (fn c -> if is_integer(c), do: c, else: 63 end).() %> + <% index = symbol_code_ord - 33 %> + <% safe_index = max(0, min(index, 93)) %> + <% column = rem(safe_index, 16) %> + <% row = div(safe_index, 16) %> + <% x = -column * 128 %> + <% y = -row * 128 %> + <% symbol_img = "/aprs-symbols/aprs-symbols-128-#{table_id}@2x.png" %> +
+
+ <% end %> + <.link + navigate={~p"/info/#{@callsign}"} + class="ml-2 text-blue-600 hover:underline text-base font-normal" + > + info + <.link navigate={~p"/#{@callsign}"} - class="ml-4 text-blue-600 hover:underline text-base font-normal" + class="ml-2 text-blue-600 hover:underline text-base font-normal" > view on map