ferrox_front_ui/
ferrox_admin.rs1use ferrox_front_core::dom::{div, h1, DomBuilder};
2use crate::ferrox_datagrid::{ferrox_datagrid, FerroxDataGridConfig};
3use crate::ferrox_theme::{ferrox_theme_provider, ThemeMode};
4use crate::ferrox_kanban::{ferrox_kanban, KanbanColumn};
5use crate::ferrox_security_dashboard::{ferrox_security_dashboard, SecurityDashboardConfig};
6use crate::components::{card, card_header, card_body};
7
8pub fn ferrox_admin_dashboard(
9 title: &str,
10 datagrid_cfg: FerroxDataGridConfig,
11 kanban_cols: Vec<KanbanColumn>,
12) -> DomBuilder {
13 let sec_config = SecurityDashboardConfig::default();
14
15 ferrox_theme_provider(
16 ThemeMode::Cyber,
17 vec![
18 div().attr("style", "padding: 2rem; display: flex; flex-direction: column; gap: 2rem;").child(
19 h1().text(title)
20 ).child(
21 ferrox_security_dashboard(&sec_config)
22 ).child(
23 div().attr("style", "display: grid; grid-template-columns: 1fr; gap: 2rem;").child(
24 card().child(
25 card_header("Database Schema (DataGrid)")
26 ).child(
27 card_body().child(
28 ferrox_datagrid(&datagrid_cfg)
29 )
30 )
31 ).child(
32 card().child(
33 card_header("Support Tickets (Kanban)")
34 ).child(
35 card_body().child(
36 ferrox_kanban(kanban_cols)
37 )
38 )
39 )
40 )
41 ]
42 )
43}