Skip to content
This repository has been archived by the owner on Feb 27, 2023. It is now read-only.
/ live_admin Public archive
forked from tfwright/live_admin

Admin UI for Phoenix apps, built on Live View

License

Notifications You must be signed in to change notification settings

viabeacon/live_admin

 
 

Repository files navigation

LiveAdmin

hex package CI status

An admin UI for Phoenix applications built on Phoenix LiveView and Ecto.

Significant features:

  • First class support for multi tenant applications via Ecto's prefix option
  • Overridable views and API
  • Easily add custom actions at the schema and record level
  • Ability to edit (nested) embedded schemas

Installation

First, ensure your Phoenix app has been configured to use LiveView.

Add to your app's deps:

{:live_admin, "~> 0.5.1"}

Add the following to your Phoenix router in any scope ready to serve a live route:

import LiveAdmin.Router
# ...
live_admin "/admin", resources: [MyApp.SomeEctoSchema]

See LiveAdmin.Router.live_admin/2 for full list of options.

To customize a resource, pass a two element tuple when the schema module as the first element, and a keyword list of options is the second: {MyApp.SomeEctoSchema, opts}

Resource specific options:

  • title_with - a binary, or MFA that returns a binary, used to identify the resource
  • label_with - a binary, or MFA that returns a binary, used to identify individual records
  • list_with - an atom or MFA that identifies the function that implements listing a resource
  • create_with - an atom or MFA that identifies the function that implements creating a resource
  • update_with - an atom or MFA that identifies the function that implements updating a record
  • delete_with - an atom or MFA that identifies the function that implements deleting a record
  • validate_with - an atom or MFA that identifies the function that implements validating a changed record
  • hidden_fields - a list of fields that should not be displayed in the UI
  • immutable_fields - a list of fields that should not be editable in forms
  • actions - list of atoms or MFAs that identify a function that operates on a record
  • tasks - list atoms or MFAs that identify a function that operates on a resource
  • components - keyword list of component module overrides for specific views (:list, :new, :edit, :home)

App config

The following runtime config is supported:

  • ecto_repo - the Ecto repo to use for db operations
  • prefix_options - a list or MFA specifying prefix options to be passed to Ecto functions
  • css_overrides - a string of CSS to be appended to app css

In addition to these, most resource configuration can be set here in order to set a global default to apply to all resources unless overridden in their individual config.

Example:

config :live_admin,
  ecto_repo: MyApp.Repo,
  prefix_options: {MyApp.Accounts, :list_tenant_prefixes, []},
  immutable_fields: [:id, :inserted_at, :updated_at],
  label_with: :name

See development app for more example configuration.


README generated with docout

About

Admin UI for Phoenix apps, built on Live View

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Elixir 87.0%
  • CSS 9.0%
  • JavaScript 2.7%
  • HTML 1.1%
  • Dockerfile 0.2%