diff options
| author | metamuffin <metamuffin@disroot.org> | 2026-01-23 04:19:24 +0100 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2026-01-23 04:19:24 +0100 |
| commit | 3671a4e07565c86f8071fb2309f463aeaf684ba3 (patch) | |
| tree | 9a9057c7dcc174ada17a45a195502ff94b2f2946 /ui/src/old/admin/mod.rs | |
| parent | 10cdaaa30a6b4a187797434dc8d959780f0e8fbf (diff) | |
| download | jellything-3671a4e07565c86f8071fb2309f463aeaf684ba3.tar jellything-3671a4e07565c86f8071fb2309f463aeaf684ba3.tar.bz2 jellything-3671a4e07565c86f8071fb2309f463aeaf684ba3.tar.zst | |
move ui code around
Diffstat (limited to 'ui/src/old/admin/mod.rs')
| -rw-r--r-- | ui/src/old/admin/mod.rs | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/ui/src/old/admin/mod.rs b/ui/src/old/admin/mod.rs new file mode 100644 index 0000000..f42ba76 --- /dev/null +++ b/ui/src/old/admin/mod.rs @@ -0,0 +1,64 @@ +/* + 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) 2026 metamuffin <metamuffin.org> +*/ + +pub mod import; +pub mod log; +pub mod user; + +use crate::{FlashM, Page, locale::tr, scaffold::{FlashDisplay, RenderInfo}}; +use jellycommon::routes::{ + u_admin_import, u_admin_invite_create, u_admin_invite_remove, u_admin_log, + u_admin_update_search, u_admin_users, +}; + +impl Page for AdminDashboardPage<'_> { + fn title(&self) -> String { + "Admin Dashboard".to_string() + } + fn to_render(&self) -> markup::DynRender<'_> { + markup::new!(@self) + } +} + +markup::define!( + AdminDashboardPage<'a>(ri: &'a RenderInfo<'a>, busy: Option<&'static str>, flash: &'a FlashM, invites: &'a [String]) { + h1 { @tr(ri.lang, "admin.dashboard.title") } + @FlashDisplay { flash } + ul { + li{a[href=u_admin_log(true)] { @tr(ri.lang, "admin.log.warnonly") }} + li{a[href=u_admin_log(false)] { @tr(ri.lang, "admin.log.full") }} + } + + a[href=u_admin_import()] { h2 { @tr(ri.lang, "admin.import.title") }} + @if let Some(text) = busy { + section.message { p.warn { @text } } + } + form[method="POST", action=u_admin_update_search()] { + input[type="submit", value=tr(ri.lang, "admin.dashboard.update_search").to_string()]; + } + h2 { @tr(ri.lang, "admin.dashboard.users") } + p { a[href=u_admin_users()] { @tr(ri.lang, "admin.dashboard.manage_users") } } + h2 { @tr(ri.lang, "admin.dashboard.invites") } + form[method="POST", action=u_admin_invite_create()] { + input[type="submit", value=tr(ri.lang, "admin.dashboard.create_invite").to_string()]; + } + ul { @for t in *invites { + li { + form[method="POST", action=u_admin_invite_remove()] { + span { @t } + input[type="text", name="invite", value=&t, hidden]; + input[type="submit", value=tr(ri.lang, "admin.dashboard.create_invite").to_string()]; + } + } + }} + + // h2 { "Database" } + // @match db_stats(&database) { + // Ok(s) => { @s } + // Err(e) => { pre.error { @format!("{e:?}") } } + // } + } +); |