From 8cfffd32c726215cb2d1c795f11d2a5149200316 Mon Sep 17 00:00:00 2001 From: Carlos Valente Date: Sat, 27 Jun 2026 16:30:04 +0200 Subject: [PATCH] fix: duplicate rundowns from service layer --- apps/server/src/api-data/rundown/rundown.service.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/apps/server/src/api-data/rundown/rundown.service.ts b/apps/server/src/api-data/rundown/rundown.service.ts index 0948547f1..ed696fcbb 100644 --- a/apps/server/src/api-data/rundown/rundown.service.ts +++ b/apps/server/src/api-data/rundown/rundown.service.ts @@ -16,7 +16,7 @@ import { isOntimeEvent, isOntimeGroup, } from 'ontime-types'; -import { customFieldLabelToKey, getInsertAfterId, resolveInsertParent } from 'ontime-utils'; +import { customFieldLabelToKey, generateId, getInsertAfterId, resolveInsertParent } from 'ontime-utils'; import { sendRefetch } from '../../adapters/WebsocketAdapter.js'; import { getDataProvider } from '../../classes/data-provider/DataProvider.js'; @@ -34,7 +34,7 @@ import { updateBackgroundRundown, } from './rundown.dao.js'; import type { RundownMetadata } from './rundown.types.js'; -import { duplicateRundown, generateEvent, getIntegerAndFraction, hasChanges } from './rundown.utils.js'; +import { generateEvent, getIntegerAndFraction, hasChanges } from './rundown.utils.js'; /** * creates a new entry with given data @@ -726,7 +726,11 @@ export async function duplicateExistingRundown(id: string) { const dataProvider = getDataProvider(); const rundown = dataProvider.getRundown(id); - const duplicatedRundown = duplicateRundown(rundown, `Copy of ${rundown.title}`); + const duplicatedRundown: Rundown = structuredClone(rundown); + duplicatedRundown.id = generateId(); + duplicatedRundown.title = `Copy of ${rundown.title}`; + duplicatedRundown.revision = 0; + await dataProvider.setRundown(duplicatedRundown.id, duplicatedRundown); setImmediate(() => {