/* 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 */ use crate::RenderInfo; use jellycommon::{ jellyobject::Object, routes::{u_admin_import, u_admin_import_post, u_admin_log}, *, }; use jellyui_locale::tr; markup::define!( AdminDashboard<'a>(ri: &'a RenderInfo<'a>) { h1 { @tr(ri.lang, "admin.dashboard.title") } 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") }} } AdminImport<'a>(ri: &'a RenderInfo<'a>, data: Object<'a>) { @if data.has(ADMIN_IMPORT_BUSY.0) { h1 { @tr(ri.lang, "admin.import.running") } noscript { "Live import progress needs javascript." } div[id="admin_import"] {} } else { h1 { @tr(ri.lang, "admin.import.title") } @if data.has(ADMIN_IMPORT_ERROR.0) { section.message.error { details { summary { p.error { @tr(ri.lang, "admin.import_errors").replace("{n}", &data.iter(ADMIN_IMPORT_ERROR).count().to_string()) } } ol { @for e in data.iter(ADMIN_IMPORT_ERROR) { li.error { pre.error { @e } } }} } } } form[method="POST", action=u_admin_import_post(true)] { input[type="submit", value=tr(ri.lang, "admin.dashboard.import.inc").to_string()]; } form[method="POST", action=u_admin_import_post(false)] { input[type="submit", value=tr(ri.lang, "admin.dashboard.import.full").to_string()]; } } } AdminInfo<'a>(ri: &'a RenderInfo<'a>, data: Object<'a>) { @let _ = ri; h2 { @data.get(ADMIN_INFO_TITLE) } pre { @data.get(ADMIN_INFO_TEXT) } } );