remove cookie flash-messages; simply show uuid

This commit is contained in:
2025-08-13 11:22:18 +02:00
parent e991818c7d
commit 652ea26b32
5 changed files with 89 additions and 242 deletions

View File

@@ -1,52 +1,27 @@
use crate::Language;
use axum_messages::Messages;
use maud::{DOCTYPE, Markup, html};
use maud::{html, Markup, DOCTYPE};
pub(crate) struct Page {
lang: Language,
found_camera: Option<(String, i64)>,
new_name: bool,
err: Option<(String, String, String)>,
message: Option<MyMessage>,
}
pub(crate) enum MyMessage {
NameChanged,
FoundCam(String, i64),
Error(String, String, String),
}
impl Page {
pub fn new(lang: Language) -> Self {
Self {
lang,
found_camera: None,
new_name: false,
err: None,
message: None,
}
}
pub fn messages(&mut self, messages: Messages) {
for message in messages {
let text = &message.to_string()[..];
match (message.level, text) {
(_, "set-name-succ") => {
self.new_name = true;
}
(_, msg) if msg.starts_with("found-cam|") => {
let mut parts = msg.splitn(3, '|');
let _ = parts.next().expect("just checked |");
if let (Some(name), Some(amount)) = (parts.next(), parts.next()) {
if let Ok(amount) = amount.parse::<i64>() {
self.found_camera = Some((name.into(), amount));
}
}
}
(_, msg) if msg.starts_with("err|") => {
let mut parts = msg.splitn(4, '|');
let _ = parts.next().expect("just checked |");
if let (Some(title), Some(body), Some(footer)) =
(parts.next(), parts.next(), parts.next())
{
self.err = Some((title.into(), body.into(), footer.into()));
}
}
(_, _) => {}
}
}
pub(crate) fn set_message(&mut self, message: MyMessage) {
self.message = Some(message);
}
pub fn content(self, content: Markup) -> Markup {
@@ -92,35 +67,39 @@ impl Page {
}
main.container {
@if let Some(found_camera) = &self.found_camera {
div.flex {
article class="succ msg" {
header { (t!("found_camera_title", name = found_camera.0)) }
(t!("found_camera_body", amount = found_camera.1))
footer {
a href="#ranking" { (t!("see_ranking")) }
@if let Some(message) = &self.message {
@match message {
MyMessage::FoundCam(name, amount) => {
div.flex {
article class="succ msg" {
header { (t!("found_camera_title", name = name)) }
(t!("found_camera_body", amount = amount))
footer {
a href="#ranking" { (t!("see_ranking")) }
}
}
}
},
MyMessage::NameChanged => {
div.flex {
article class="name msg" {
header { (t!("new_name_title")) }
(t!("new_name_message"))
}
}
},
MyMessage::Error(header, body, footer) => {
div.flex {
article class="error msg" {
header { (header) }
(body)
footer { (footer) }
}
}
}
}
}
@if self.new_name {
div.flex {
article class="name msg" {
header { (t!("new_name_title")) }
(t!("new_name_message"))
}
}
}
@if let Some(err) = &self.err {
div.flex {
article class="error msg" {
header { (err.0) }
(err.1)
footer { (err.2) }
}
}
}
}
section { (content) }
}