diff options
Diffstat (limited to 'server/src/ui/admin/import.rs')
| -rw-r--r-- | server/src/ui/admin/import.rs | 28 |
1 files changed, 10 insertions, 18 deletions
diff --git a/server/src/ui/admin/import.rs b/server/src/ui/admin/import.rs index 78db4a4..e199de4 100644 --- a/server/src/ui/admin/import.rs +++ b/server/src/ui/admin/import.rs @@ -4,27 +4,23 @@ Copyright (C) 2026 metamuffin <metamuffin.org> */ -use crate::{request_info::RequestInfo, ui::error::MyResult, ui_responder::UiResponse}; -use jellycommon::{ - jellyobject::{OBB, ObjectBuffer}, - routes::u_admin_import, - *, -}; +use crate::{request_info::RequestInfo, ui::error::MyResult}; +use jellycommon::routes::u_admin_import; use jellyimport::{ ImportConfig, import_wrap, is_importing, reporting::{IMPORT_ERRORS, IMPORT_PROGRESS}, }; -use jellyui::tr; +use jellyui::{components::admin::AdminImport, tr}; use rocket::{ get, post, - response::{Flash, Redirect}, + response::{Flash, Redirect, content::RawHtml}, }; use rocket_ws::{Message, Stream, WebSocket}; use std::time::Duration; use tokio::{spawn, time::sleep}; #[get("/admin/import", rank = 2)] -pub async fn r_admin_import(ri: RequestInfo<'_>) -> MyResult<UiResponse> { +pub async fn r_admin_import(ri: RequestInfo<'_>) -> MyResult<RawHtml<String>> { ri.require_admin()?; let last_import_err = IMPORT_ERRORS.read().await.clone(); @@ -33,15 +29,11 @@ pub async fn r_admin_import(ri: RequestInfo<'_>) -> MyResult<UiResponse> { .map(|e| e.as_str()) .collect::<Vec<_>>(); - let mut data = ObjectBuffer::empty(); - if is_importing() { - data = data.as_object().insert(ADMIN_IMPORT_BUSY, ()); - } - data = data - .as_object() - .insert_multi(ADMIN_IMPORT_ERROR, &last_import_err); - - Ok(ri.respond_ui(OBB::new().with(VIEW_ADMIN_IMPORT, data.as_object()))) + Ok(ri.respond_ui(&AdminImport { + busy: is_importing(), + errors: &last_import_err, + ri: &ri.render_info(), + })) } #[post("/admin/import?<incremental>")] |