Skip to content
This repository has been archived by the owner on Feb 27, 2023. It is now read-only.

Latest commit

 

History

History
78 lines (54 loc) · 3.3 KB

README.md

File metadata and controls

78 lines (54 loc) · 3.3 KB

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