From e7ed6eecbd9ccce486b34454fe77d71a22d1bfe2 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Mon, 23 Feb 2026 23:47:38 +0100 Subject: ui theme --- server/src/ui/account/settings.rs | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) (limited to 'server') diff --git a/server/src/ui/account/settings.rs b/server/src/ui/account/settings.rs index 2e9fcbe..2052c5e 100644 --- a/server/src/ui/account/settings.rs +++ b/server/src/ui/account/settings.rs @@ -9,10 +9,9 @@ use crate::{ }; use anyhow::anyhow; use jellycommon::{ - MESSAGE_KIND, MESSAGE_TEXT, USER_LOGIN, USER_NAME, USER_PASSWORD, VIEW_MESSAGE, - VIEW_USER_SETTINGS, - jellyobject::{Object, ObjectBuffer, ObjectBufferBuilder, Path}, + jellyobject::{Object, ObjectBuffer, ObjectBufferBuilder, Path, Tag}, routes::u_account_settings, + *, }; use jellydb::{Filter, Query, Sort}; use jellyui::tr; @@ -31,6 +30,8 @@ pub struct SettingsForm { password: Option, #[field(validate = option_len(4..32))] name: Option, + theme_accent: Option, + theme_preset: Option, } fn option_len<'v>(value: &Option, range: Range) -> form::Result<'v, ()> { @@ -87,21 +88,25 @@ pub fn r_account_settings_post( out += &*tr(ri.lang, "settings.account.display_name.changed"); out += "\n"; } - // if let Some(theme) = form.theme { - // update_user_theme(&ri.session, theme.0)?; - // out += &*tr(ri.lang, "settings.account.theme.changed"); - // out += "\n"; - // } + if let Some(preset) = &form.theme_preset { + let tag = Tag::new( + preset + .as_bytes() + .try_into() + .map_err(|_| anyhow!("invalid theme preset"))?, + ); + update_user(&ri, |user| user.insert(USER_THEME_PRESET, tag))?; + out += &*tr(ri.lang, "settings.appearance.theme.changed"); + out += "\n"; + } + if let Some(accent) = form.theme_accent { + update_user(&ri, |user| user.insert(USER_THEME_ACCENT, accent))?; + } // if let Some(player_preference) = form.player_preference { // update_user_player_preference(&ri.session, player_preference.0)?; // out += &*tr(ri.lang, "settings.player_preference.changed"); // out += "\n"; // } - // if let Some(native_secret) = &form.native_secret { - // update_user_native_secret(&ri.session, native_secret)?; - // out += &*tr(ri.lang, "settings.native_secret.changed"); - // out += "\n"; - // } let out = if out.is_empty() { tr(ri.lang, "settings.no_change").to_string() } else { -- cgit v1.3