Backend and frontend fixes

This commit is contained in:
2023-01-14 23:48:39 +05:30
parent f7c2cf802c
commit 46396e2520
3 changed files with 36 additions and 15 deletions

View File

@@ -723,7 +723,7 @@ async fn refresh_meili_index(
dotenvy::dotenv().ok(); dotenvy::dotenv().ok();
let userid = user.id; let userid = user.id;
let page: usize = 0; let page: usize = 1;
let sort: String = "desc".to_string(); let sort: String = "desc".to_string();
let per_page: usize = 12; let per_page: usize = 12;
@@ -731,9 +731,10 @@ async fn refresh_meili_index(
.await .await
.expect("could not list books"); .expect("could not list books");
let num_pages = books.1; let num_pages: usize = (books.1 as usize) + 1;
for pg_idx in 0..num_pages { for pg_idx in 1..num_pages {
let books = QueryCore::find_books_plus_meta_in_page(conn, pg_idx.try_into().unwrap(), per_page, userid, sort.clone()) //println!("DEBUGG {} {} {} {}",pg_idx, per_page, userid, sort.clone());
let books = QueryCore::find_books_plus_meta_in_page(conn, pg_idx, per_page, userid, sort.clone())
.await .await
.expect("could not list books"); .expect("could not list books");

View File

@@ -31,5 +31,5 @@ wasm-bindgen = "0.2.79"
#yew-router = "0.16.0" #yew-router = "0.16.0"
[dependencies.web-sys] [dependencies.web-sys]
features = ["InputEvent", "EventTarget", "MouseEvent", "KeyboardEvent", "Location", "Storage", "Element"] features = ["InputEvent", "EventTarget", "MouseEvent", "KeyboardEvent", "Location", "Storage", "Element", "Window", "Document"]
version = "0.3.56" version = "0.3.56"

View File

@@ -139,7 +139,14 @@ async fn list_users() -> Result<HashMap<String, i32>, reqwasm::Error> {
} }
Ok(res) Ok(res)
} }
/*
async fn refresh_index() -> Result<reqwasm::http::Response, reqwasm::Error> {
let backend_url: &'static str = dotenv!("BACKEND_URL");
let url = format!("{}/api/refresh_search_index", backend_url);
let resp = Request::get(&url).send().await?;
Ok(resp)
}
*/
async fn authentication_check() -> Result<bool, reqwasm::Error> { async fn authentication_check() -> Result<bool, reqwasm::Error> {
let backend_url: &'static str = dotenv!("BACKEND_URL"); let backend_url: &'static str = dotenv!("BACKEND_URL");
let url = format!("{}/api/authentication_check", backend_url); let url = format!("{}/api/authentication_check", backend_url);
@@ -408,7 +415,7 @@ pub fn Header<G: Html>(cx: Scope) -> View<G> {
div(class="w-4/5 md:w-4/5 flex mb-2"){ div(class="w-4/5 md:w-4/5 flex mb-2"){
div(class="hidden md:inline-flex"){ div(class="hidden md:flex md:w-full"){
div(class="w-1/5 flex"){ div(class="w-1/5 flex"){
(if *app_state.editmode.get() == false { (if *app_state.editmode.get() == false {
@@ -473,9 +480,9 @@ pub fn Header<G: Html>(cx: Scope) -> View<G> {
view!{cx, view!{cx,
(if *app_state.userid.get() != 0 { (if *app_state.userid.get() != 0 {
view!{ cx, view!{ cx,
div(class="w-2/5 flex"){ div(class="w-4/5 flex"){
button(on:click=click_listall, class="bg-gray-300 hover:bg-gray-200 text-gray-800 font-bold py-2 px-4 rounded inline-flex items-center") { i(class="fa-solid fa-layer-group") span(class="inline-block"){"All" }} button(on:click=click_listall, class="bg-gray-300 hover:bg-gray-200 text-gray-800 font-bold py-2 px-4 rounded inline-flex items-center") { i(class="fa-solid fa-layer-group") span(class="inline-block"){"All" }}
div(class="min-w-40 inline-flex"){ div(class="min-w-100 inline-flex"){
input(ref=input_ref2, input(ref=input_ref2,
class = "inline-flex h-full m-0 p-1 w-full", class = "inline-flex h-full m-0 p-1 w-full",
placeholder="🔍 Search", placeholder="🔍 Search",
@@ -490,7 +497,7 @@ pub fn Header<G: Html>(cx: Scope) -> View<G> {
} }
}) })
} }
div(class="inline-flex md:hidden w-full"){ div(class="inline-flex w-full md:hidden md:w-0"){
button(on:click=click_menu_expand, class="bg-gray-300 hover:bg-gray-200 text-gray-800 font-bold py-2 px-4 rounded inline-flex items-center") { i(class="fa-solid fa-bars") } button(on:click=click_menu_expand, class="bg-gray-300 hover:bg-gray-200 text-gray-800 font-bold py-2 px-4 rounded inline-flex items-center") { i(class="fa-solid fa-bars") }
} }
} }
@@ -850,17 +857,20 @@ async fn ListDB<G: Html>(cx: Scope<'_>) -> View<G> {
} }
}; };
let window = web_sys::window().expect("Failed to get window");
let window_cl = window.clone();
let callback: Closure<dyn FnMut()> = Closure::new(move || { let callback: Closure<dyn FnMut()> = Closure::new(move || {
//let csignal = csignal.clone(); //let csignal = csignal.clone();
//csignal.set(true); //csignal.set(true);
let app_state2 = app_state2.clone(); let app_state2 = app_state2.clone();
if *app_state2.scrolling.get() == false { if *app_state2.scrolling.get() == false {
app_state2.scrollevent.set(true); if window_cl.inner_height().unwrap().as_f64().unwrap() + window_cl.scroll_y().unwrap() >= window_cl.document().unwrap().body().unwrap().offset_height().into() {
app_state2.scrollevent.set(true);
}
} }
info!("Got scroll event"); info!("Got scroll event");
}); });
let window = web_sys::window().expect("Failed to get window");
window window
.add_event_listener_with_callback_and_bool( .add_event_listener_with_callback_and_bool(
"scroll", "scroll",
@@ -1013,7 +1023,7 @@ pub fn BookDB<G: Html>(cx: Scope, bookitem: BookUIProp) -> View<G> {
app_state.displayingbook.set(bookdisplay_div.clone()); app_state.displayingbook.set(bookdisplay_div.clone());
}; };
view! { cx, view! { cx,
div(class="column px-4 py-4 bg-gray-200 border-2 border-gray-400 rounded m-3"){ div(class="column px-4 py-4 bg-gray-200 border-2 border-gray-400 rounded m-3 hover:scale-110"){
div(class="card-buttons flex gap-x-3"){ div(class="card-buttons flex gap-x-3"){
button( class="bg-gray-300 hover:bg-gray-400 text-gray-800 font-bold py-2 px-4 border-black-500 rounded inline-flex items-center", on:click=handle_display){ i(class="fa-solid fa-circle-info") } button( class="bg-gray-300 hover:bg-gray-400 text-gray-800 font-bold py-2 px-4 border-black-500 rounded inline-flex items-center", on:click=handle_display){ i(class="fa-solid fa-circle-info") }
@@ -1085,7 +1095,7 @@ pub fn BookDB_View<G: Html>(cx: Scope, bookitem: BookUIProp) -> View<G> {
app_state.displayingbook.set(bookdisplay_div.clone()); app_state.displayingbook.set(bookdisplay_div.clone());
}; };
view! { cx, view! { cx,
div(class="col-span-1 px-4 py-4 bg-gray-200 border-2 border-gray-400 rounded m-3", on:click=handle_display_div){ div(class="col-span-1 px-4 py-4 bg-gray-200 border-2 border-gray-400 rounded m-3 hover:scale-110", on:click=handle_display_div){
div(class="card-buttons"){ div(class="card-buttons"){
@@ -1185,7 +1195,7 @@ pub fn BookOL<G: Html>(cx: Scope, bookitem: BookUIProp) -> View<G> {
app_state.addingbook.set(book_div.clone()); app_state.addingbook.set(book_div.clone());
}; };
view! { cx, view! { cx,
div(class="column px-4 py-4 bg-gray-200 border-2 border-gray-400 rounded m-3",on:click=handle_add_div){ div(class="column px-4 py-4 bg-gray-200 border-2 border-gray-400 rounded m-3 hover:scale-110",on:click=handle_add_div){
button( class="bg-gray-300 hover:bg-gray-400 text-gray-800 font-bold py-2 px-4 border-black-500 rounded inline-flex items-center", on:click=handle_add){ i(class="fa-solid fa-plus") } button( class="bg-gray-300 hover:bg-gray-400 text-gray-800 font-bold py-2 px-4 border-black-500 rounded inline-flex items-center", on:click=handle_add){ i(class="fa-solid fa-plus") }
div(class="card-main"){ div(class="card-main"){
@@ -1991,7 +2001,17 @@ async fn PageBar<G: Html>(cx: Scope<'_>) -> View<G> {
} }
} }
}; };
/*
let handle_refresh = move |_| {
spawn_local(async move {
refresh_index().await.expect("Couldn't refresh index");
});
};*/
view! {cx, view! {cx,
//button( class="bg-gray-300 hover:bg-gray-200 text-gray-800 font-bold px-4 rounded inline-flex items-center", on:click=handle_refresh) {"REFRESH"}
(if (*app_state.openlibrary.get() == false || *app_state.internalsearch.get() == true) && !app_state.books.get().is_empty() { (if (*app_state.openlibrary.get() == false || *app_state.internalsearch.get() == true) && !app_state.books.get().is_empty() {
view!{ cx, view!{ cx,
div(class="bg-gray-300 text-gray-800 font-bold px-1 rounded inline-flex items-center w-max"){ div(class="bg-gray-300 text-gray-800 font-bold px-1 rounded inline-flex items-center w-max"){