diff options
Diffstat (limited to 'ui/src/settings.rs')
-rw-r--r-- | ui/src/settings.rs | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/ui/src/settings.rs b/ui/src/settings.rs deleted file mode 100644 index 5ff3946..0000000 --- a/ui/src/settings.rs +++ /dev/null @@ -1,82 +0,0 @@ -/* - This file is part of jellything (https://codeberg.org/metamuffin/jellything) - which is licensed under the GNU Affero General Public License (version 3); see /COPYING. - Copyright (C) 2025 metamuffin <metamuffin.org> -*/ -use crate::{ - locale::{Language, tr, trs}, - scaffold::SessionInfo, -}; -use jellycommon::{ - routes::{u_account_login, u_account_settings}, - user::{PlayerKind, Theme}, -}; -use markup::RenderAttributeValue; - -markup::define! { - Settings<'a>(flash: Option<Result<String, String>>, session: &'a SessionInfo, lang: &'a Language) { - h1 { "Settings" } - @if let Some(flash) = &flash { - @match flash { - Ok(mesg) => { section.message { p.success { @mesg } } } - Err(err) => { section.message { p.error { @format!("{err}") } } } - } - } - h2 { @trs(&lang, "account") } - a.switch_account[href=u_account_login()] { "Switch Account" } - form[method="POST", action=u_account_settings()] { - label[for="username"] { @trs(&lang, "account.username") } - input[type="text", id="username", disabled, value=&session.user.name]; - input[type="submit", disabled, value=&*tr(**lang, "settings.immutable")]; - } - form[method="POST", action=u_account_settings()] { - label[for="display_name"] { @trs(lang, "account.display_name") } - input[type="text", id="display_name", name="display_name", value=&session.user.display_name]; - input[type="submit", value=&*tr(**lang, "settings.update")]; - } - form[method="POST", action=u_account_settings()] { - label[for="password"] { @trs(lang, "account.password") } - input[type="password", id="password", name="password"]; - input[type="submit", value=&*tr(**lang, "settings.update")]; - } - h2 { @trs(&lang, "settings.appearance") } - form[method="POST", action=u_account_settings()] { - fieldset { - legend { @trs(&lang, "settings.appearance.theme") } - @for theme in Theme::ALL { - label { input[type="radio", name="theme", value=A(*theme), checked=session.user.theme==*theme]; @trs(lang, &format!("theme.{theme}")) } br; - } - } - input[type="submit", value=&*tr(**lang, "settings.apply")]; - } - form[method="POST", action=u_account_settings()] { - fieldset { - legend { @trs(&lang, "settings.player_preference") } - @for kind in PlayerKind::ALL { - label { input[type="radio", name="player_preference", value=A(*kind), checked=session.user.player_preference==*kind]; @trs(lang, &format!("player_kind.{kind}")) } br; - } - } - input[type="submit", value=&*tr(**lang, "settings.apply")]; - } - form[method="POST", action=u_account_settings()] { - label[for="native_secret"] { "Native Secret" } - input[type="password", id="native_secret", name="native_secret"]; - input[type="submit", value=&*tr(**lang, "settings.update")]; - p { "The secret can be found in " code{"$XDG_CONFIG_HOME/jellynative_secret"} " or by clicking " a.button[href="jellynative://show-secret-v1"] { "Show Secret" } "." } - } - } -} - -struct A<T>(pub T); -impl markup::Render for A<Theme> { - fn render(&self, writer: &mut impl std::fmt::Write) -> std::fmt::Result { - writer.write_str(self.0.to_str()) - } -} -impl markup::Render for A<PlayerKind> { - fn render(&self, writer: &mut impl std::fmt::Write) -> std::fmt::Result { - writer.write_str(self.0.to_str()) - } -} -impl RenderAttributeValue for A<Theme> {} -impl RenderAttributeValue for A<PlayerKind> {} |