stationslauf/src/partials.rs
Philipp Hofer fb867ff6f2
All checks were successful
CI/CD Pipeline / test (push) Successful in 5m7s
CI/CD Pipeline / deploy (push) Successful in 3m44s
since we have construction signs, we want to go the full way and show it over the whole page :-)
2025-04-19 11:34:29 +02:00

73 lines
2.1 KiB
Rust

use crate::test_version;
use maud::{html, Markup, DOCTYPE};
use tower_sessions::Session;
pub(crate) async fn page(content: Markup, session: Session, leaflet: bool) -> Markup {
// Get and clear flash message
let succ_msg = session.get::<String>("succ").await.unwrap_or(None);
if succ_msg.is_some() {
session.remove::<String>("succ").await.unwrap();
}
let warn_msg = session.get::<String>("warn").await.unwrap_or(None);
if warn_msg.is_some() {
session.remove::<String>("warn").await.unwrap();
}
let err_msg = session.get::<String>("err").await.unwrap_or(None);
if err_msg.is_some() {
session.remove::<String>("err").await.unwrap();
}
html! {
(DOCTYPE)
head {
meta charset="utf-8";
meta name="viewport" content="width=device-width, initial-scale=1.0";
link rel="stylesheet" href="/pico.css";
link rel="stylesheet" href="/style.css";
@if leaflet {
link rel="stylesheet" href="/leaflet.css";
}
@if test_version() {
style {
r#"
body {
margin: 0;
height: 100%;
min-height: 100vh;
background: repeating-linear-gradient(
45deg,
rgba(0, 0, 0, 0.3),
rgba(0, 0, 0, 0.3) 20px,
rgba(255, 255, 0, 0.3) 20px,
rgba(255, 255, 0, 0.3) 40px
);
}"#
}
}
}
body {
main class="container" {
@if let Some(message) = err_msg {
article class="error" {
(message)
}
}
@if let Some(message) = warn_msg {
article class="warning" {
(message)
}
}
@if let Some(message) = succ_msg {
article class="succ" {
(message)
}
}
@if leaflet {
script src="/leaflet.js" {};
}
(content)
}
}
}
}