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"}
]
end
Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/adminable.
-
Add
use Adminable
to 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"}
])
end
Arguments
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 MyWebModule
layout
- (Optional) The layout to use
To export Adminable's AdminView and templates for modification, run:
mix adminable.gen.view MyWebModule