From ee8c0a66b6942d3d5b1219000e13f2941aa76cb2 Mon Sep 17 00:00:00 2001 From: Gani Georgiev Date: Tue, 26 Aug 2025 21:07:20 +0300 Subject: [PATCH] [#7135] merge scaffold collection indexes --- .../collections/CollectionUpsertPanel.svelte | 83 ++++++++++--------- 1 file changed, 44 insertions(+), 39 deletions(-) diff --git a/ui/src/components/collections/CollectionUpsertPanel.svelte b/ui/src/components/collections/CollectionUpsertPanel.svelte index a91248d7..02ff792a 100644 --- a/ui/src/components/collections/CollectionUpsertPanel.svelte +++ b/ui/src/components/collections/CollectionUpsertPanel.svelte @@ -6,7 +6,13 @@ import { confirm } from "@/stores/confirmation"; import { errors, removeError, setErrors } from "@/stores/errors"; import { addSuccessToast, removeAllToasts } from "@/stores/toasts"; - import { addCollection, removeCollection, scaffolds, activeCollection } from "@/stores/collections"; + import { + addCollection, + removeCollection, + scaffolds, + activeCollection, + refreshScaffolds, + } from "@/stores/collections"; import tooltip from "@/actions/tooltip"; import Field from "@/components/base/Field.svelte"; import OverlayPanel from "@/components/base/OverlayPanel.svelte"; @@ -161,7 +167,7 @@ isLoadingConfirmation = false; } - function save(hideAfterSave = true) { + async function save(hideAfterSave = true) { if (isSaving) { return; } @@ -171,45 +177,44 @@ const data = exportFormData(); const isNew = !collection.id; - let request; - if (isNew) { - request = ApiClient.collections.create(data); - } else { - request = ApiClient.collections.update(collection.id, data); + try { + let result; + if (isNew) { + result = await ApiClient.collections.create(data); + } else { + result = await ApiClient.collections.update(collection.id, data); + } + + removeAllToasts(); + + addCollection(result); + + if (hideAfterSave) { + confirmClose = false; + hide(); + } else { + load(result); + } + + addSuccessToast( + !collection.id ? "Successfully created collection." : "Successfully updated collection.", + ); + + dispatch("save", { + isNew: isNew, + collection: result, + }); + + if (isNew) { + $activeCollection = result; + + await refreshScaffolds(); + } + } catch (err) { + ApiClient.error(err); } - return request - .then((result) => { - removeAllToasts(); - - addCollection(result); - - if (hideAfterSave) { - confirmClose = false; - hide(); - } else { - load(result); - } - - addSuccessToast( - !collection.id ? "Successfully created collection." : "Successfully updated collection.", - ); - - dispatch("save", { - isNew: isNew, - collection: result, - }); - - if (isNew) { - $activeCollection = result; - } - }) - .catch((err) => { - ApiClient.error(err); - }) - .finally(() => { - isSaving = false; - }); + isSaving = false; } function exportFormData() {