Skip to content

MVC::Keayl::Admin

The latest version of this documentation lives at https://gdonald.github.io/MVC-Keayl-Admin/.

The homepage for MVC::Keayl::Admin is https://github.com/gdonald/MVC-Keayl-Admin.

Synopsis

MVC::Keayl::Admin is a generated administration interface for applications built on MVC::Keayl, in the spirit of Django admin and Active Admin.

The admin mounts as an engine and depends on the framework's public surface only. The model layer is delegated to ORM::ActiveRecord and view rendering to Template::HAML. It carries a frontend opinion (Bootstrap 5, Bootstrap Icons, HTMX) that MVC::Keayl deliberately does not. The dependency runs one way: the admin depends on MVC::Keayl, never the reverse.

Design principles

  • Explicit, not magic. Every surface is declared by hand. Nothing is inferred at request time.
  • No foreign-key enumeration. A select or association filter requires an explicit collection, so a large table is never enumerated into a dropdown.
  • Introspection only at generate time. keayl generate admin <Model> reads the schema and writes explicit declarations that the developer then edits.
  • Server-rendered, progressive enhancement. Bootstrap 5 with Bootstrap Icons and HTMX, all vendored and served through the asset pipeline. With JavaScript disabled every action degrades to a full-page request.
  • Django-style layout. A left sidebar of grouped, ordered menu entries and a right main content area for index, show, and form pages.