🎨 Review layout composition with Flex components
This commit is contained in:
parent
dfbe807a61
commit
4c026e696b
19 changed files with 658 additions and 674 deletions
|
|
@ -154,10 +154,10 @@ pub async fn summary(request: HttpRequest) -> ResultPage<Markup, ErrorPage> {
|
|||
.with_title(L10n::n("Admin"))
|
||||
.with_component_in("top-menu", side_menu)
|
||||
.with_component(
|
||||
flex::Container::new()
|
||||
.add_item(flex::Item::with(Html::with(html! { p { "Columna 1"} })))
|
||||
.add_item(flex::Item::with(top_menu))
|
||||
.add_item(flex::Item::with(Html::with(html! { p { "Columna 3"} }))),
|
||||
Container::new()
|
||||
.add_item(Flex::with(Html::with(html! { p { "Columna 1"} })))
|
||||
.add_item(Flex::with(top_menu))
|
||||
.add_item(Flex::with(Html::with(html! { p { "Columna 3"} }))),
|
||||
)
|
||||
.render()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,42 +32,6 @@ impl ThemeTrait for Bootsier {
|
|||
]
|
||||
}
|
||||
|
||||
fn builtin_classes(&self, builtin: ThemeBuiltInClasses) -> Option<String> {
|
||||
match builtin {
|
||||
ThemeBuiltInClasses::RegionContainer => Some(String::from("container")),
|
||||
_ => Some(builtin.to_string()),
|
||||
}
|
||||
}
|
||||
|
||||
fn prepare_body(&self, page: &mut Page) -> Markup {
|
||||
match page.template() {
|
||||
"admin" => html! {
|
||||
body id=[page.body_id().get()] class=[page.body_classes().get()] {
|
||||
@for region in &[
|
||||
"top-menu",
|
||||
"side-menu",
|
||||
"content"
|
||||
] {
|
||||
(self.prepare_region(page, region))
|
||||
}
|
||||
}
|
||||
},
|
||||
_ => html! {
|
||||
body id=[page.body_id().get()] class=[page.body_classes().get()] {
|
||||
(self.prepare_region(page, "header"))
|
||||
(self.prepare_region(page, "nav_branding"))
|
||||
(self.prepare_region(page, "nav_main"))
|
||||
(self.prepare_region(page, "nav_additional"))
|
||||
(self.prepare_region(page, "breadcrumb"))
|
||||
(self.prepare_region(page, "content"))
|
||||
(self.prepare_region(page, "sidebar_first"))
|
||||
(self.prepare_region(page, "sidebar_second"))
|
||||
(self.prepare_region(page, "footer"))
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
fn after_prepare_body(&self, page: &mut Page) {
|
||||
page.alter_favicon(Some(Favicon::new().with_icon("/base/favicon.ico")))
|
||||
.alter_assets(AssetsOp::AddStyleSheet(
|
||||
|
|
@ -148,6 +112,29 @@ impl ThemeTrait for Bootsier {
|
|||
|
||||
fn render_component(&self, component: &dyn ComponentTrait, cx: &mut Context) -> Option<Markup> {
|
||||
match component.type_id() {
|
||||
t if t == TypeId::of::<Layout>() => Some(
|
||||
match cx.layout() {
|
||||
"admin" => Container::new().add_item(
|
||||
Flex::new()
|
||||
.add_component(Region::named("top-menu"))
|
||||
.add_component(Region::named("side-menu"))
|
||||
.add_component(Region::named("content")),
|
||||
),
|
||||
_ => Container::new().add_item(
|
||||
Flex::new()
|
||||
.add_component(Region::named("header"))
|
||||
.add_component(Region::named("nav_branding"))
|
||||
.add_component(Region::named("nav_main"))
|
||||
.add_component(Region::named("nav_additional"))
|
||||
.add_component(Region::named("breadcrumb"))
|
||||
.add_component(Region::named("content"))
|
||||
.add_component(Region::named("sidebar_first"))
|
||||
.add_component(Region::named("sidebar_second"))
|
||||
.add_component(Region::named("footer")),
|
||||
),
|
||||
}
|
||||
.render(cx),
|
||||
),
|
||||
t if t == TypeId::of::<Error404>() => Some(html! {
|
||||
div class="jumbotron" {
|
||||
div class="media" {
|
||||
|
|
|
|||
|
|
@ -15,16 +15,17 @@ impl PackageTrait for Bulmix {
|
|||
}
|
||||
|
||||
impl ThemeTrait for Bulmix {
|
||||
#[rustfmt::skip]
|
||||
fn builtin_classes(&self, builtin: ThemeBuiltInClasses) -> Option<String> {
|
||||
match builtin {
|
||||
ThemeBuiltInClasses::BodyWrapper => Some(String::from("container")),
|
||||
ThemeBuiltInClasses::ContentWrapper => Some(String::from("container")),
|
||||
ThemeBuiltInClasses::RegionContainer => Some(String::from("container")),
|
||||
_ => Some(builtin.to_string()),
|
||||
/*
|
||||
#[rustfmt::skip]
|
||||
fn builtin_classes(&self, builtin: ThemeBuiltInClasses) -> Option<String> {
|
||||
match builtin {
|
||||
ThemeBuiltInClasses::BodyWrapper => Some(String::from("container")),
|
||||
ThemeBuiltInClasses::FlexWrapper => Some(String::from("container")),
|
||||
ThemeBuiltInClasses::RegionContainer => Some(String::from("container")),
|
||||
_ => Some(builtin.to_string()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
fn after_prepare_body(&self, page: &mut Page) {
|
||||
page.alter_favicon(Some(Favicon::new().with_icon("/base/favicon.ico")))
|
||||
.alter_assets(AssetsOp::AddStyleSheet(
|
||||
|
|
|
|||
|
|
@ -33,9 +33,9 @@ async fn login(request: HttpRequest) -> ResultPage<Markup, ErrorPage> {
|
|||
Page::new(request)
|
||||
.with_title(L10n::n("Identificación del usuario"))
|
||||
.with_component(
|
||||
flex::Container::new()
|
||||
Container::new()
|
||||
.with_id("welcome")
|
||||
.add_item(flex::Item::with(form_login())),
|
||||
.add_item(Flex::with(form_login())),
|
||||
)
|
||||
.render()
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue