mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-09-21 00:02:30 +00:00
copy folder labels on workspace fork, normalize cleared labels to NULL (#9529)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
765f50c474
commit
ad37eab82b
+2
-2
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"db_name": "PostgreSQL",
|
||||
"query": "INSERT INTO folder (workspace_id, name, display_name, owners, extra_perms, summary, edited_at, created_by, default_permissioned_as)\n SELECT $2, name, display_name, owners, extra_perms, summary, edited_at, created_by, default_permissioned_as\n FROM folder\n WHERE workspace_id = $1",
|
||||
"query": "INSERT INTO folder (workspace_id, name, display_name, owners, extra_perms, summary, edited_at, created_by, default_permissioned_as, labels)\n SELECT $2, name, display_name, owners, extra_perms, summary, edited_at, created_by, default_permissioned_as, labels\n FROM folder\n WHERE workspace_id = $1",
|
||||
"describe": {
|
||||
"columns": [],
|
||||
"parameters": {
|
||||
@@ -11,5 +11,5 @@
|
||||
},
|
||||
"nullable": []
|
||||
},
|
||||
"hash": "ae949d9470fe6687b312fbd9d617d47813a035eb948f0312a8168bb1365607fb"
|
||||
"hash": "4ca364e493dd51d5f83489dc4674eeadcf092b37a20d03d52f2160ca21f79fb0"
|
||||
}
|
||||
@@ -293,7 +293,7 @@ async fn create_folder(
|
||||
ng.summary,
|
||||
authed.username,
|
||||
default_permissioned_as,
|
||||
ng.labels.as_deref() as Option<&[String]>
|
||||
ng.labels.as_deref().filter(|l| !l.is_empty()) as Option<&[String]>
|
||||
)
|
||||
.execute(&mut *tx)
|
||||
.await {
|
||||
@@ -472,17 +472,22 @@ async fn update_folder(
|
||||
}
|
||||
|
||||
if let Some(labels) = ng.labels.as_ref() {
|
||||
sqlb.set(
|
||||
"labels",
|
||||
"?".bind(&format!(
|
||||
"{{{}}}",
|
||||
labels
|
||||
.iter()
|
||||
.map(|x| format!("\"{}\"", x.replace('\\', "\\\\").replace('"', "\\\"")))
|
||||
.collect::<Vec<_>>()
|
||||
.join(","),
|
||||
)),
|
||||
);
|
||||
if labels.is_empty() {
|
||||
// normalize cleared labels to NULL so the field stays out of API/tarball output
|
||||
sqlb.set("labels", "NULL");
|
||||
} else {
|
||||
sqlb.set(
|
||||
"labels",
|
||||
"?".bind(&format!(
|
||||
"{{{}}}",
|
||||
labels
|
||||
.iter()
|
||||
.map(|x| format!("\"{}\"", x.replace('\\', "\\\\").replace('"', "\\\"")))
|
||||
.collect::<Vec<_>>()
|
||||
.join(","),
|
||||
)),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
sqlb.returning("*");
|
||||
|
||||
@@ -4254,8 +4254,8 @@ async fn clone_folders(
|
||||
target_workspace_id: &str,
|
||||
) -> Result<()> {
|
||||
sqlx::query!(
|
||||
"INSERT INTO folder (workspace_id, name, display_name, owners, extra_perms, summary, edited_at, created_by, default_permissioned_as)
|
||||
SELECT $2, name, display_name, owners, extra_perms, summary, edited_at, created_by, default_permissioned_as
|
||||
"INSERT INTO folder (workspace_id, name, display_name, owners, extra_perms, summary, edited_at, created_by, default_permissioned_as, labels)
|
||||
SELECT $2, name, display_name, owners, extra_perms, summary, edited_at, created_by, default_permissioned_as, labels
|
||||
FROM folder
|
||||
WHERE workspace_id = $1",
|
||||
source_workspace_id,
|
||||
|
||||
Reference in New Issue
Block a user