defmodule Oban.Web.Layouts do use Oban.Web, :html phoenix_js_paths = for app <- ~w(phoenix phoenix_html phoenix_live_view)a do path = Application.app_dir(app, ["priv", "static", "#{app}.js"]) Module.put_attribute(__MODULE__, :external_resource, path) path end @static_path Application.app_dir(:oban_web, ["priv", "static"]) @external_resource css_path = Path.join(@static_path, "app.css") @external_resource js_path = Path.join(@static_path, "app.js") @css File.read!(css_path) @js """ #{for path <- phoenix_js_paths, do: path |> File.read!() |> String.replace("//# sourceMappingURL=", "// ")} #{File.read!(js_path)} """ def render("app.css"), do: @css def render("app.js"), do: @js embed_templates "layouts/*" 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