🧑💻 Mejora funcionalidad del componente Html
- Amplía la documentación del componente. - Aplica la nueva funcionalidad en la página de bienvenida usando el nuevo renderizado dinámico con contexto. - Añade pruebas unitarias para el componente.
This commit is contained in:
parent
3a3e3b810f
commit
ef8d16f41f
7 changed files with 155 additions and 27 deletions
|
@ -30,9 +30,12 @@ pub struct Page {
|
|||
}
|
||||
|
||||
impl Page {
|
||||
/// Crea una nueva instancia de página con contexto basado en la petición HTTP.
|
||||
/// Crea una nueva instancia de página.
|
||||
///
|
||||
/// Si se proporciona la solicitud HTTP, se guardará en el contexto de renderizado de la página
|
||||
/// para poder ser recuperada por los componentes si es necesario.
|
||||
#[rustfmt::skip]
|
||||
pub fn new(request: HttpRequest) -> Self {
|
||||
pub fn new(request: Option<HttpRequest>) -> Self {
|
||||
Page {
|
||||
title : OptionTranslated::default(),
|
||||
description : OptionTranslated::default(),
|
||||
|
@ -165,7 +168,7 @@ impl Page {
|
|||
}
|
||||
|
||||
/// Devuelve la solicitud HTTP asociada.
|
||||
pub fn request(&self) -> &HttpRequest {
|
||||
pub fn request(&self) -> Option<&HttpRequest> {
|
||||
self.context.request()
|
||||
}
|
||||
|
||||
|
|
|
@ -28,12 +28,12 @@ impl fmt::Display for ErrorPage {
|
|||
ErrorPage::BadRequest(_) => write!(f, "Bad Client Data"),
|
||||
// Error 403.
|
||||
ErrorPage::AccessDenied(request) => {
|
||||
let mut error_page = Page::new(request.clone());
|
||||
let mut error_page = Page::new(Some(request.clone()));
|
||||
let error403 = error_page.theme().error403(&mut error_page);
|
||||
if let Ok(page) = error_page
|
||||
.with_title(L10n::n("Error FORBIDDEN"))
|
||||
.with_layout("error")
|
||||
.with_component(Html::with(error403))
|
||||
.with_component(Html::with(move |_| error403.clone()))
|
||||
.render()
|
||||
{
|
||||
write!(f, "{}", page.into_string())
|
||||
|
@ -43,12 +43,12 @@ impl fmt::Display for ErrorPage {
|
|||
}
|
||||
// Error 404.
|
||||
ErrorPage::NotFound(request) => {
|
||||
let mut error_page = Page::new(request.clone());
|
||||
let mut error_page = Page::new(Some(request.clone()));
|
||||
let error404 = error_page.theme().error404(&mut error_page);
|
||||
if let Ok(page) = error_page
|
||||
.with_title(L10n::n("Error RESOURCE NOT FOUND"))
|
||||
.with_layout("error")
|
||||
.with_component(Html::with(error404))
|
||||
.with_component(Html::with(move |_| error404.clone()))
|
||||
.render()
|
||||
{
|
||||
write!(f, "{}", page.into_string())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue