🏷️ RenderResources pasa a ser RenderContext
This commit is contained in:
parent
a25a7f4dfa
commit
a73491de70
29 changed files with 151 additions and 151 deletions
|
|
@ -41,7 +41,7 @@ pub async fn summary() -> ResultPage<Markup, FatalError> {
|
||||||
.with_item(MenuItem::label("Opción 4"));
|
.with_item(MenuItem::label("Opción 4"));
|
||||||
|
|
||||||
Page::new()
|
Page::new()
|
||||||
.with_resource(ResourceOp::SetTheme("Bootsier"))
|
.with_context(ContextOp::SetTheme("Bootsier"))
|
||||||
.with_title("Admin")
|
.with_title("Admin")
|
||||||
.add_to("top-menu", top_menu)
|
.add_to("top-menu", top_menu)
|
||||||
.add_to(
|
.add_to(
|
||||||
|
|
|
||||||
|
|
@ -51,12 +51,12 @@ impl ComponentTrait for Anchor {
|
||||||
self.weight
|
self.weight
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_renderable(&self, rsx: &RenderResources) -> bool {
|
fn is_renderable(&self, rcx: &RenderContext) -> bool {
|
||||||
(self.renderable.check)(rsx)
|
(self.renderable.check)(rcx)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[rustfmt::skip]
|
#[rustfmt::skip]
|
||||||
fn default_render(&self, rsx: &mut RenderResources) -> Markup {
|
fn default_render(&self, rcx: &mut RenderContext) -> Markup {
|
||||||
let target = match &self.target() {
|
let target = match &self.target() {
|
||||||
AnchorTarget::Blank => Some("_blank"),
|
AnchorTarget::Blank => Some("_blank"),
|
||||||
AnchorTarget::Parent => Some("_parent"),
|
AnchorTarget::Parent => Some("_parent"),
|
||||||
|
|
@ -71,9 +71,9 @@ impl ComponentTrait for Anchor {
|
||||||
href=[self.href().get()]
|
href=[self.href().get()]
|
||||||
target=[target]
|
target=[target]
|
||||||
{
|
{
|
||||||
(self.left_icon().render(rsx))
|
(self.left_icon().render(rcx))
|
||||||
span { (*self.html()) }
|
span { (*self.html()) }
|
||||||
(self.right_icon().render(rsx))
|
(self.right_icon().render(rcx))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,23 +29,23 @@ impl ComponentTrait for Block {
|
||||||
self.weight
|
self.weight
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_renderable(&self, rsx: &RenderResources) -> bool {
|
fn is_renderable(&self, rcx: &RenderContext) -> bool {
|
||||||
(self.renderable.check)(rsx)
|
(self.renderable.check)(rcx)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn before_render(&mut self, rsx: &mut RenderResources) {
|
fn before_render(&mut self, rcx: &mut RenderContext) {
|
||||||
before_render_inline(self, rsx);
|
before_render_inline(self, rcx);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn default_render(&self, rsx: &mut RenderResources) -> Markup {
|
fn default_render(&self, rcx: &mut RenderContext) -> Markup {
|
||||||
let id = rsx.required_id::<Block>(self.id());
|
let id = rcx.required_id::<Block>(self.id());
|
||||||
html! {
|
html! {
|
||||||
div id=(id) class=[self.classes().get()] {
|
div id=(id) class=[self.classes().get()] {
|
||||||
@if let Some(title) = self.title().get() {
|
@if let Some(title) = self.title().get() {
|
||||||
h2 class="block-title" { (title) }
|
h2 class="block-title" { (title) }
|
||||||
}
|
}
|
||||||
div class="block-body" {
|
div class="block-body" {
|
||||||
(self.components().render(rsx))
|
(self.components().render(rcx))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -42,47 +42,47 @@ impl ComponentTrait for Container {
|
||||||
self.weight
|
self.weight
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_renderable(&self, rsx: &RenderResources) -> bool {
|
fn is_renderable(&self, rcx: &RenderContext) -> bool {
|
||||||
(self.renderable.check)(rsx)
|
(self.renderable.check)(rcx)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn before_render(&mut self, rsx: &mut RenderResources) {
|
fn before_render(&mut self, rcx: &mut RenderContext) {
|
||||||
before_render_inline(self, rsx);
|
before_render_inline(self, rcx);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn default_render(&self, rsx: &mut RenderResources) -> Markup {
|
fn default_render(&self, rcx: &mut RenderContext) -> Markup {
|
||||||
match self.container_type() {
|
match self.container_type() {
|
||||||
ContainerType::Header => html! {
|
ContainerType::Header => html! {
|
||||||
header id=[self.id().get()] class=[self.classes().get()] {
|
header id=[self.id().get()] class=[self.classes().get()] {
|
||||||
div class=[self.inner_classes().get()] {
|
div class=[self.inner_classes().get()] {
|
||||||
(self.components().render(rsx))
|
(self.components().render(rcx))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ContainerType::Footer => html! {
|
ContainerType::Footer => html! {
|
||||||
footer id=[self.id().get()] class=[self.classes().get()] {
|
footer id=[self.id().get()] class=[self.classes().get()] {
|
||||||
div class=[self.inner_classes().get()] {
|
div class=[self.inner_classes().get()] {
|
||||||
(self.components().render(rsx))
|
(self.components().render(rcx))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ContainerType::Main => html! {
|
ContainerType::Main => html! {
|
||||||
main id=[self.id().get()] class=[self.classes().get()] {
|
main id=[self.id().get()] class=[self.classes().get()] {
|
||||||
div class=[self.inner_classes().get()] {
|
div class=[self.inner_classes().get()] {
|
||||||
(self.components().render(rsx))
|
(self.components().render(rcx))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ContainerType::Section => html! {
|
ContainerType::Section => html! {
|
||||||
section id=[self.id().get()] class=[self.classes().get()] {
|
section id=[self.id().get()] class=[self.classes().get()] {
|
||||||
div class=[self.inner_classes().get()] {
|
div class=[self.inner_classes().get()] {
|
||||||
(self.components().render(rsx))
|
(self.components().render(rcx))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
_ => html! {
|
_ => html! {
|
||||||
div id=[self.id().get()] class=[self.classes().get()] {
|
div id=[self.id().get()] class=[self.classes().get()] {
|
||||||
(self.components().render(rsx))
|
(self.components().render(rcx))
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -39,11 +39,11 @@ impl ComponentTrait for Button {
|
||||||
self.weight
|
self.weight
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_renderable(&self, rsx: &RenderResources) -> bool {
|
fn is_renderable(&self, rcx: &RenderContext) -> bool {
|
||||||
(self.renderable.check)(rsx)
|
(self.renderable.check)(rcx)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn default_render(&self, _: &mut RenderResources) -> Markup {
|
fn default_render(&self, _: &mut RenderContext) -> Markup {
|
||||||
let button_type = match self.button_type() {
|
let button_type = match self.button_type() {
|
||||||
ButtonType::Button => "button",
|
ButtonType::Button => "button",
|
||||||
ButtonType::Submit => "submit",
|
ButtonType::Submit => "submit",
|
||||||
|
|
|
||||||
|
|
@ -36,11 +36,11 @@ impl ComponentTrait for Date {
|
||||||
self.weight
|
self.weight
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_renderable(&self, rsx: &RenderResources) -> bool {
|
fn is_renderable(&self, rcx: &RenderContext) -> bool {
|
||||||
(self.renderable.check)(rsx)
|
(self.renderable.check)(rcx)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn default_render(&self, _: &mut RenderResources) -> Markup {
|
fn default_render(&self, _: &mut RenderContext) -> Markup {
|
||||||
let id = self.name().get().map(|name| concat_string!("edit-", name));
|
let id = self.name().get().map(|name| concat_string!("edit-", name));
|
||||||
html! {
|
html! {
|
||||||
div class=[self.classes().get()] {
|
div class=[self.classes().get()] {
|
||||||
|
|
|
||||||
|
|
@ -40,15 +40,15 @@ impl ComponentTrait for Form {
|
||||||
self.weight
|
self.weight
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_renderable(&self, rsx: &RenderResources) -> bool {
|
fn is_renderable(&self, rcx: &RenderContext) -> bool {
|
||||||
(self.renderable.check)(rsx)
|
(self.renderable.check)(rcx)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn before_render(&mut self, rsx: &mut RenderResources) {
|
fn before_render(&mut self, rcx: &mut RenderContext) {
|
||||||
before_render_inline(self, rsx);
|
before_render_inline(self, rcx);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn default_render(&self, rsx: &mut RenderResources) -> Markup {
|
fn default_render(&self, rcx: &mut RenderContext) -> Markup {
|
||||||
let method = match self.method() {
|
let method = match self.method() {
|
||||||
FormMethod::Post => Some("post".to_owned()),
|
FormMethod::Post => Some("post".to_owned()),
|
||||||
FormMethod::Get => None,
|
FormMethod::Get => None,
|
||||||
|
|
@ -61,7 +61,7 @@ impl ComponentTrait for Form {
|
||||||
method=[method]
|
method=[method]
|
||||||
accept-charset=[self.charset().get()]
|
accept-charset=[self.charset().get()]
|
||||||
{
|
{
|
||||||
div { (self.elements().render(rsx)) }
|
div { (self.elements().render(rcx)) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ impl ComponentTrait for Hidden {
|
||||||
self.weight
|
self.weight
|
||||||
}
|
}
|
||||||
|
|
||||||
fn default_render(&self, _: &mut RenderResources) -> Markup {
|
fn default_render(&self, _: &mut RenderContext) -> Markup {
|
||||||
let id = self.name().get().map(|name| concat_string!("value-", name));
|
let id = self.name().get().map(|name| concat_string!("value-", name));
|
||||||
html! {
|
html! {
|
||||||
input type="hidden" id=[id] name=[self.name().get()] value=[self.value().get()];
|
input type="hidden" id=[id] name=[self.name().get()] value=[self.value().get()];
|
||||||
|
|
|
||||||
|
|
@ -53,12 +53,12 @@ impl ComponentTrait for Input {
|
||||||
self.weight
|
self.weight
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_renderable(&self, rsx: &RenderResources) -> bool {
|
fn is_renderable(&self, rcx: &RenderContext) -> bool {
|
||||||
(self.renderable.check)(rsx)
|
(self.renderable.check)(rcx)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[rustfmt::skip]
|
#[rustfmt::skip]
|
||||||
fn default_render(&self, _: &mut RenderResources) -> Markup {
|
fn default_render(&self, _: &mut RenderContext) -> Markup {
|
||||||
let type_input = match self.input_type() {
|
let type_input = match self.input_type() {
|
||||||
InputType::Textfield => "text",
|
InputType::Textfield => "text",
|
||||||
InputType::Password => "password",
|
InputType::Password => "password",
|
||||||
|
|
|
||||||
|
|
@ -61,18 +61,18 @@ impl ComponentTrait for Column {
|
||||||
self.weight
|
self.weight
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_renderable(&self, rsx: &RenderResources) -> bool {
|
fn is_renderable(&self, rcx: &RenderContext) -> bool {
|
||||||
(self.renderable.check)(rsx)
|
(self.renderable.check)(rcx)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn before_render(&mut self, rsx: &mut RenderResources) {
|
fn before_render(&mut self, rcx: &mut RenderContext) {
|
||||||
before_render_inline(self, rsx);
|
before_render_inline(self, rcx);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn default_render(&self, rsx: &mut RenderResources) -> Markup {
|
fn default_render(&self, rcx: &mut RenderContext) -> Markup {
|
||||||
html! {
|
html! {
|
||||||
div id=[self.id().get()] class=[self.classes().get()] {
|
div id=[self.id().get()] class=[self.classes().get()] {
|
||||||
(self.components().render(rsx))
|
(self.components().render(rcx))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,18 +28,18 @@ impl ComponentTrait for Row {
|
||||||
self.weight
|
self.weight
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_renderable(&self, rsx: &RenderResources) -> bool {
|
fn is_renderable(&self, rcx: &RenderContext) -> bool {
|
||||||
(self.renderable.check)(rsx)
|
(self.renderable.check)(rcx)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn before_render(&mut self, rsx: &mut RenderResources) {
|
fn before_render(&mut self, rcx: &mut RenderContext) {
|
||||||
before_render_inline(self, rsx);
|
before_render_inline(self, rcx);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn default_render(&self, rsx: &mut RenderResources) -> Markup {
|
fn default_render(&self, rcx: &mut RenderContext) -> Markup {
|
||||||
html! {
|
html! {
|
||||||
div id=[self.id().get()] class=[self.classes().get()] {
|
div id=[self.id().get()] class=[self.classes().get()] {
|
||||||
(self.columns().render(rsx))
|
(self.columns().render(rcx))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -51,11 +51,11 @@ impl ComponentTrait for Heading {
|
||||||
self.weight
|
self.weight
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_renderable(&self, rsx: &RenderResources) -> bool {
|
fn is_renderable(&self, rcx: &RenderContext) -> bool {
|
||||||
(self.renderable.check)(rsx)
|
(self.renderable.check)(rcx)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn default_render(&self, _: &mut RenderResources) -> Markup {
|
fn default_render(&self, _: &mut RenderContext) -> Markup {
|
||||||
let id = self.id().get();
|
let id = self.id().get();
|
||||||
let classes = self.classes().get();
|
let classes = self.classes().get();
|
||||||
html! { @match &self.heading_type() {
|
html! { @match &self.heading_type() {
|
||||||
|
|
|
||||||
|
|
@ -24,11 +24,11 @@ impl ComponentTrait for Html {
|
||||||
self.weight
|
self.weight
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_renderable(&self, rsx: &RenderResources) -> bool {
|
fn is_renderable(&self, rcx: &RenderContext) -> bool {
|
||||||
(self.renderable.check)(rsx)
|
(self.renderable.check)(rcx)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn default_render(&self, _: &mut RenderResources) -> Markup {
|
fn default_render(&self, _: &mut RenderContext) -> Markup {
|
||||||
html! { (*self.html()) }
|
html! { (*self.html()) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,17 +24,17 @@ impl ComponentTrait for Icon {
|
||||||
self.weight
|
self.weight
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_renderable(&self, rsx: &RenderResources) -> bool {
|
fn is_renderable(&self, rcx: &RenderContext) -> bool {
|
||||||
(self.renderable.check)(rsx)
|
(self.renderable.check)(rcx)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn before_render(&mut self, rsx: &mut RenderResources) {
|
fn before_render(&mut self, rcx: &mut RenderContext) {
|
||||||
rsx.alter(ResourceOp::AddStyleSheet(
|
rcx.alter(ContextOp::AddStyleSheet(
|
||||||
StyleSheet::located("/theme/icons/bootstrap-icons.css").with_version("1.8.2"),
|
StyleSheet::located("/theme/icons/bootstrap-icons.css").with_version("1.8.2"),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
fn default_render(&self, _: &mut RenderResources) -> Markup {
|
fn default_render(&self, _: &mut RenderContext) -> Markup {
|
||||||
html! { i class=[self.classes().get()] {}; }
|
html! { i class=[self.classes().get()] {}; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,11 +26,11 @@ impl ComponentTrait for Image {
|
||||||
self.weight
|
self.weight
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_renderable(&self, rsx: &RenderResources) -> bool {
|
fn is_renderable(&self, rcx: &RenderContext) -> bool {
|
||||||
(self.renderable.check)(rsx)
|
(self.renderable.check)(rcx)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn default_render(&self, _: &mut RenderResources) -> Markup {
|
fn default_render(&self, _: &mut RenderContext) -> Markup {
|
||||||
html! {
|
html! {
|
||||||
img
|
img
|
||||||
src=[self.source().get()]
|
src=[self.source().get()]
|
||||||
|
|
|
||||||
|
|
@ -37,11 +37,11 @@ impl ComponentTrait for MenuItem {
|
||||||
self.weight
|
self.weight
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_renderable(&self, rsx: &RenderResources) -> bool {
|
fn is_renderable(&self, rcx: &RenderContext) -> bool {
|
||||||
(self.renderable.check)(rsx)
|
(self.renderable.check)(rcx)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn default_render(&self, rsx: &mut RenderResources) -> Markup {
|
fn default_render(&self, rcx: &mut RenderContext) -> Markup {
|
||||||
match self.item_type() {
|
match self.item_type() {
|
||||||
MenuItemType::Void => html! {},
|
MenuItemType::Void => html! {},
|
||||||
|
|
||||||
|
|
@ -63,7 +63,7 @@ impl ComponentTrait for MenuItem {
|
||||||
li class="submenu" {
|
li class="submenu" {
|
||||||
a href="#" { (label) }
|
a href="#" { (label) }
|
||||||
ul {
|
ul {
|
||||||
(menu.items().render(rsx))
|
(menu.items().render(rcx))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -186,31 +186,31 @@ impl ComponentTrait for Menu {
|
||||||
self.weight
|
self.weight
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_renderable(&self, rsx: &RenderResources) -> bool {
|
fn is_renderable(&self, rcx: &RenderContext) -> bool {
|
||||||
(self.renderable.check)(rsx)
|
(self.renderable.check)(rcx)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn before_render(&mut self, rsx: &mut RenderResources) {
|
fn before_render(&mut self, rcx: &mut RenderContext) {
|
||||||
before_render_inline(self, rsx);
|
before_render_inline(self, rcx);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn default_render(&self, rsx: &mut RenderResources) -> Markup {
|
fn default_render(&self, rcx: &mut RenderContext) -> Markup {
|
||||||
rsx.alter(ResourceOp::AddStyleSheet(
|
rcx.alter(ContextOp::AddStyleSheet(
|
||||||
StyleSheet::located("/theme/menu/css/menu.css").with_version("1.1.1"),
|
StyleSheet::located("/theme/menu/css/menu.css").with_version("1.1.1"),
|
||||||
))
|
))
|
||||||
.alter(ResourceOp::AddStyleSheet(
|
.alter(ContextOp::AddStyleSheet(
|
||||||
StyleSheet::located("/theme/menu/css/menu-clean.css").with_version("1.1.1"),
|
StyleSheet::located("/theme/menu/css/menu-clean.css").with_version("1.1.1"),
|
||||||
))
|
))
|
||||||
.alter(ResourceOp::AddJavaScript(
|
.alter(ContextOp::AddJavaScript(
|
||||||
JavaScript::located("/theme/menu/js/menu.min.js").with_version("1.1.1"),
|
JavaScript::located("/theme/menu/js/menu.min.js").with_version("1.1.1"),
|
||||||
))
|
))
|
||||||
.alter(ResourceOp::AddJQuery);
|
.alter(ContextOp::AddJQuery);
|
||||||
|
|
||||||
let id = rsx.required_id::<Menu>(self.id());
|
let id = rcx.required_id::<Menu>(self.id());
|
||||||
|
|
||||||
html! {
|
html! {
|
||||||
ul id=(id) class=[self.classes().get()] {
|
ul id=(id) class=[self.classes().get()] {
|
||||||
(self.items().render(rsx))
|
(self.items().render(rcx))
|
||||||
}
|
}
|
||||||
script type="text/javascript" defer {
|
script type="text/javascript" defer {
|
||||||
"jQuery(function(){jQuery('#" (id) "').smartmenus({"
|
"jQuery(function(){jQuery('#" (id) "').smartmenus({"
|
||||||
|
|
|
||||||
|
|
@ -38,17 +38,17 @@ impl ComponentTrait for Paragraph {
|
||||||
self.weight
|
self.weight
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_renderable(&self, rsx: &RenderResources) -> bool {
|
fn is_renderable(&self, rcx: &RenderContext) -> bool {
|
||||||
(self.renderable.check)(rsx)
|
(self.renderable.check)(rcx)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn default_render(&self, rsx: &mut RenderResources) -> Markup {
|
fn default_render(&self, rcx: &mut RenderContext) -> Markup {
|
||||||
html! {
|
html! {
|
||||||
p
|
p
|
||||||
id=[self.id().get()]
|
id=[self.id().get()]
|
||||||
class=[self.classes().get()]
|
class=[self.classes().get()]
|
||||||
{
|
{
|
||||||
(self.components().render(rsx))
|
(self.components().render(rcx))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ impl ModuleTrait for DefaultHomePage {
|
||||||
async fn demo() -> ResultPage<Markup, FatalError> {
|
async fn demo() -> ResultPage<Markup, FatalError> {
|
||||||
Page::new()
|
Page::new()
|
||||||
.with_title(l("page_title").as_str())
|
.with_title(l("page_title").as_str())
|
||||||
.with_resource(ResourceOp::AddStyleSheet(StyleSheet::located(
|
.with_context(ContextOp::AddStyleSheet(StyleSheet::located(
|
||||||
"/theme/module/homepage/styles.css",
|
"/theme/module/homepage/styles.css",
|
||||||
)))
|
)))
|
||||||
.with_body_classes(ClassesOp::AddFirst, "default-homepage")
|
.with_body_classes(ClassesOp::AddFirst, "default-homepage")
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ impl ThemeTrait for Aliner {
|
||||||
|
|
||||||
fn before_render_page(&self, page: &mut Page) {
|
fn before_render_page(&self, page: &mut Page) {
|
||||||
page.alter_favicon(Some(Favicon::new().with_icon("/theme/favicon.ico")))
|
page.alter_favicon(Some(Favicon::new().with_icon("/theme/favicon.ico")))
|
||||||
.alter_resource(ResourceOp::AddStyleSheet(
|
.alter_context(ContextOp::AddStyleSheet(
|
||||||
StyleSheet::located("/aliner/css/styles.css").with_weight(-99),
|
StyleSheet::located("/aliner/css/styles.css").with_weight(-99),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,17 +19,17 @@ impl ThemeTrait for Bootsier {
|
||||||
|
|
||||||
fn before_render_page(&self, page: &mut Page) {
|
fn before_render_page(&self, page: &mut Page) {
|
||||||
page.alter_favicon(Some(Favicon::new().with_icon("/theme/favicon.ico")))
|
page.alter_favicon(Some(Favicon::new().with_icon("/theme/favicon.ico")))
|
||||||
.alter_resource(ResourceOp::AddStyleSheet(
|
.alter_context(ContextOp::AddStyleSheet(
|
||||||
StyleSheet::located("/bootsier/css/bootstrap.min.css")
|
StyleSheet::located("/bootsier/css/bootstrap.min.css")
|
||||||
.with_version("5.1.3")
|
.with_version("5.1.3")
|
||||||
.with_weight(-99),
|
.with_weight(-99),
|
||||||
))
|
))
|
||||||
.alter_resource(ResourceOp::AddJavaScript(
|
.alter_context(ContextOp::AddJavaScript(
|
||||||
JavaScript::located("/bootsier/js/bootstrap.bundle.min.js")
|
JavaScript::located("/bootsier/js/bootstrap.bundle.min.js")
|
||||||
.with_version("5.1.3")
|
.with_version("5.1.3")
|
||||||
.with_weight(-99),
|
.with_weight(-99),
|
||||||
))
|
))
|
||||||
.alter_resource(ResourceOp::AddJQuery);
|
.alter_context(ContextOp::AddJQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn error_404_not_found(&self) -> Container {
|
fn error_404_not_found(&self) -> Container {
|
||||||
|
|
|
||||||
|
|
@ -17,19 +17,19 @@ impl ThemeTrait for Bulmix {
|
||||||
|
|
||||||
fn before_render_page(&self, page: &mut Page) {
|
fn before_render_page(&self, page: &mut Page) {
|
||||||
page.alter_favicon(Some(Favicon::new().with_icon("/theme/favicon.ico")))
|
page.alter_favicon(Some(Favicon::new().with_icon("/theme/favicon.ico")))
|
||||||
.alter_resource(ResourceOp::AddStyleSheet(
|
.alter_context(ContextOp::AddStyleSheet(
|
||||||
StyleSheet::located("/bulmix/css/bulma.min.css")
|
StyleSheet::located("/bulmix/css/bulma.min.css")
|
||||||
.with_version("0.9.4")
|
.with_version("0.9.4")
|
||||||
.with_weight(-99),
|
.with_weight(-99),
|
||||||
))
|
))
|
||||||
.alter_resource(ResourceOp::AddJQuery);
|
.alter_context(ContextOp::AddJQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[rustfmt::skip]
|
#[rustfmt::skip]
|
||||||
fn before_render_component(
|
fn before_render_component(
|
||||||
&self,
|
&self,
|
||||||
component: &mut dyn ComponentTrait,
|
component: &mut dyn ComponentTrait,
|
||||||
_rsx: &mut RenderResources,
|
_rcx: &mut RenderContext,
|
||||||
) {
|
) {
|
||||||
match component.handle() {
|
match component.handle() {
|
||||||
COMPONENT_ANCHOR => {
|
COMPONENT_ANCHOR => {
|
||||||
|
|
@ -108,7 +108,7 @@ impl ThemeTrait for Bulmix {
|
||||||
fn render_component(
|
fn render_component(
|
||||||
&self,
|
&self,
|
||||||
component: &dyn ComponentTrait,
|
component: &dyn ComponentTrait,
|
||||||
_rsx: &mut RenderResources,
|
_rcx: &mut RenderContext,
|
||||||
) -> Option<Markup> {
|
) -> Option<Markup> {
|
||||||
match component.handle() {
|
match component.handle() {
|
||||||
COMPONENT_ICON => {
|
COMPONENT_ICON => {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
mod resources;
|
mod context;
|
||||||
pub use resources::{RenderResources, ResourceOp};
|
pub use context::{RenderContext, ContextOp};
|
||||||
|
|
||||||
mod definition;
|
mod definition;
|
||||||
pub use definition::{component_mut, component_ref, AnyComponent, BaseComponent, ComponentTrait};
|
pub use definition::{component_mut, component_ref, AnyComponent, BaseComponent, ComponentTrait};
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
use super::{ComponentTrait, RenderResources};
|
use super::{ComponentTrait, RenderContext};
|
||||||
|
|
||||||
use crate::html::{html, Markup};
|
use crate::html::{html, Markup};
|
||||||
|
|
||||||
|
|
@ -26,12 +26,12 @@ impl ComponentsBundle {
|
||||||
self.0.clear();
|
self.0.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn render(&self, rsx: &mut RenderResources) -> Markup {
|
pub fn render(&self, rcx: &mut RenderContext) -> Markup {
|
||||||
let mut components = self.0.clone();
|
let mut components = self.0.clone();
|
||||||
components.sort_by_key(|c| c.read().unwrap().weight());
|
components.sort_by_key(|c| c.read().unwrap().weight());
|
||||||
html! {
|
html! {
|
||||||
@for c in components.iter() {
|
@for c in components.iter() {
|
||||||
(" ")(c.write().unwrap().render(rsx))(" ")
|
(" ")(c.write().unwrap().render(rcx))(" ")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ static DEFAULT_THEME: LazyStatic<ThemeStaticRef> =
|
||||||
None => &base::theme::bootsier::Bootsier,
|
None => &base::theme::bootsier::Bootsier,
|
||||||
});
|
});
|
||||||
|
|
||||||
pub enum ResourceOp {
|
pub enum ContextOp {
|
||||||
SetTheme(&'static str),
|
SetTheme(&'static str),
|
||||||
AddStyleSheet(StyleSheet),
|
AddStyleSheet(StyleSheet),
|
||||||
RemoveStyleSheet(&'static str),
|
RemoveStyleSheet(&'static str),
|
||||||
|
|
@ -18,7 +18,7 @@ pub enum ResourceOp {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[rustfmt::skip]
|
#[rustfmt::skip]
|
||||||
pub struct RenderResources {
|
pub struct RenderContext {
|
||||||
theme : ThemeStaticRef,
|
theme : ThemeStaticRef,
|
||||||
stylesheets: Assets<StyleSheet>,
|
stylesheets: Assets<StyleSheet>,
|
||||||
javascripts: Assets<JavaScript>,
|
javascripts: Assets<JavaScript>,
|
||||||
|
|
@ -26,10 +26,10 @@ pub struct RenderResources {
|
||||||
id_counter : usize,
|
id_counter : usize,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for RenderResources {
|
impl Default for RenderContext {
|
||||||
#[rustfmt::skip]
|
#[rustfmt::skip]
|
||||||
fn default() -> Self {
|
fn default() -> Self {
|
||||||
RenderResources {
|
RenderContext {
|
||||||
theme : *DEFAULT_THEME,
|
theme : *DEFAULT_THEME,
|
||||||
stylesheets: Assets::<StyleSheet>::new(),
|
stylesheets: Assets::<StyleSheet>::new(),
|
||||||
javascripts: Assets::<JavaScript>::new(),
|
javascripts: Assets::<JavaScript>::new(),
|
||||||
|
|
@ -39,29 +39,29 @@ impl Default for RenderResources {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl RenderResources {
|
impl RenderContext {
|
||||||
pub fn new() -> Self {
|
pub fn new() -> Self {
|
||||||
RenderResources::default()
|
RenderContext::default()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn alter(&mut self, op: ResourceOp) -> &mut Self {
|
pub fn alter(&mut self, op: ContextOp) -> &mut Self {
|
||||||
match op {
|
match op {
|
||||||
ResourceOp::SetTheme(theme_name) => {
|
ContextOp::SetTheme(theme_name) => {
|
||||||
self.theme = theme_by_single_name(theme_name).unwrap_or(*DEFAULT_THEME);
|
self.theme = theme_by_single_name(theme_name).unwrap_or(*DEFAULT_THEME);
|
||||||
}
|
}
|
||||||
ResourceOp::AddStyleSheet(css) => {
|
ContextOp::AddStyleSheet(css) => {
|
||||||
self.stylesheets.add(css);
|
self.stylesheets.add(css);
|
||||||
}
|
}
|
||||||
ResourceOp::RemoveStyleSheet(source) => {
|
ContextOp::RemoveStyleSheet(source) => {
|
||||||
self.stylesheets.remove(source);
|
self.stylesheets.remove(source);
|
||||||
}
|
}
|
||||||
ResourceOp::AddJavaScript(js) => {
|
ContextOp::AddJavaScript(js) => {
|
||||||
self.javascripts.add(js);
|
self.javascripts.add(js);
|
||||||
}
|
}
|
||||||
ResourceOp::RemoveJavaScript(source) => {
|
ContextOp::RemoveJavaScript(source) => {
|
||||||
self.javascripts.remove(source);
|
self.javascripts.remove(source);
|
||||||
}
|
}
|
||||||
ResourceOp::AddJQuery => {
|
ContextOp::AddJQuery => {
|
||||||
if !self.with_jquery {
|
if !self.with_jquery {
|
||||||
self.javascripts.add(
|
self.javascripts.add(
|
||||||
JavaScript::located("/theme/js/jquery.min.js")
|
JavaScript::located("/theme/js/jquery.min.js")
|
||||||
|
|
@ -76,13 +76,13 @@ impl RenderResources {
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Resources GETTERS.
|
/// Context GETTERS.
|
||||||
|
|
||||||
pub(crate) fn theme(&mut self) -> ThemeStaticRef {
|
pub(crate) fn theme(&mut self) -> ThemeStaticRef {
|
||||||
self.theme
|
self.theme
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Resources RENDER.
|
/// Context RENDER.
|
||||||
|
|
||||||
pub fn render(&mut self) -> Markup {
|
pub fn render(&mut self) -> Markup {
|
||||||
html! {
|
html! {
|
||||||
|
|
@ -91,7 +91,7 @@ impl RenderResources {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Resources EXTRAS.
|
// Context EXTRAS.
|
||||||
|
|
||||||
pub fn required_id<T>(&mut self, id: &IdentifierValue) -> String {
|
pub fn required_id<T>(&mut self, id: &IdentifierValue) -> String {
|
||||||
match id.get() {
|
match id.get() {
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
use super::RenderResources;
|
use super::RenderContext;
|
||||||
|
|
||||||
use crate::html::{html, Markup};
|
use crate::html::{html, Markup};
|
||||||
use crate::util::{single_type_name, Handle};
|
use crate::util::{single_type_name, Handle};
|
||||||
|
|
@ -6,7 +6,7 @@ use crate::util::{single_type_name, Handle};
|
||||||
pub use std::any::Any as AnyComponent;
|
pub use std::any::Any as AnyComponent;
|
||||||
|
|
||||||
pub trait BaseComponent {
|
pub trait BaseComponent {
|
||||||
fn render(&mut self, rsx: &mut RenderResources) -> Markup;
|
fn render(&mut self, rcx: &mut RenderContext) -> Markup;
|
||||||
}
|
}
|
||||||
|
|
||||||
pub trait ComponentTrait: AnyComponent + BaseComponent + Send + Sync {
|
pub trait ComponentTrait: AnyComponent + BaseComponent + Send + Sync {
|
||||||
|
|
@ -29,15 +29,15 @@ pub trait ComponentTrait: AnyComponent + BaseComponent + Send + Sync {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(unused_variables)]
|
#[allow(unused_variables)]
|
||||||
fn is_renderable(&self, rsx: &RenderResources) -> bool {
|
fn is_renderable(&self, rcx: &RenderContext) -> bool {
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(unused_variables)]
|
#[allow(unused_variables)]
|
||||||
fn before_render(&mut self, rsx: &mut RenderResources) {}
|
fn before_render(&mut self, rcx: &mut RenderContext) {}
|
||||||
|
|
||||||
#[allow(unused_variables)]
|
#[allow(unused_variables)]
|
||||||
fn default_render(&self, rsx: &mut RenderResources) -> Markup {
|
fn default_render(&self, rcx: &mut RenderContext) -> Markup {
|
||||||
html! {}
|
html! {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -47,17 +47,17 @@ pub trait ComponentTrait: AnyComponent + BaseComponent + Send + Sync {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<C: ComponentTrait> BaseComponent for C {
|
impl<C: ComponentTrait> BaseComponent for C {
|
||||||
fn render(&mut self, rsx: &mut RenderResources) -> Markup {
|
fn render(&mut self, rcx: &mut RenderContext) -> Markup {
|
||||||
// Acciones del componente antes de renderizar.
|
// Acciones del componente antes de renderizar.
|
||||||
self.before_render(rsx);
|
self.before_render(rcx);
|
||||||
|
|
||||||
// Acciones del tema antes de renderizar el componente.
|
// Acciones del tema antes de renderizar el componente.
|
||||||
rsx.theme().before_render_component(self, rsx);
|
rcx.theme().before_render_component(self, rcx);
|
||||||
|
|
||||||
match self.is_renderable(rsx) {
|
match self.is_renderable(rcx) {
|
||||||
true => match rsx.theme().render_component(self, rsx) {
|
true => match rcx.theme().render_component(self, rcx) {
|
||||||
Some(html) => html,
|
Some(html) => html,
|
||||||
None => self.default_render(rsx),
|
None => self.default_render(rcx),
|
||||||
},
|
},
|
||||||
false => html! {},
|
false => html! {},
|
||||||
}
|
}
|
||||||
|
|
@ -78,7 +78,7 @@ macro_rules! hook_before_render_component {
|
||||||
paste::paste! {
|
paste::paste! {
|
||||||
$crate::pub_handle!($ACTION_HANDLE);
|
$crate::pub_handle!($ACTION_HANDLE);
|
||||||
|
|
||||||
type Action = fn(&$Component, &mut RenderResources);
|
type Action = fn(&$Component, &mut RenderContext);
|
||||||
|
|
||||||
pub struct [< BeforeRender $Component >] {
|
pub struct [< BeforeRender $Component >] {
|
||||||
action: Option<Action>,
|
action: Option<Action>,
|
||||||
|
|
@ -119,18 +119,18 @@ macro_rules! hook_before_render_component {
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn run(&self, component: &mut $Component, rsx: &mut RenderResources) {
|
pub fn run(&self, component: &mut $Component, rcx: &mut RenderContext) {
|
||||||
if let Some(action) = self.action {
|
if let Some(action) = self.action {
|
||||||
action(component, rsx)
|
action(component, rcx)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
fn before_render_inline(component: &mut $Component, rsx: &mut RenderResources) {
|
fn before_render_inline(component: &mut $Component, rcx: &mut RenderContext) {
|
||||||
run_actions($ACTION_HANDLE, |action|
|
run_actions($ACTION_HANDLE, |action|
|
||||||
action_ref::<[< BeforeRender $Component >]>(&**action)
|
action_ref::<[< BeforeRender $Component >]>(&**action)
|
||||||
.run(component, rsx)
|
.run(component, rcx)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
use crate::core::component::RenderResources;
|
use crate::core::component::RenderContext;
|
||||||
|
|
||||||
pub type IsRenderable = fn(&RenderResources) -> bool;
|
pub type IsRenderable = fn(&RenderContext) -> bool;
|
||||||
|
|
||||||
pub struct Renderable {
|
pub struct Renderable {
|
||||||
pub check: IsRenderable,
|
pub check: IsRenderable,
|
||||||
|
|
@ -14,6 +14,6 @@ impl Default for Renderable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn render_always(_: &RenderResources) -> bool {
|
fn render_always(_: &RenderContext) -> bool {
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
use crate::base::component::{Container, Html};
|
use crate::base::component::{Container, Html};
|
||||||
use crate::core::component::{ComponentTrait, RenderResources};
|
use crate::core::component::{ComponentTrait, RenderContext};
|
||||||
use crate::html::{html, Favicon, Markup};
|
use crate::html::{html, Favicon, Markup};
|
||||||
use crate::response::page::Page;
|
use crate::response::page::Page;
|
||||||
use crate::util::{single_type_name, Handle};
|
use crate::util::{single_type_name, Handle};
|
||||||
|
|
@ -64,7 +64,7 @@ pub trait ThemeTrait: BaseTheme + Send + Sync {
|
||||||
(f.render())
|
(f.render())
|
||||||
}
|
}
|
||||||
|
|
||||||
(page.resources().render())
|
(page.context().render())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -96,7 +96,7 @@ pub trait ThemeTrait: BaseTheme + Send + Sync {
|
||||||
fn before_render_component(
|
fn before_render_component(
|
||||||
&self,
|
&self,
|
||||||
component: &mut dyn ComponentTrait,
|
component: &mut dyn ComponentTrait,
|
||||||
rsx: &mut RenderResources,
|
rcx: &mut RenderContext,
|
||||||
) {
|
) {
|
||||||
/*
|
/*
|
||||||
Cómo usarlo:
|
Cómo usarlo:
|
||||||
|
|
@ -116,7 +116,7 @@ pub trait ThemeTrait: BaseTheme + Send + Sync {
|
||||||
fn render_component(
|
fn render_component(
|
||||||
&self,
|
&self,
|
||||||
component: &dyn ComponentTrait,
|
component: &dyn ComponentTrait,
|
||||||
rsx: &mut RenderResources,
|
rcx: &mut RenderContext,
|
||||||
) -> Option<Markup> {
|
) -> Option<Markup> {
|
||||||
None
|
None
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ impl fmt::Display for FatalError {
|
||||||
// Error 403.
|
// Error 403.
|
||||||
FatalError::AccessDenied => {
|
FatalError::AccessDenied => {
|
||||||
let mut error_page = Page::new();
|
let mut error_page = Page::new();
|
||||||
let error_content = error_page.resources().theme().error_403_access_denied();
|
let error_content = error_page.context().theme().error_403_access_denied();
|
||||||
if let Ok(page) = error_page
|
if let Ok(page) = error_page
|
||||||
.with_title("Error FORBIDDEN")
|
.with_title("Error FORBIDDEN")
|
||||||
.using_template("error")
|
.using_template("error")
|
||||||
|
|
@ -40,7 +40,7 @@ impl fmt::Display for FatalError {
|
||||||
// Error 404.
|
// Error 404.
|
||||||
FatalError::NotFound => {
|
FatalError::NotFound => {
|
||||||
let mut error_page = Page::new();
|
let mut error_page = Page::new();
|
||||||
let error_content = error_page.resources().theme().error_404_not_found();
|
let error_content = error_page.context().theme().error_404_not_found();
|
||||||
if let Ok(page) = error_page
|
if let Ok(page) = error_page
|
||||||
.with_title("Error RESOURCE NOT FOUND")
|
.with_title("Error RESOURCE NOT FOUND")
|
||||||
.using_template("error")
|
.using_template("error")
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ pub struct Page {
|
||||||
metadata : Vec<(&'static str, &'static str)>,
|
metadata : Vec<(&'static str, &'static str)>,
|
||||||
properties : Vec<(&'static str, &'static str)>,
|
properties : Vec<(&'static str, &'static str)>,
|
||||||
favicon : Option<Favicon>,
|
favicon : Option<Favicon>,
|
||||||
resources : RenderResources,
|
context : RenderContext,
|
||||||
body_classes: Classes,
|
body_classes: Classes,
|
||||||
regions : HashMap<&'static str, ComponentsBundle>,
|
regions : HashMap<&'static str, ComponentsBundle>,
|
||||||
template : String,
|
template : String,
|
||||||
|
|
@ -73,7 +73,7 @@ impl Default for Page {
|
||||||
metadata : Vec::new(),
|
metadata : Vec::new(),
|
||||||
properties : Vec::new(),
|
properties : Vec::new(),
|
||||||
favicon : None,
|
favicon : None,
|
||||||
resources : RenderResources::new(),
|
context : RenderContext::new(),
|
||||||
body_classes: Classes::new().with_value(ClassesOp::SetDefault, "body"),
|
body_classes: Classes::new().with_value(ClassesOp::SetDefault, "body"),
|
||||||
regions : common_components(),
|
regions : common_components(),
|
||||||
template : "default".to_owned(),
|
template : "default".to_owned(),
|
||||||
|
|
@ -123,8 +123,8 @@ impl Page {
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn with_resource(mut self, op: ResourceOp) -> Self {
|
pub fn with_context(mut self, op: ContextOp) -> Self {
|
||||||
self.alter_resource(op);
|
self.alter_context(op);
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -189,8 +189,8 @@ impl Page {
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn alter_resource(&mut self, op: ResourceOp) -> &mut Self {
|
pub fn alter_context(&mut self, op: ContextOp) -> &mut Self {
|
||||||
self.resources.alter(op);
|
self.context.alter(op);
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -234,8 +234,8 @@ impl Page {
|
||||||
&self.favicon
|
&self.favicon
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn resources(&mut self) -> &mut RenderResources {
|
pub fn context(&mut self) -> &mut RenderContext {
|
||||||
&mut self.resources
|
&mut self.context
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn body_classes(&self) -> &Classes {
|
pub fn body_classes(&self) -> &Classes {
|
||||||
|
|
@ -255,13 +255,13 @@ impl Page {
|
||||||
});
|
});
|
||||||
|
|
||||||
// Acciones del tema antes de renderizar la página.
|
// Acciones del tema antes de renderizar la página.
|
||||||
self.resources.theme().before_render_page(self);
|
self.context.theme().before_render_page(self);
|
||||||
|
|
||||||
// Primero, renderizar el cuerpo.
|
// Primero, renderizar el cuerpo.
|
||||||
let body = self.resources.theme().render_page_body(self);
|
let body = self.context.theme().render_page_body(self);
|
||||||
|
|
||||||
// Luego, renderizar la cabecera.
|
// Luego, renderizar la cabecera.
|
||||||
let head = self.resources.theme().render_page_head(self);
|
let head = self.context.theme().render_page_head(self);
|
||||||
|
|
||||||
// Finalmente, renderizar la página.
|
// Finalmente, renderizar la página.
|
||||||
Ok(html! {
|
Ok(html! {
|
||||||
|
|
@ -275,7 +275,7 @@ impl Page {
|
||||||
|
|
||||||
pub fn render_region(&mut self, region: &str) -> Option<Markup> {
|
pub fn render_region(&mut self, region: &str) -> Option<Markup> {
|
||||||
match self.regions.get_mut(region) {
|
match self.regions.get_mut(region) {
|
||||||
Some(components) => Some(components.render(&mut self.resources)),
|
Some(components) => Some(components.render(&mut self.context)),
|
||||||
None => None,
|
None => None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue