From f62c7f2a8cc143454779dc99334ca9fc80ddabd5 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Tue, 29 Apr 2025 11:10:21 +0200 Subject: still just moving code around --- server/src/ui/search.rs | 47 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 15 deletions(-) (limited to 'server/src/ui/search.rs') diff --git a/server/src/ui/search.rs b/server/src/ui/search.rs index 51fdcb8..bacaaee 100644 --- a/server/src/ui/search.rs +++ b/server/src/ui/search.rs @@ -3,17 +3,19 @@ which is licensed under the GNU Affero General Public License (version 3); see /COPYING. Copyright (C) 2025 metamuffin */ -use super::{ - error::MyResult, - layout::{trs, DynLayoutPage, LayoutPage}, - node::{DatabaseNodeUserDataExt, NodeCard}, -}; -use crate::{api::AcceptJson, locale::AcceptLanguage, logic::session::Session}; +use super::error::MyResult; +use crate::{api::AcceptJson, locale::AcceptLanguage}; use anyhow::anyhow; -use jellybase::{database::Database, locale::tr}; -use jellycommon::{api::ApiSearchResponse, Visibility}; -use rocket::{get, serde::json::Json, Either, State}; -use std::time::Instant; +use jellybase::database::Database; +use jellycommon::api::ApiSearchResponse; +use jellyimport::is_importing; +use jellylogic::{search::search, session::Session}; +use jellyui::{ + render_page, + scaffold::{RenderInfo, SessionInfo}, + search::SearchPage, +}; +use rocket::{get, response::content::RawHtml, serde::json::Json, Either, State}; #[get("/search?&")] pub async fn r_search<'a>( @@ -23,15 +25,30 @@ pub async fn r_search<'a>( query: Option<&str>, page: Option, lang: AcceptLanguage, -) -> MyResult, Json>> { +) -> MyResult, Json>> { let AcceptLanguage(lang) = lang; - + + let r = query + .map(|query| search(db, &session, query, page)) + .transpose()?; + Ok(if *aj { - let Some((count, results, _)) = results else { + let Some(r) = r else { Err(anyhow!("no query"))? }; - Either::Right(Json(ApiSearchResponse { count, results })) + Either::Right(Json(r)) } else { - Either::Left() + Either::Left(RawHtml(render_page( + &SearchPage { + lang: &lang, + query: &query.map(|s| s.to_string()), + r, + }, + RenderInfo { + importing: is_importing(), + session: Some(SessionInfo { user: session.user }), + }, + lang, + ))) }) } -- cgit v1.2.3-70-g09d2