From f13f8b4cda8c64b4676ae564206a597ae8a1444e Mon Sep 17 00:00:00 2001 From: metamuffin Date: Wed, 11 Mar 2026 05:00:47 +0100 Subject: restore old search ui --- server/src/routes/search.rs | 45 +++++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 22 deletions(-) (limited to 'server/src') diff --git a/server/src/routes/search.rs b/server/src/routes/search.rs index 8726b8e..3254394 100644 --- a/server/src/routes/search.rs +++ b/server/src/routes/search.rs @@ -13,7 +13,7 @@ use jellycommon::{ *, }; use jellydb::{Filter, Query, Sort}; -use jellyui::components::items::Items; +use jellyui::components::search::Search; use log::info; use rocket::{get, response::content::RawHtml}; @@ -21,30 +21,31 @@ use rocket::{get, response::content::RawHtml}; pub async fn r_search(ri: RequestInfo<'_>, q: Option<&str>) -> MyResult> { ri.require_user()?; - let q = q.unwrap(); - let mut items = Vec::new(); - let t = Instant::now(); - ri.state.database.transaction(&mut |txn| { - let rows = txn - .query(Query { - filter: Filter::Match(Path(vec![NO_VISIBILITY.0]), VISI_VISIBLE.into()), - sort: Sort::TextSearch(Path(vec![NO_TITLE.0]), q.to_owned()), - ..Default::default() - })? - .take(64) - .collect::, _>>()?; + if let Some(q) = q { + let t = Instant::now(); + ri.state.database.transaction(&mut |txn| { + let rows = txn + .query(Query { + filter: Filter::Match(Path(vec![NO_VISIBILITY.0]), VISI_VISIBLE.into()), + sort: Sort::TextSearch(Path(vec![NO_TITLE.0]), q.to_owned()), + ..Default::default() + })? + .take(64) + .collect::, _>>()?; - items.clear(); - for (r, _is) in rows { - let node = txn.get(r)?.unwrap(); - items.push(node); - } - Ok(()) - })?; - info!("search {q:?} took {:?}", t.elapsed()); + items.clear(); + for (r, _is) in rows { + let node = txn.get(r)?.unwrap(); + items.push(node); + } + Ok(()) + })?; + info!("search {q:?} took {:?}", t.elapsed()); + } - Ok(ri.respond_ui(&Items { + Ok(ri.respond_ui(&Search { + query: q.unwrap_or_default(), items: &items .iter() .map(|node| Nku { -- cgit v1.3