diff options
author | metamuffin <metamuffin@disroot.org> | 2025-05-31 13:38:01 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-05-31 13:38:01 +0200 |
commit | 72a8d6c8cff8869019c3ce0cb1a38f806d964604 (patch) | |
tree | eae26a41700a9001eee715b4a4cf0c08deb1e0dd /ui | |
parent | 373243a81f8c44fcfc6a3612ba46da2c6a3286c6 (diff) | |
download | jellything-72a8d6c8cff8869019c3ce0cb1a38f806d964604.tar jellything-72a8d6c8cff8869019c3ce0cb1a38f806d964604.tar.bz2 jellything-72a8d6c8cff8869019c3ce0cb1a38f806d964604.tar.zst |
convert all manual message stuff to FlashMessage
Diffstat (limited to 'ui')
-rw-r--r-- | ui/src/account/settings.rs | 13 | ||||
-rw-r--r-- | ui/src/admin/mod.rs | 6 | ||||
-rw-r--r-- | ui/src/admin/user.rs | 10 | ||||
-rw-r--r-- | ui/src/lib.rs | 2 | ||||
-rw-r--r-- | ui/src/scaffold.rs | 13 |
5 files changed, 21 insertions, 23 deletions
diff --git a/ui/src/account/settings.rs b/ui/src/account/settings.rs index 7c5a3b8..7334c62 100644 --- a/ui/src/account/settings.rs +++ b/ui/src/account/settings.rs @@ -4,9 +4,9 @@ Copyright (C) 2025 metamuffin <metamuffin.org> */ use crate::{ - Page, + FlashM, Page, locale::{Language, tr, trs}, - scaffold::SessionInfo, + scaffold::{FlashDisplay, SessionInfo}, }; use jellycommon::{ routes::{u_account_login, u_account_settings}, @@ -24,14 +24,9 @@ impl Page for SettingsPage<'_> { } markup::define! { - SettingsPage<'a>(flash: Option<Result<String, String>>, session: &'a SessionInfo, lang: &'a Language) { + SettingsPage<'a>(session: &'a SessionInfo, lang: &'a Language, flash: &'a FlashM) { h1 { "Settings" } - @if let Some(flash) = &flash { - @match flash { - Ok(mesg) => { section.message { p.success { @mesg } } } - Err(err) => { section.message { p.error { @format!("{err}") } } } - } - } + @FlashDisplay {flash} h2 { @trs(&lang, "account") } a.switch_account[href=u_account_login()] { "Switch Account" } form[method="POST", action=u_account_settings()] { diff --git a/ui/src/admin/mod.rs b/ui/src/admin/mod.rs index 394f1c6..c2afc9d 100644 --- a/ui/src/admin/mod.rs +++ b/ui/src/admin/mod.rs @@ -7,7 +7,7 @@ pub mod log; pub mod user; -use crate::{locale::{tr, Language}, scaffold::FlashDisplay, Page}; +use crate::{FlashM, Page, locale::Language, scaffold::FlashDisplay}; use jellycommon::routes::{ u_admin_import, u_admin_invite_create, u_admin_invite_remove, u_admin_log, u_admin_update_search, u_admin_users, @@ -23,9 +23,9 @@ impl Page for AdminDashboardPage<'_> { } markup::define!( - AdminDashboardPage<'a>(lang: &'a Language, busy: Option<&'static str>, last_import_err: &'a [String], flash: Option<Result<String, String>>, invites: &'a [String]) { + AdminDashboardPage<'a>(lang: &'a Language, busy: Option<&'static str>, last_import_err: &'a [String], flash: &'a FlashM, invites: &'a [String]) { h1 { "Admin Panel" } - @FlashDisplay { flash: flash.clone() } + @FlashDisplay { flash } @if !last_import_err.is_empty() { section.message.error { details { diff --git a/ui/src/admin/user.rs b/ui/src/admin/user.rs index 613fc08..225482e 100644 --- a/ui/src/admin/user.rs +++ b/ui/src/admin/user.rs @@ -4,7 +4,7 @@ Copyright (C) 2025 metamuffin <metamuffin.org> */ -use crate::{Page, locale::Language, scaffold::FlashDisplay}; +use crate::{FlashM, Page, locale::Language, scaffold::FlashDisplay}; use jellycommon::{ routes::{u_admin_user, u_admin_user_permission, u_admin_user_remove, u_admin_users}, user::{PermissionSet, User, UserPermission}, @@ -28,9 +28,9 @@ impl Page for AdminUsersPage<'_> { } markup::define! { - AdminUsersPage<'a>(lang: &'a Language, users: &'a [User], flash: Option<Result<String, String>>) { + AdminUsersPage<'a>(lang: &'a Language, users: &'a [User], flash: &'a FlashM) { h1 { "User Management" } - @FlashDisplay { flash: flash.clone() } + @FlashDisplay { flash } h2 { "All Users" } ul { @for u in *users { li { @@ -38,10 +38,10 @@ markup::define! { } }} } - AdminUserPage<'a>(lang: &'a Language, user: &'a User, flash: Option<Result<String, String>>) { + AdminUserPage<'a>(lang: &'a Language, user: &'a User, flash: &'a FlashM) { h1 { @format!("{:?}", user.display_name) " (" @user.name ")" } a[href=u_admin_users()] "Back to the User List" - @FlashDisplay { flash: flash.clone() } + @FlashDisplay { flash } form[method="POST", action=u_admin_user_remove(&user.name)] { // input[type="text", name="name", value=&user.name, hidden]; input.danger[type="submit", value="Remove user(!)"]; diff --git a/ui/src/lib.rs b/ui/src/lib.rs index c71e30f..cbf15bf 100644 --- a/ui/src/lib.rs +++ b/ui/src/lib.rs @@ -28,6 +28,8 @@ use std::{ sync::{LazyLock, Mutex}, }; +pub type FlashM = Option<(String, String)>; + #[rustfmt::skip] #[derive(Debug, Deserialize, Serialize, Default)] pub struct Config { diff --git a/ui/src/scaffold.rs b/ui/src/scaffold.rs index a115ec3..95074cf 100644 --- a/ui/src/scaffold.rs +++ b/ui/src/scaffold.rs @@ -5,7 +5,7 @@ */ use crate::{ - CONF, + CONF, FlashM, locale::{Language, escape, tr, trs}, }; use jellycommon::{ @@ -72,11 +72,12 @@ markup::define! { } } - FlashDisplay(flash: Option<Result<String, String>>) { - @if let Some(flash) = &flash { - @match flash { - Ok(mesg) => { section.message { p.success { @mesg } } } - Err(err) => { section.message { p.error { @err } } } + FlashDisplay<'a>(flash: &'a FlashM) { + @if let Some((kind,message)) = &flash { + @match kind.as_str() { + "success" => { section.message { p.success { @message } } } + "error" => { section.message { p.error { @message } } } + _ => { section.message { p { @message } } } } } } |