<.header>
Beacons
<:subtitle>Microwave beacons tracked by NTMS.
<:actions>
<.button variant="primary" navigate={~p"/beacons/new"}>
<.icon name="hero-plus" /> Submit Beacon
<.live_table
fields={fields()}
filters={filters()}
options={@options}
streams={@streams}
actions={actions()}
/>
<.header>
Pending approval
<:subtitle>Submitted beacons waiting for admin review.
<.table
id="pending-beacons"
rows={@streams.pending}
row_click={fn {_id, beacon} -> JS.navigate(~p"/beacons/#{beacon}") end}
>
<:col :let={{_id, beacon}} label="Frequency (MHz)">
{Beacon.format_freq(beacon.frequency_mhz)}
<:col :let={{_id, beacon}} label="Call">{beacon.callsign}
<:col :let={{_id, beacon}} label="Grid">{beacon.grid}
<:col :let={{_id, beacon}} label="EIRP (mW)">{Beacon.format_mw(beacon.power_mw)}
<:col :let={{_id, beacon}} label="Height AGL (ft)">{beacon.height_ft}
<:col :let={{_id, beacon}} label="Submitted">
{Calendar.strftime(beacon.inserted_at, "%Y-%m-%d %H:%M UTC")}
<:action :let={{_id, beacon}}>
<.link
phx-click={JS.push("approve", value: %{id: beacon.id})}
data-confirm="Approve this beacon?"
>
Approve
<:action :let={{id, beacon}}>
<.link
phx-click={JS.push("delete", value: %{id: beacon.id}) |> hide("##{id}")}
data-confirm="Delete this beacon?"
>
Delete
"""
end
end