[#7135] merge scaffold collection indexes

This commit is contained in:
Gani Georgiev 2025-08-26 21:07:20 +03:00
parent 5d964c1b1d
commit ee8c0a66b6
1 changed files with 44 additions and 39 deletions

View File

@ -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() {