diff options
| author | metamuffin <metamuffin@disroot.org> | 2026-02-23 23:47:38 +0100 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2026-02-23 23:47:38 +0100 |
| commit | e7ed6eecbd9ccce486b34454fe77d71a22d1bfe2 (patch) | |
| tree | b0ec495626fac645c3065ea6e26c51a5eb006315 /server | |
| parent | 71b221e3e4df1190aa87331091a89243358e98c6 (diff) | |
| download | jellything-e7ed6eecbd9ccce486b34454fe77d71a22d1bfe2.tar jellything-e7ed6eecbd9ccce486b34454fe77d71a22d1bfe2.tar.bz2 jellything-e7ed6eecbd9ccce486b34454fe77d71a22d1bfe2.tar.zst | |
ui theme
Diffstat (limited to 'server')
| -rw-r--r-- | server/src/ui/account/settings.rs | 31 |
1 files changed, 18 insertions, 13 deletions
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<String>, #[field(validate = option_len(4..32))] name: Option<String>, + theme_accent: Option<u32>, + theme_preset: Option<String>, } fn option_len<'v>(value: &Option<String>, range: Range<usize>) -> 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 { |