73 lines
2.1 KiB
Rust
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)
|
|
}
|
|
}
|
|
}
|
|
}
|