🎉 [homedemo] Saca pág. demo de inicio de PageTop

This commit is contained in:
Manuel Cillero 2023-02-04 20:50:39 +01:00
parent c4aef7e2fa
commit 2134d4955b
18 changed files with 74 additions and 19 deletions

222
pagetop-homedemo/src/lib.rs Normal file
View file

@ -0,0 +1,222 @@
use pagetop::prelude::*;
pub_handle!(MODULE_DEMOHOME);
pub_locale!("src/locales");
include!(concat!(env!("OUT_DIR"), "/homedemo.rs"));
pub struct HomeDemo;
impl ModuleTrait for HomeDemo {
fn handle(&self) -> Handle {
MODULE_DEMOHOME
}
fn name(&self) -> String {
l("module_name")
}
fn description(&self) -> Option<String> {
Some(l("module_description"))
}
fn configure_service(&self, cfg: &mut server::web::ServiceConfig) {
serve_static_files!(cfg, "/homedemo", bundle_homedemo);
cfg.route("/", server::web::get().to(demo));
}
}
async fn demo(request: server::HttpRequest) -> ResultPage<Markup, FatalError> {
Page::new(request)
.with_title(l("page_title").as_str())
.with_context(ContextOp::AddStyleSheet(StyleSheet::located(
"/homedemo/css/styles.css",
)))
.with_body_classes(ClassesOp::AddFirst, "default-homepage")
.with_this_in("region-content", hello_world())
.with_this_in("region-content", welcome())
.with_this_in("region-content", about_pagetop())
.with_this_in("region-content", promo_pagetop())
.with_this_in("region-content", reporting_issues())
.render()
}
fn hello_world() -> Container {
Container::header().with_id("hello-world").with_component(
grid::Row::new()
.with_column(
grid::Column::new()
.with_classes(ClassesOp::Add, "hello-col-text")
.with_size(grid::ColumnSize::Is5of12)
.with_component(
Heading::h1(html! {
(l("page_title"))
})
.with_display(HeadingDisplay::Medium),
)
.with_component(
Paragraph::with(html! {
(e("hello_intro", &args![
"app" => format!(
"<span class=\"app-name\">{}</span>",
&config::SETTINGS.app.name,
)
]))
})
.with_display(ParagraphDisplay::Small),
)
.with_component(Paragraph::with(html! {
(e("hello_powered", &args![
"pagetop" => format!(
"<a href=\"{}\" target=\"_blank\">{}</a>",
"https://pagetop.cillero.es",
"PageTop",
)
]))
}))
.with_component(
Anchor::button(
"https://github.com/manuelcillero/pagetop",
html! { (l("hello_code")) },
)
.with_target(AnchorTarget::Blank)
.with_left_icon(Icon::with("git"))
.with_classes(ClassesOp::Add, "code-link"),
)
.with_component(
Anchor::link("#welcome", html! { (l("hello_welcome")) })
.with_left_icon(Icon::with("arrow-down-circle-fill"))
.with_classes(ClassesOp::Add, "welcome-link"),
),
)
.with_column(
grid::Column::new()
.with_classes(ClassesOp::Add, "hello-col-image")
.with_component(Image::with("/homedemo/images/header.svg")),
),
)
}
fn welcome() -> Container {
Container::section()
.with_id("welcome")
.with_classes(ClassesOp::Add, "welcome-col-text")
.with_component(Heading::h2(html! {
(l("welcome_page"))
}))
.with_component(
Heading::h3(html! {
(e("welcome_subtitle", &args![
"app" => format!(
"<span class=\"app-name\">{}</span>",
&config::SETTINGS.app.name
)
]))
})
.with_display(HeadingDisplay::Subtitle),
)
.with_component(
Paragraph::with(html! {
(l("welcome_text1"))
})
.with_display(ParagraphDisplay::Small),
)
.with_component(Paragraph::with(html! { (l("welcome_text2")) }))
}
fn about_pagetop() -> Container {
Container::new().with_id("pagetop").with_component(
grid::Row::new()
.with_column(
grid::Column::new()
.with_classes(ClassesOp::Add, "pagetop-col-image")
.with_size(grid::ColumnSize::Is5of12)
.with_component(Image::with("/homedemo/images/about.svg")),
)
.with_column(
grid::Column::new()
.with_classes(ClassesOp::Add, "pagetop-col-text")
.with_component(Heading::h2(html! {
(l("pagetop_title"))
}))
.with_component(
Paragraph::with(html! {
(l("pagetop_text1"))
})
.with_display(ParagraphDisplay::Small),
)
.with_component(Paragraph::with(html! {
(l("pagetop_text2"))
}))
.with_component(Paragraph::with(html! {
(e("pagetop_text3", &args![
"pagetop_website" => format!(
"<a href=\"{}\" target=\"_blank\">{}</a>",
"https://docs.rs/pagetop/latest/pagetop",
l("pagetop_website"),
)
]))
})),
),
)
}
fn promo_pagetop() -> Container {
Container::new().with_id("promo").with_component(
grid::Row::new()
.with_column(
grid::Column::new()
.with_classes(ClassesOp::Add, "promo-col-text")
.with_component(Heading::h2(html! {
(l("pagetop_promo_title"))
}))
.with_component(
Paragraph::with(html! {
(e("pagetop_promo_text1", &args![
"pagetop" => format!(
"<a href=\"{}\" target=\"_blank\">{}</a>",
"https://crates.io/crates/pagetop",
"PageTop",
)
]))
})
.with_display(ParagraphDisplay::Small),
),
)
.with_column(
grid::Column::new()
.with_classes(ClassesOp::Add, "promo-col-image")
.with_size(grid::ColumnSize::Is6of12)
.with_component(Image::with("/homedemo/images/pagetop.png")),
),
)
}
fn reporting_issues() -> Container {
Container::new().with_id("reporting").with_component(
grid::Row::new()
.with_column(
grid::Column::new()
.with_classes(ClassesOp::Add, "reporting-col-image")
.with_component(Image::with("/homedemo/images/support.jpg")),
)
.with_column(
grid::Column::new()
.with_classes(ClassesOp::Add, "reporting-col-text")
.with_size(grid::ColumnSize::Is6of12)
.with_component(Heading::h2(html! {
(l("report_problems_title"))
}))
.with_component(
Paragraph::with(html! {
(l("report_problems_text1"))
})
.with_display(ParagraphDisplay::Small),
)
.with_component(Paragraph::with(html! {
(l("report_problems_text2"))
})),
),
)
}

View file

@ -0,0 +1,27 @@
module_name = Default homepage
module_description = Displays a demo homepage when none is configured.
page_title = Hello world!
hello_intro = This page is used to test the proper operation of { $app } after installation.
hello_powered = This web solution is powered by { $pagetop }.
hello_code = Code
hello_welcome = Welcome
welcome_page = Welcome page
welcome_subtitle = Are you user of { $app }?
welcome_text1 = If you don't know what this page is about, this probably means that the site is either experiencing problems or is undergoing routine maintenance.
welcome_text2 = If the problem persists, please contact your system administrator.
pagetop_title = About PageTop
pagetop_text1 = If you can read this page, it means that the PageTop server is working properly, but has not yet been configured.
pagetop_text2 = PageTop defines an interface for the most stable and popular Rust packages to build modular, extensible and configurable web solutions.
pagetop_text3 = For more information on PageTop please visit the { $pagetop_website }.
pagetop_website = technical documentation
pagetop_promo_title = Promoting PageTop
pagetop_promo_text1 = You are free to use the image below on applications powered by { $pagetop }. Thanks for using PageTop!
report_problems_title = Reporting problems
report_problems_text1 = Please use the GitHub tool to report bugs in PageTop. However, check "existing bug reports" before reporting a new bug.
report_problems_text2 = Please report bugs specific to modules (such as admin, and others) to respective repositories, not to PageTop itself.

View file

@ -0,0 +1,27 @@
module_name = Página de inicio predeterminada
module_description = Muestra una página de demostración predeterminada cuando no hay ninguna configurada.
page_title = ¡Hola mundo!
hello_intro = Esta página se utiliza para comprobar el correcto funcionamiento de { $app } después de la instalación.
hello_powered = Esta solución web funciona con { $pagetop }.
hello_code = Código
hello_welcome = Bienvenida
welcome_page = Página de bienvenida
welcome_subtitle = ¿Eres usuario de { $app }?
welcome_text1 = Si no sabes de qué trata esta página, probablemente significa que el sitio está experimentando problemas o está pasando por un mantenimiento de rutina.
welcome_text2 = Si el problema persiste, póngase en contacto con el administrador del sistema.
pagetop_title = Sobre PageTop
pagetop_text1 = Si puedes leer esta página, significa que el servidor PageTop funciona correctamente, pero aún no se ha configurado.
pagetop_text2 = PageTop define una interfaz para los paquetes Rust más estables y populares para crear soluciones web modulares, extensibles y configurables.
pagetop_text3 = Para más información sobre PageTop, por favor visita la { $pagetop_website }.
pagetop_website = documentación técnica
pagetop_promo_title = Promociona PageTop
pagetop_promo_text1 = Eres libre de usar la siguiente imagen en aplicaciones desarrolladas con { $pagetop }. ¡Gracias por usar PageTop!
report_problems_title = Informando problemas
report_problems_text1 = Utiliza la herramienta GitHub para informar errores en PageTop. Sin embargo, comprueba los "informes de errores existentes" antes de informar de un nuevo error.
report_problems_text2 = Informa de errores específicos de los módulos (como admin y otros) en sus repositorios respectivos, no a PageTop en sí.