Phoenixではex_adminという管理画面作成パッケージを導入することで簡単に管理画面が作成できる。
smpallen99/ex_admin: ExAdmin is an auto administration package for Elixir and the Phoenix Framework
しかし依存関係やフォルダ構成の違いの問題で最新のPhoenixではうまく動かない。ただ、よくよく調べてみると下記のphx-1.3ブランチを使えばできるっぽいので試してみた。
https://github.com/smpallen99/ex_admin/tree/phx-1.3
導入方法
phx-1.3ブランチを指定して入れる。ビルドに失敗するのでgettextのバージョンも上げる。
mix.exs
defp deps do
...
{:gettext, "~> 0.13.1"},
{:ex_admin, github: "smpallen99/ex_admin", branch: "phx-1.3"},
...
end
configを追加。
config.exs
config :ex_admin,
repo: MyProject.Repo,
module: MyProjectWeb,
modules: [
MyProject.ExAdmin.Dashboard,
]
後は通常通りのインストールと同じ。
brunch-configの修正
そのままだとex_adminのcssとかが混ざってしまう。brunch-config.jsに修正方法が追記されているので、そのとおりに修正。
またその際、node_modules内のcssをインポートしている場合はcssの設定だけ下記に修正が必要。
"css/app.css": /^(css|node_modules)/,
モデル追加
mix admin.gen.resource User
これは特に変わりはない。ただ、1.3だとphx.gen.html
を使っている場合、context module以下にモデルを入れていると思う。例えばAccounts.User
等。
なので生成されたadmin/user.ex内のモデルの指定だけ修正しておく。
admin/user.ex(before)
register_resource MyProject.User do
admin/user.ex(after)
register_resource MyProject.Accounts.User do
これで動作した。
Top comments (0)