Adminable
Create admin interfaces for Ecto Schemas in Phoenix apps
Based on blog post here
Installation
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.0"}
]
end
Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/adminable.
Configuration
- Add
use Adminable
to your Ecto Schema
defmodule 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
Exporting View and Templates
To export Adminable's AdminView and templates for modification, run:
mix adminable.gen.view MyWebModule