Skip to main content

ferrox_front_ui/
ferrox_admin.rs

1use 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}