1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
use pagetop::prelude::*;

static_locales!(LOCALES_ADMIN);

mod summary;

pub struct Admin;

impl PackageTrait for Admin {
    fn name(&self) -> L10n {
        L10n::t("package_name", &LOCALES_ADMIN)
    }

    fn description(&self) -> L10n {
        L10n::t("package_description", &LOCALES_ADMIN)
    }

    fn actions(&self) -> Vec<ActionBox> {
        actions![
            action::page::BeforePrepareBody::new(before_prepare_body),
            action::component::BeforePrepare::<Menu>::new(before_prepare_menu)
                .filter_by_referer_id("admin-menu-test"),
        ]
    }

    fn configure_service(&self, scfg: &mut service::web::ServiceConfig) {
        scfg.service(
            service::web::scope("/admin").route("", service::web::get().to(summary::summary)),
        );
    }
}

fn before_prepare_body(page: &mut Page) {
    page.alter_body_classes(ClassesOp::Add, "test-admin");
}

fn before_prepare_menu(component: &mut Menu, _cx: &mut Context) {
    component.alter_id("admin-menu-test-altered");
}