Create admin interfaces for Ecto Schemas in Phoenix apps
Based on blog post here
If available in Hex, the package can be installed
by adding adminable to your list of dependencies in mix.exs:
def deps do
[
{:adminable, "~> 0.3.1"}
]
endDocumentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/adminable.
-
Add
use Adminableto your Ecto Schemadefmodule MyApp.User do use Ecto.Schema import Ecto.{Query, Changeset}, warn: false use Adminable ... end
-
optionally implement fields/0, create_changeset/2 and edit_changeset/2
-
Forward to
Adminable.Router
scope "/admin" do
pipe_through [:browser, :my, :other, :pipelines]
forward("/", Adminable.Plug, [
otp_app: :my_app,
repo: MyApp.Repo,
schemas: [MyApp.User],
view_module: MyAppWeb.Adminable.AdminView,
layout: {MyAppWeb.LayoutView, "app.html"}
])
endArguments
otp_app- Your apprepo- Your app's Reposchemas- The schemas to make Admin sections forview_module- (Optional) The view_module to use to display pages. Uses Adminable's view module by default. You can export the view to modify usingmix adminable.gen.view MyWebModulelayout- (Optional) The layout to use
To export Adminable's AdminView and templates for modification, run:
mix adminable.gen.view MyWebModule