Skip to main content

coil_core/manifest/
admin.rs

1use super::*;
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq)]
4pub enum AdminNavigationSection {
5    Overview,
6    Content,
7    Commerce,
8    Memberships,
9    Events,
10    Media,
11    System,
12}
13
14#[derive(Debug, Clone, Copy, PartialEq, Eq)]
15pub enum AdminContributionKind {
16    Dashboard,
17    ResourceIndex,
18    DetailView,
19    Workflow,
20    Audit,
21    Settings,
22}
23
24#[derive(Debug, Clone, PartialEq, Eq)]
25pub struct AdminResourceContribution {
26    pub id: String,
27    pub route: String,
28    pub title: String,
29    pub nav_label: String,
30    pub section: AdminNavigationSection,
31    pub kind: AdminContributionKind,
32    pub required_capability: Capability,
33}
34
35impl AdminResourceContribution {
36    pub fn new(
37        id: impl Into<String>,
38        route: impl Into<String>,
39        title: impl Into<String>,
40        nav_label: impl Into<String>,
41        section: AdminNavigationSection,
42        kind: AdminContributionKind,
43        required_capability: Capability,
44    ) -> Self {
45        Self {
46            id: id.into(),
47            route: route.into(),
48            title: title.into(),
49            nav_label: nav_label.into(),
50            section,
51            kind,
52            required_capability,
53        }
54    }
55}