feat: improved duplicate (#927)

* feat: improved duplicate

* feat: enhance item duplication process with transaction handling and error logging for attachments and fields

* feat: add error logging during transaction rollback in item duplication process for better debugging

* feat: don't try and rollback is the commit succeeded

* feat: add customizable duplication options for items, including prefix and field copying settings in API and UI

* fix: simplify duplication checks for custom fields, attachments, and maintenance entries in ItemsRepository duplication method

* refactor: import DuplicateSettings type from composables and sort import issues
This commit is contained in:
Tonya
2025-08-23 16:17:15 +01:00
committed by GitHub
parent 8b711eda99
commit 788d0b1c7e
18 changed files with 643 additions and 29 deletions

View File

@@ -4,6 +4,13 @@ import type { DaisyTheme } from "~~/lib/data/themes";
export type ViewType = "table" | "card" | "tree";
export type DuplicateSettings = {
copyMaintenance: boolean;
copyAttachments: boolean;
copyCustomFields: boolean;
copyPrefixOverride: string | null;
};
export type LocationViewPreferences = {
showDetails: boolean;
showEmpty: boolean;
@@ -15,6 +22,7 @@ export type LocationViewPreferences = {
displayLegacyHeader: boolean;
language?: string;
overrideFormatLocale?: string;
duplicateSettings: DuplicateSettings;
};
/**
@@ -34,6 +42,12 @@ export function useViewPreferences(): Ref<LocationViewPreferences> {
displayLegacyHeader: false,
language: null,
overrideFormatLocale: null,
duplicateSettings: {
copyMaintenance: false,
copyAttachments: true,
copyCustomFields: true,
copyPrefixOverride: null,
},
},
{ mergeDefaults: true }
);