This commit is contained in:
seb
2026-09-22 13:45:22 +02:00
parent 3ae840b2fe
commit 49057dc0d6
11 changed files with 1233 additions and 421 deletions

View File

@@ -239,6 +239,9 @@ const actions = {
* @param {{ categoryId: number|string, name: string }} param0
*/
async renameCategory({ categoryId, name }) {
if (String(categoryId) === String(categoryAutomat.state.rootCategoryId)) {
throw new Error('Home-Kategorie kann nicht umbenannt werden.');
}
const trimmed = String(name ?? '').trim();
if (!trimmed) throw new Error('Name required');
const res = await categoryApi.updateName(categoryId, trimmed);
@@ -258,15 +261,15 @@ const actions = {
/**
* Reorder sibling categories.
* @param {{ categoryIds: number[] }} param0
* @param {{ parentId?: number|string, categoryIds: number[] }} param0
*/
async reorderCategories({ categoryIds }) {
const { currentCategoryId, categories } = categoryAutomat.state;
const res = await categoryApi.reorder(currentCategoryId, categoryIds);
async reorderCategories({ parentId, categoryIds }) {
const targetParentId = parentId != null ? parentId : categoryAutomat.state.currentCategoryId;
const res = await categoryApi.reorder(targetParentId, categoryIds);
const ordered = res.categoryIds;
const parentKey = String(currentCategoryId);
const parentKey = String(targetParentId);
const idToSort = new Map(ordered.map((id, index) => [String(id), index]));
const patched = { ...categories };
const patched = { ...categoryAutomat.state.categories };
for (const node of Object.values(patched)) {
if (node.parentId != null && String(node.parentId) === parentKey && idToSort.has(String(node.id))) {
patched[String(node.id)] = { ...node, sort: idToSort.get(String(node.id)) };