defmodule Oban.Web.Layouts do
use Oban.Web, :html
embed_templates "layouts/*"
defp asset_path(conn, asset) when asset in [:css, :js] do
hash = Oban.Web.Assets.current_hash(asset)
{_dash, _routing, meta} = conn.private.phoenix_live_view
prefix = get_in(meta, [:extra, :session, Access.elem(2), Access.at(0)])
Phoenix.VerifiedRoutes.unverified_path(
conn,
conn.private.phoenix_router,
"#{prefix}/#{asset}-#{hash}"
)
end
attr :path, :string, default: nil
def logo(assigns) do
~H"""
"""
end
def notify(assigns) do
~H"""
{Phoenix.Flash.get(assigns.flash, :info)}
"""
end
def nav(assigns) do
~H"""
"""
end
def footer(assigns) do
assigns =
assign(assigns,
oss_version: Application.spec(:oban, :vsn),
met_version: Application.spec(:oban_met, :vsn),
web_version: Application.spec(:oban_web, :vsn),
pro_version: Application.spec(:oban_pro, :vsn)
)
~H"""
"""
end
attr :name, :string
attr :version, :string
defp version(assigns) do
~H"""
{@name} {if @version, do: "v#{@version}", else: "–"}
"""
end
defp link_class(curr, page) do
base = "font-semibold text-sm rounded-md px-3 py-2"
if curr == page do
base <> " text-gray-950 dark:text-gray-100 bg-gray-50 dark:bg-gray-800"
else
base <> " text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-gray-100"
end
end
end