diff --git a/pagetop/src/api/component/action.rs b/pagetop/src/api/component/action.rs index 34f1cc57..9e372570 100644 --- a/pagetop/src/api/component/action.rs +++ b/pagetop/src/api/component/action.rs @@ -1,10 +1,10 @@ use crate::api::action::{ActionTrait, AnyAction}; -use super::{ComponentTrait, PageAssets}; +use super::{Assets, ComponentTrait}; pub const ACTION_BEFORE_RENDER_COMPONENT: &str = "pagetop::render::before_render_component"; pub struct ActionBeforeRenderComponent { - action: Option, + action: Option, weight: isize, } @@ -30,7 +30,7 @@ impl ActionTrait for ActionBeforeRenderComponent { } impl ActionBeforeRenderComponent { - pub fn with_action(mut self, action: fn(&mut dyn ComponentTrait, &mut PageAssets)) -> Self { + pub fn with_action(mut self, action: fn(&mut dyn ComponentTrait, &mut Assets)) -> Self { self.action = Some(action); self } @@ -40,7 +40,7 @@ impl ActionBeforeRenderComponent { self } - pub fn run(&self, component: &mut dyn ComponentTrait, assets: &mut PageAssets) { + pub fn run(&self, component: &mut dyn ComponentTrait, assets: &mut Assets) { if let Some(action) = self.action { action(component, assets) } diff --git a/pagetop/src/api/component/assets.rs b/pagetop/src/api/component/assets.rs index c7faf1bc..4801ada2 100644 --- a/pagetop/src/api/component/assets.rs +++ b/pagetop/src/api/component/assets.rs @@ -173,7 +173,7 @@ impl JavaScript { // Page assets. -pub struct PageAssets { +pub struct Assets { theme : &'static dyn ThemeTrait, favicon : Option, metadata : Vec<(String, String)>, @@ -183,9 +183,9 @@ pub struct PageAssets { id_counter : usize, } -impl PageAssets { +impl Assets { pub fn new() -> Self { - PageAssets { + Assets { theme : *DEFAULT_THEME, favicon : None, metadata : Vec::new(), diff --git a/pagetop/src/api/component/definition.rs b/pagetop/src/api/component/definition.rs index a7e6decb..61893243 100644 --- a/pagetop/src/api/component/definition.rs +++ b/pagetop/src/api/component/definition.rs @@ -2,7 +2,7 @@ use crate::html::{Markup, html}; use crate::api::action::{action_ref, run_actions}; use crate::util; use super::{ACTION_BEFORE_RENDER_COMPONENT, ActionBeforeRenderComponent}; -use super::PageAssets; +use super::Assets; pub use std::any::Any as AnyComponent; @@ -35,11 +35,11 @@ pub trait ComponentTrait: AnyComponent + BaseComponent + Send + Sync { } #[allow(unused_variables)] - fn before_render(&mut self, assets: &mut PageAssets) { + fn before_render(&mut self, assets: &mut Assets) { } #[allow(unused_variables)] - fn default_render(&self, assets: &mut PageAssets) -> Markup { + fn default_render(&self, assets: &mut Assets) -> Markup { html! {} } @@ -70,7 +70,7 @@ pub fn component_mut(component: &mut dyn ComponentTrait) -> &mut C { component.as_mut_any().downcast_mut::().unwrap() } -pub fn render_component(component: &mut dyn ComponentTrait, assets: &mut PageAssets) -> Markup { +pub fn render_component(component: &mut dyn ComponentTrait, assets: &mut Assets) -> Markup { // Acciones del componente antes de renderizar. component.before_render(assets); diff --git a/pagetop/src/api/component/holder.rs b/pagetop/src/api/component/holder.rs index b3fa54e8..51b67736 100644 --- a/pagetop/src/api/component/holder.rs +++ b/pagetop/src/api/component/holder.rs @@ -1,5 +1,5 @@ use crate::html::{Markup, html}; -use super::{ComponentTrait, PageAssets}; +use super::{Assets, ComponentTrait}; use std::sync::{Arc, RwLock}; @@ -21,7 +21,7 @@ impl ComponentsHolder { self.0.push(Arc::new(RwLock::new(component))); } - pub fn render(&self, assets: &mut PageAssets) -> Markup { + pub fn render(&self, assets: &mut Assets) -> Markup { let mut components = self.0.clone(); components.sort_by_key(|c| c.read().unwrap().weight()); html! { diff --git a/pagetop/src/api/component/mod.rs b/pagetop/src/api/component/mod.rs index 3faac016..a119089f 100644 --- a/pagetop/src/api/component/mod.rs +++ b/pagetop/src/api/component/mod.rs @@ -6,10 +6,10 @@ pub use action::{ mod assets; pub use assets::{ + Assets, Favicon, StyleSheet, JavaScript, JSMode, - PageAssets, }; mod definition; diff --git a/pagetop/src/api/theme/definition.rs b/pagetop/src/api/theme/definition.rs index 08d913e6..b5a12243 100644 --- a/pagetop/src/api/theme/definition.rs +++ b/pagetop/src/api/theme/definition.rs @@ -1,7 +1,7 @@ use crate::{app, concat_string}; use crate::config::SETTINGS; use crate::html::{Markup, html}; -use crate::api::component::{ComponentTrait, Favicon, PageAssets}; +use crate::api::component::{Assets, ComponentTrait, Favicon}; use crate::response::page::Page; use crate::base::component::Chunck; use crate::util; @@ -88,7 +88,7 @@ pub trait ThemeTrait: BaseTheme + Send + Sync { fn before_render_component( &self, component: &mut dyn ComponentTrait, - assets: &mut PageAssets + assets: &mut Assets ) { /* Cómo usarlo: @@ -107,7 +107,7 @@ pub trait ThemeTrait: BaseTheme + Send + Sync { fn render_component( &self, component: &dyn ComponentTrait, - assets: &mut PageAssets + assets: &mut Assets ) -> Option { None /* diff --git a/pagetop/src/base/component/block.rs b/pagetop/src/base/component/block.rs index d0b4ad7a..df209ea9 100644 --- a/pagetop/src/base/component/block.rs +++ b/pagetop/src/base/component/block.rs @@ -33,7 +33,7 @@ impl ComponentTrait for Block { self.weight } - fn default_render(&self, assets: &mut PageAssets) -> Markup { + fn default_render(&self, assets: &mut Assets) -> Markup { let id = assets.serial_id(self.single_name(), self.id()); html! { div id=(id) class=[self.classes()] { diff --git a/pagetop/src/base/component/chunck.rs b/pagetop/src/base/component/chunck.rs index 26666344..a772af1d 100644 --- a/pagetop/src/base/component/chunck.rs +++ b/pagetop/src/base/component/chunck.rs @@ -27,7 +27,7 @@ impl ComponentTrait for Chunck { self.weight } - fn default_render(&self, _: &mut PageAssets) -> Markup { + fn default_render(&self, _: &mut Assets) -> Markup { html! { (*self.html()) } } diff --git a/pagetop/src/base/component/container.rs b/pagetop/src/base/component/container.rs index 5c64b14e..dd2508ad 100644 --- a/pagetop/src/base/component/container.rs +++ b/pagetop/src/base/component/container.rs @@ -37,7 +37,7 @@ impl ComponentTrait for Container { self.weight } - fn default_render(&self, assets: &mut PageAssets) -> Markup { + fn default_render(&self, assets: &mut Assets) -> Markup { match self.container_type() { ContainerType::Header => html! { header id=[self.id()] class=[self.classes()] { diff --git a/pagetop/src/base/component/form/button.rs b/pagetop/src/base/component/form/button.rs index 16720106..47f2e9ca 100644 --- a/pagetop/src/base/component/form/button.rs +++ b/pagetop/src/base/component/form/button.rs @@ -40,7 +40,7 @@ impl ComponentTrait for Button { self.weight } - fn default_render(&self, _: &mut PageAssets) -> Markup { + fn default_render(&self, _: &mut Assets) -> Markup { let button_type = match self.button_type() { ButtonType::Button => "button", ButtonType::Reset => "reset", diff --git a/pagetop/src/base/component/form/date.rs b/pagetop/src/base/component/form/date.rs index 741ac450..e9741120 100644 --- a/pagetop/src/base/component/form/date.rs +++ b/pagetop/src/base/component/form/date.rs @@ -48,7 +48,7 @@ impl ComponentTrait for Date { self.weight } - fn default_render(&self, _: &mut PageAssets) -> Markup { + fn default_render(&self, _: &mut Assets) -> Markup { let id = match self.name() { Some(name) => Some(concat_string!("edit-", name)), None => None, diff --git a/pagetop/src/base/component/form/form.rs b/pagetop/src/base/component/form/form.rs index 2f4fa609..70a9caf6 100644 --- a/pagetop/src/base/component/form/form.rs +++ b/pagetop/src/base/component/form/form.rs @@ -39,7 +39,7 @@ impl ComponentTrait for Form { self.weight } - fn default_render(&self, assets: &mut PageAssets) -> Markup { + fn default_render(&self, assets: &mut Assets) -> Markup { let method = match self.method() { FormMethod::Get => None, FormMethod::Post => Some("post".to_owned()) diff --git a/pagetop/src/base/component/form/hidden.rs b/pagetop/src/base/component/form/hidden.rs index 4df5fd4f..c837d0a8 100644 --- a/pagetop/src/base/component/form/hidden.rs +++ b/pagetop/src/base/component/form/hidden.rs @@ -21,7 +21,7 @@ impl ComponentTrait for Hidden { self.weight } - fn default_render(&self, _: &mut PageAssets) -> Markup { + fn default_render(&self, _: &mut Assets) -> Markup { let id = match self.name() { Some(name) => Some(concat_string!("value-", name)), _ => None diff --git a/pagetop/src/base/component/form/input.rs b/pagetop/src/base/component/form/input.rs index 573ddebf..a7168097 100644 --- a/pagetop/src/base/component/form/input.rs +++ b/pagetop/src/base/component/form/input.rs @@ -58,14 +58,14 @@ impl ComponentTrait for Input { self.weight } - fn before_render(&mut self, _: &mut PageAssets) { + fn before_render(&mut self, _: &mut Assets) { if let Some(name) = self.name() { let class = concat_string!("form-item-", name); self.alter_classes(class.as_str(), ClassesOp::AddFirst); } } - fn default_render(&self, _: &mut PageAssets) -> Markup { + fn default_render(&self, _: &mut Assets) -> Markup { let type_input = match self.input_type() { InputType::Email => "email", InputType::Password => "password", diff --git a/pagetop/src/base/component/grid/column.rs b/pagetop/src/base/component/grid/column.rs index ca22ad37..8199c986 100644 --- a/pagetop/src/base/component/grid/column.rs +++ b/pagetop/src/base/component/grid/column.rs @@ -31,7 +31,7 @@ impl ComponentTrait for Column { self.weight } - fn default_render(&self, assets: &mut PageAssets) -> Markup { + fn default_render(&self, assets: &mut Assets) -> Markup { html! { div id=[self.id()] class=[self.classes()] { (self.components().render(assets)) diff --git a/pagetop/src/base/component/grid/row.rs b/pagetop/src/base/component/grid/row.rs index b9692015..a366cf7a 100644 --- a/pagetop/src/base/component/grid/row.rs +++ b/pagetop/src/base/component/grid/row.rs @@ -31,7 +31,7 @@ impl ComponentTrait for Row { self.weight } - fn default_render(&self, assets: &mut PageAssets) -> Markup { + fn default_render(&self, assets: &mut Assets) -> Markup { html! { div id=[self.id()] class=[self.classes()] { (self.columns().render(assets)) diff --git a/pagetop/src/base/component/image.rs b/pagetop/src/base/component/image.rs index ee92215a..efb647c2 100644 --- a/pagetop/src/base/component/image.rs +++ b/pagetop/src/base/component/image.rs @@ -31,7 +31,7 @@ impl ComponentTrait for Image { self.weight } - fn default_render(&self, _: &mut PageAssets) -> Markup { + fn default_render(&self, _: &mut Assets) -> Markup { html! { img src=[self.source()] diff --git a/pagetop/src/base/component/menu.rs b/pagetop/src/base/component/menu.rs index a152b9ec..9b416daf 100644 --- a/pagetop/src/base/component/menu.rs +++ b/pagetop/src/base/component/menu.rs @@ -38,7 +38,7 @@ impl ComponentTrait for MenuItem { self.weight } - fn default_render(&self, assets: &mut PageAssets) -> Markup { + fn default_render(&self, assets: &mut Assets) -> Markup { match self.item_type() { MenuItemType::Label(label) => html! { li class="label" { a href="#" { (label) } } @@ -198,7 +198,7 @@ impl ComponentTrait for Menu { self.weight } - fn default_render(&self, assets: &mut PageAssets) -> Markup { + fn default_render(&self, assets: &mut Assets) -> Markup { assets .add_stylesheet(StyleSheet::source( "/theme/menu/css/menu.css?ver=1.1.1" diff --git a/pagetop/src/base/theme/bulmix/mod.rs b/pagetop/src/base/theme/bulmix/mod.rs index a4b194f4..1a36fe7d 100644 --- a/pagetop/src/base/theme/bulmix/mod.rs +++ b/pagetop/src/base/theme/bulmix/mod.rs @@ -27,7 +27,7 @@ impl ThemeTrait for Bulmix { fn before_render_component( &self, component: &mut dyn ComponentTrait, - _assets: &mut PageAssets + _assets: &mut Assets ) { match component.type_name() { grid::TYPENAME_ROW => { diff --git a/pagetop/src/response/page/page.rs b/pagetop/src/response/page/page.rs index 3669f649..0fc9c627 100644 --- a/pagetop/src/response/page/page.rs +++ b/pagetop/src/response/page/page.rs @@ -41,7 +41,7 @@ pub struct Page<'a> { direction : OptAttr, title : OptAttr, description : OptAttr, - assets : PageAssets, + assets : Assets, regions : HashMap<&'a str, ComponentsHolder>, body_classes: Classes, template : String, @@ -61,7 +61,7 @@ impl<'a> Page<'a> { }, title : OptAttr::new(), description : OptAttr::new(), - assets : PageAssets::new(), + assets : Assets::new(), regions : common_components(), body_classes: Classes::new_with_default("body"), template : "default".to_owned(), @@ -135,7 +135,7 @@ impl<'a> Page<'a> { self.description.option() } - pub fn assets(&mut self) -> &mut PageAssets { + pub fn assets(&mut self) -> &mut Assets { &mut self.assets }