From b40f9a0475ce1fcf8b93ade7e07fde270bb79ed5 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Wed, 30 Nov 2022 01:47:29 +0100 Subject: [PATCH] favorites on the sidebar --- backend/windmill-api/src/favorite.rs | 2 +- backend/windmill-api/src/flows.rs | 6 ++-- backend/windmill-api/src/scripts.rs | 6 ++-- frontend/src/lib/components/Star.svelte | 8 +++-- .../components/sidebar/SidebarContent.svelte | 24 +++++++++----- frontend/src/lib/stores.ts | 1 + frontend/src/routes/__layout@root.svelte | 32 ++++++++++++++++--- frontend/src/routes/index.svelte | 2 +- 8 files changed, 58 insertions(+), 23 deletions(-) diff --git a/backend/windmill-api/src/favorite.rs b/backend/windmill-api/src/favorite.rs index 7591ee5baf..937401f361 100644 --- a/backend/windmill-api/src/favorite.rs +++ b/backend/windmill-api/src/favorite.rs @@ -71,5 +71,5 @@ async fn unstar( .execute(&db) .await?; - Ok(format!("Starred {}", path)) + Ok(format!("Unstarred {}", path)) } diff --git a/backend/windmill-api/src/flows.rs b/backend/windmill-api/src/flows.rs index 1c1f7b8d0f..80f58c533e 100644 --- a/backend/windmill-api/src/flows.rs +++ b/backend/windmill-api/src/flows.rs @@ -72,7 +72,7 @@ async fn list_flows( .left() .join("favorite") .on( - "favorite.favorite_kind = 'flow' AND favorite.path = o.path AND favorite.usr = ?" + "favorite.favorite_kind = 'flow' AND favorite.workspace_id = o.workspace_id AND favorite.path = o.path AND favorite.usr = ?" .bind(&authed.username), ) .order_desc("favorite.path IS NOT NULL") @@ -94,8 +94,8 @@ async fn list_flows( if let Some(cb) = &lq.edited_by { sqlb.and_where_eq("edited_by", "?".bind(cb)); } - if let Some(so) = &lq.starred_only { - sqlb.and_where_eq("starred", "?".bind(so)); + if lq.starred_only.unwrap_or(false) { + sqlb.and_where_is_not_null("favorite.path"); } let sql = sqlb.sql().map_err(|e| Error::InternalErr(e.to_string()))?; diff --git a/backend/windmill-api/src/scripts.rs b/backend/windmill-api/src/scripts.rs index 60f9d86aa9..ec8db07e89 100644 --- a/backend/windmill-api/src/scripts.rs +++ b/backend/windmill-api/src/scripts.rs @@ -102,7 +102,7 @@ async fn list_scripts( .left() .join("favorite") .on( - "favorite.favorite_kind = 'script' AND favorite.path = o.path AND favorite.usr = ?" + "favorite.favorite_kind = 'script' AND favorite.workspace_id = o.workspace_id AND favorite.path = o.path AND favorite.usr = ?" .bind(&authed.username), ) .order_desc("favorite.path IS NOT NULL") @@ -146,8 +146,8 @@ async fn list_scripts( if let Some(k) = &lq.kind { sqlb.and_where_eq("kind", "?".bind(&k.to_lowercase())); } - if let Some(so) = &lq.starred_only { - sqlb.and_where_eq("starred", "?".bind(so)); + if lq.starred_only.unwrap_or(false) { + sqlb.and_where_is_not_null("favorite.path"); } let sql = sqlb.sql().map_err(|e| Error::InternalErr(e.to_string()))?; diff --git a/frontend/src/lib/components/Star.svelte b/frontend/src/lib/components/Star.svelte index 4c4a9b41ba..5976f7a62d 100644 --- a/frontend/src/lib/components/Star.svelte +++ b/frontend/src/lib/components/Star.svelte @@ -1,6 +1,6 @@ @@ -116,7 +140,7 @@ /> - + @@ -155,7 +179,7 @@ {isCollapsed} /> - +