Current section
Files
Jump to
Current section
Files
lib/ex_admin/themes/admin_lte2/layout.ex
defmodule ExAdmin.Theme.AdminLte2.Layout do @moduledoc false import ExAdmin.Navigation import Phoenix.HTML.Tag, only: [content_tag: 2, content_tag: 3] use Xain require Logger def link_to_active(conn, name, path, id, opts \\ []) do wrapper = Keyword.get(opts, :wrapper, :li) active_class = Keyword.get(opts, :active_class, "active") active_class = if link_active?(conn, path), do: active_class, else: "" icon = if path == ExAdmin.Utils.admin_path(:page, [:dashboard]) do content_tag :i, "", class: "fa fa-dashboard" else content_tag :i, String.at(name, 0), class: "nav-label label label-info" end name_span = content_tag :span, name a_tag = content_tag :a, [icon, name_span], href: path if wrapper == :none do a_tag else content_tag wrapper, id: id, class: active_class do a_tag end end end def theme_selector? do not is_nil(Application.get_env(:ex_admin_runtime, :theme_selector)) end def theme_selector do Application.get_env(:ex_admin_runtime, :theme_selector) |> Enum.with_index |> theme_selector end defp theme_selector(nil), do: "" defp theme_selector(options) do current = Application.get_env(:ex_admin_runtime, :theme) for {{name, theme}, inx} <- options do active = if current == theme, do: "active", else: "" content_tag :li, class: active do content_tag :a, name, href: "#", "data-theme": "#{inx}", class: "theme-selector" end end end def switch_user(%{assigns: %{switch_users: [current_id | users]}}) do content_tag :li, class: "dropdown", style: "width: 155px" do [ content_tag :a, href: "#", class: "dropdown-toggle", "data-toggle": "dropdown" do [ Phoenix.HTML.raw("Switch User"), content_tag(:span, nil, class: "caret") ] end, content_tag :ul, class: "dropdown-menu", role: "menu" do for {name, id, path} <- users do active = if id == current_id, do: "active", else: "" content_tag :li, class: active do content_tag :a, name, href: "#", "data-path": path, class: "switch-user" end end end ] end end def switch_user(_conn), do: nil def render_breadcrumbs([]), do: nil def render_breadcrumbs(list) do ol(".breadcrumb") do Enum.each list, fn({link, name}) -> li do a(name, href: link) end end end end def wrap_title_bar(fun) do section("#title_bar.content-header") do fun.() end end def sidebar_view(conn, {name, opts, {mod, fun}}, resource) do box_attributes = Keyword.get(opts, :box_attributes, ".box.box-primary") header_attributes = Keyword.get(opts, :header_attributes, ".box-header.with-border") body_attributes = Keyword.get(opts, :body_attributes, ".box-body") markup safe: true do div box_attributes do div header_attributes do h3 ".box-title #{name}" end div body_attributes do case apply mod, fun, [conn, resource] do {_, rest} -> text rest :ok -> "" other -> text other end end end end endend