Crate armature_admin

Crate armature_admin 

Source
Expand description

Admin Dashboard Generator for Armature Framework

Auto-generates a complete CRUD admin interface from your models, similar to Django Admin or Rails Admin.

§Overview

┌─────────────────────────────────────────────────────────────────┐
│                    Admin Dashboard                               │
│                                                                  │
│  ┌──────────────────────────────────────────────────────────┐  │
│  │  Navigation    │  Content Area                           │  │
│  │  ───────────   │  ─────────────                          │  │
│  │  Dashboard     │  ┌────────────────────────────────────┐ │  │
│  │  Users         │  │  Users List                        │ │  │
│  │  Products      │  │  ─────────────────────────────────  │ │  │
│  │  Orders        │  │  [Search] [Filter] [+Add]          │ │  │
│  │  Settings      │  │  ┌────┬────────┬────────┬───────┐  │ │  │
│  │                │  │  │ ID │ Name   │ Email  │ Actions│  │ │  │
│  │                │  │  ├────┼────────┼────────┼───────┤  │ │  │
│  │                │  │  │ 1  │ Alice  │ a@...  │ ✏️ 🗑️ │  │ │  │
│  │                │  │  │ 2  │ Bob    │ b@...  │ ✏️ 🗑️ │  │ │  │
│  │                │  │  └────┴────────┴────────┴───────┘  │ │  │
│  │                │  │  [◀ Prev] Page 1 of 10 [Next ▶]   │ │  │
│  │                │  └────────────────────────────────────┘ │  │
│  └──────────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────────┘

§Quick Start

use armature_admin::{Admin, AdminModel, Field};

#[derive(AdminModel)]
#[admin(list_display = ["id", "name", "email"])]
#[admin(search_fields = ["name", "email"])]
struct User {
    #[admin(primary_key)]
    id: i64,
    #[admin(required)]
    name: String,
    #[admin(widget = "email")]
    email: String,
    #[admin(readonly)]
    created_at: DateTime<Utc>,
}

let admin = Admin::new()
    .title("My Admin")
    .register::<User>()
    .build();

// Mount at /admin
app.mount("/admin", admin.routes());

Re-exports§

pub use config::*;
pub use dashboard::*;
pub use error::*;
pub use field::*;
pub use model::*;
pub use registry::*;
pub use ui::*;
pub use views::*;

Modules§

config
Admin configuration
dashboard
Dashboard views for admin
error
Error types for admin module
field
Field definitions for admin models
model
Model definitions for admin
registry
Model registry for admin
ui
UI components for admin dashboard
views
View structures for admin pages

Structs§

Admin
Admin instance builder
AdminInstance
Built admin instance
AdminRoutes
Admin route handler
ListParams
Parameters for list view

Enums§

SortOrder
Sort order