dart_admin 0.1.0
dart_admin: ^0.1.0 copied to clipboard
A Django-inspired extensible Admin Dashboard for Dart backend frameworks (Shelf, Dart Frog, Serverpod).
example/dart_admin_example.dart
import 'package:dart_admin/dart_admin.dart';
class Article {
final int id;
final String title;
final String content;
final bool isPublished;
Article({
required this.id,
required this.title,
required this.content,
this.isPublished = false,
});
Map<String, dynamic> toMap() => {
'id': id,
'title': title,
'content': content,
'isPublished': isPublished,
};
factory Article.fromMap(Map<String, dynamic> map) => Article(
id: map['id'] as int,
title: map['title'] as String,
content: map['content'] as String,
isPublished: map['isPublished'] == true,
);
}
void main() {
final site = AdminSite(title: 'News CMS Admin');
final articleResource = AdminResource<Article>(
name: 'Article',
adapter: InMemoryAdapter<Article>(
getId: (a) => a.id,
toMap: (a) => a.toMap(),
fromMap: (m) => Article.fromMap(m),
),
getId: (a) => a.id,
toMap: (a) => a.toMap(),
fromMap: (m) => Article.fromMap(m),
fields: [
const AdminField(name: 'id', type: AdminFieldType.integer, readOnly: true),
const AdminField(name: 'title', type: AdminFieldType.text, required: true),
const AdminField(name: 'content', type: AdminFieldType.textarea),
const AdminField(name: 'isPublished', type: AdminFieldType.boolean),
],
);
site.register(articleResource);
print('Registered resources: ${site.resources.map((r) => r.name).toList()}');
}