neiam
/apollos_crib
It's Apollo's Crib
public · Issues · Pulls 1 · Labels · Forks · Compare · Actions failure · Badges · Packages
⭐
Log in to mark this repository.
vision preview on vision page
4402e76 · gmorell · 2022-08-03 00:45
Files changed
modified
apps/room_sanctum/assets/js/app.js
+0
−1
@@ -50,7 +50,6 @@ Hooks.mkMap = {
| 50 | 50 | var marker = L.centerMarker(map).on("newposition", function() { |
| 51 | 51 | var latlng = marker.getLatLng() |
| 52 | 52 | console.log("New position: " + latlng.lat + ", " + latlng.lng); |
| 53 | − view.pushEvent("foofofo") | |
| 54 | 53 | document.getElementById("foci-form").dispatchEvent( |
| 55 | 54 | new Event("update", {latlng: latlng}) |
| 56 | 55 | ) |
modified
apps/room_sanctum/lib/room_sanctum_web/live/cfg_vision_live/show.ex
+35
−8
@@ -12,19 +12,40 @@ defmodule RoomSanctumWeb.VisionLive.Show do
| 12 | 12 | @impl true |
| 13 | 13 | def handle_params(%{"id" => id}, _, socket) do |
| 14 | 14 | {:noreply, |
| 15 | − socket | |
| 16 | − |> assign(:page_title, page_title(socket.assigns.live_action)) | |
| 17 | − |> assign(:vision, Configuration.get_vision!(id)) | |
| 18 | − |> assign(:vision_id, id) | |
| 19 | − |> assign(:preview, []) | |
| 20 | − |> assign(:queries, []) | |
| 15 | + socket | |
| 16 | + |> assign(:page_title, page_title(socket.assigns.live_action)) | |
| 17 | + |> assign(:vision, Configuration.get_vision!(id)) | |
| 18 | + |> assign(:vision_id, id) | |
| 19 | + |> assign(:preview, []) | |
| 20 | + |> assign(:queries, []) | |
| 21 | + |> assign(:preview_mode, :basic) | |
| 21 | 22 | } |
| 22 | 23 | end |
| 23 | 24 | |
| 24 | 25 | def handle_info(:update, socket) do |
| 25 | 26 | Process.send_after(self(), :update, 15000) |
| 26 | 27 | %{data: data, queries: queries} = RoomSanctum.Worker.Vision.get_state(socket.assigns.vision_id) |
| 27 | − {:noreply, socket |> assign(:preview, data) |> assign(:queries, queries)} | |
| 28 | + { | |
| 29 | + :noreply, | |
| 30 | + socket | |
| 31 | + |> assign(:preview, data) | |
| 32 | + |> assign(:queries, queries) | |
| 33 | + } | |
| 34 | + end | |
| 35 | + | |
| 36 | + defp do_toggle(state) do | |
| 37 | + case state do | |
| 38 | + :basic -> :raw | |
| 39 | + :raw -> :basic | |
| 40 | + end | |
| 41 | + end | |
| 42 | + | |
| 43 | + def handle_event("toggle-preview-mode", _params, socket) do | |
| 44 | + { | |
| 45 | + :noreply, | |
| 46 | + socket | |
| 47 | + |> assign(:preview_mode, do_toggle(socket.assigns.preview_mode)) | |
| 48 | + } | |
| 28 | 49 | end |
| 29 | 50 | |
| 30 | 51 | defp page_title(:show), do: "Vision Detail" |
@@ -73,10 +94,16 @@ defmodule RoomSanctumWeb.VisionLive.Show do
| 73 | 94 | |
| 74 | 95 | |
| 75 | 96 | defp get_query_data_icon(item, queries) do |
| 76 | − as_map = queries |> Enum.map(fn x -> {x.id, x} end) |> Enum.into(%{}) | |
| 97 | + as_map = queries | |
| 98 | + |> Enum.map(fn x -> {x.id, x} end) | |
| 99 | + |> Enum.into(%{}) | |
| 77 | 100 | case Map.get(as_map, item) do |
| 78 | 101 | nil -> "" |
| 79 | 102 | _val -> icon(_val.source.type) |
| 80 | 103 | end |
| 81 | 104 | end |
| 105 | + | |
| 106 | + def preview(condensed, {id, type}) do | |
| 107 | + %{data: condensed, id: id, type: type} | |
| 108 | + end | |
| 82 | 109 | end |
modified
apps/room_sanctum/lib/room_sanctum_web/live/cfg_vision_live/show.html.heex
+47
−10
@@ -78,19 +78,56 @@
| 78 | 78 | </div> |
| 79 | 79 | <div class="card card-compact w-1/2 bg-base-100 shadow-xl m-2"> |
| 80 | 80 | <div class="card-body"> |
| 81 | − <h3 class="card-title">Preview</h3> | |
| 82 | − <%= for {k, p} <- @preview do %> | |
| 81 | + | |
| 83 | 82 | <div class="flex"> |
| 84 | − <div class="w-16"> | |
| 85 | − <i class={"fas fa-fw fa-2xl #{icon(k |> elem(1))}"}></i> | |
| 83 | + <div class="flex-auto basis-4/5"> | |
| 84 | + <h3 class="card-title w-full">Preview</h3> | |
| 85 | + </div> | |
| 86 | + <div class="flex-1 w-3/4"> | |
| 87 | + | |
| 86 | 88 | </div> |
| 87 | − <div class="w-7/8"> | |
| 88 | − <span class="text-secondary font-bold"><%= get_query_data(k |> elem(0), @queries, 64) %></span> | |
| 89 | − <pre><%= condense(k, p) |> Poison.encode!(pretty: true)%></pre> | |
| 89 | + <div class="flex-none w-20"> | |
| 90 | + <button class="btn btn-secondary btn-sm" phx-click="toggle-preview-mode"><%= @preview_mode %></button> | |
| 90 | 91 | </div> |
| 91 | 92 | </div> |
| 92 | − <% end %> | |
| 93 | − </div> | |
| 94 | − </div> | |
| 93 | + <%= case @preview_mode do %> | |
| 94 | + <%= :basic -> %> | |
| 95 | + <%= for {k, p} <- @preview do %> | |
| 96 | + <div class="flex gap-2"> | |
| 97 | + <i class={"fas fa-fw fa-xl #{icon(k |> elem(1))}"}></i> | |
| 98 | + <span class="text-secondary font-bold"><%= get_query_data(k |> elem(0), @queries, 64) %></span> | |
| 99 | + </div> | |
| 100 | + <%= case k do %> | |
| 101 | + <%= {_, :gtfs} -> %> <.p_gtfs entries={condense(k, p) |> preview(k)}> | |
| 102 | + </ | |
| 103 | + .p_gtfs> | |
| 104 | + <%= {_, :gbfs} -> %> <.p_gbfs entries={condense(k, p) |> preview(k)}> | |
| 105 | + </ | |
| 106 | + .p_gbfs> | |
| 107 | + <%= {_, :tidal} -> %> <.p_tidal entries={condense(k, p) |> preview(k)}> | |
| 108 | + </ | |
| 109 | + .p_tidal> | |
| 110 | + <%= {_, :weather} -> %> <.p_weather entries={condense(k, p) |> preview(k)}> | |
| 111 | +</.p_weather> | |
| 112 | +<%= {_, :aqi} -> %> <.p_aqi entries={condense(k, p) |> preview(k)}> </.p_aqi> | |
| 113 | +<%= {_, :ephem} -> %> <.p_ephem entries={condense(k, p) |> preview(k)}> </.p_ephem> | |
| 114 | +<%= {_, :calendar} -> %> <.p_calendar entries={condense(k, p) |> preview(k)}> </.p_calendar> | |
| 115 | +<% end %> | |
| 116 | + <% end %> | |
| 117 | +<%= :raw -> %> | |
| 118 | +<%= for {k, p} <- @preview do %> | |
| 119 | +<div class="flex"> | |
| 120 | + <div class="w-16"> | |
| 121 | + <i class={"fas fa-fw fa-2xl #{icon(k |> elem(1))}"}></i> | |
| 122 | + </div> | |
| 123 | + <div class="w-7/8"> | |
| 124 | + <span class="text-secondary font-bold"><%= get_query_data(k |> elem(0), @queries, 64) %></span> | |
| 125 | + <pre><%= condense(k, p) |> Poison.encode!(pretty: true)%></pre> | |
| 95 | 126 | </div> |
| 96 | 127 | </div> |
| 128 | +<% end %> | |
| 129 | + <% end %> | |
| 130 | +</div> | |
| 131 | +</div> | |
| 132 | +</div> | |
| 133 | +</div> |
modified
apps/room_sanctum/lib/room_sanctum_web/live/live_preview.ex
+1
−1
@@ -79,7 +79,7 @@ defmodule RoomSanctumWeb.LivePreview do
| 79 | 79 | <p><i class="fa-solid fa-1"></i> <i class="fa-solid fa-arrows-up-to-line"></i>: @ <%= e.first_h %></p> |
| 80 | 80 | <p><i class="fa-solid fa-2"></i> <i class="fa-solid fa-arrows-down-to-line"></i>: @ <%= e.second_l %></p> |
| 81 | 81 | <%= if e |> Map.get :second_h do %> |
| 82 | − <p><i class="fa-solid fa-2"></i> <i class="fa-solid fa-arrows-up-to-line"></i>: @ <%= e.first_l %></p> | |
| 82 | + <p><i class="fa-solid fa-2"></i> <i class="fa-solid fa-arrows-up-to-line"></i>: @ <%= e.second_h %></p> | |
| 83 | 83 | <% end %> |
| 84 | 84 | </div> |
| 85 | 85 | </div> |
Parents: 31c5c5c