✨ Añade gestión de errores catastróficos
- Los errores controlados (403, 404, fatales) se renderizan con el tema activo; un `panic!` no controlado se intercepta con un HTML mínimo y autónomo, sin depender del tema ni de los componentes. - Corrige además que `Context::template()` no seguía los cambios de tema hechos con `with_theme()` después de crear la página. - Renombra `DefaultRegion(s)`/`DefaultTemplate(s)`, añade `Theme::admin_template()` y `Page::admin()`, y documenta la creación de temas e `InRegion` en `core/theme.rs`.
This commit is contained in:
parent
0e72d51276
commit
24bd13414c
12 changed files with 458 additions and 139 deletions
|
|
@ -15,12 +15,12 @@
|
|||
|
||||
mod error;
|
||||
pub use error::ErrorPage;
|
||||
pub(crate) use error::render_error_pages;
|
||||
pub(crate) use error::{render_error_pages, response_for_panic, route_not_found};
|
||||
|
||||
use crate::auth::CurrentUser;
|
||||
use crate::base::action;
|
||||
use crate::core::component::{AssetsOp, ChildOp, Context, ContextError, Contextual};
|
||||
use crate::core::theme::{DefaultRegion, Region, RegionRef, TemplateRef, ThemeRef};
|
||||
use crate::core::theme::{DefaultRegions, Region, RegionRef, TemplateRef, ThemeRef};
|
||||
use crate::html::{Assets, Favicon, JavaScript, StyleSheet};
|
||||
use crate::html::{Attr, Props, PropsOp};
|
||||
use crate::html::{DOCTYPE, Markup, html};
|
||||
|
|
@ -112,6 +112,13 @@ impl Page {
|
|||
}
|
||||
}
|
||||
|
||||
/// Crea una nueva instancia de página con la plantilla de administración del tema activo.
|
||||
pub fn admin(request: HttpRequest) -> Self {
|
||||
let mut page = Page::new(request);
|
||||
page.context().use_admin_template();
|
||||
page
|
||||
}
|
||||
|
||||
// **< Page BUILDER >***************************************************************************
|
||||
|
||||
/// Establece el título de la página como un valor traducible.
|
||||
|
|
@ -304,7 +311,7 @@ impl Contextual for Page {
|
|||
#[builder_fn]
|
||||
fn with_child(mut self, op: impl Into<ChildOp>) -> Self {
|
||||
self.context
|
||||
.alter_child_in(&DefaultRegion::Content, op.into());
|
||||
.alter_child_in(&DefaultRegions::Content, op.into());
|
||||
self
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue