From bd6e737ec687e5edb5a3bb05a1edee3465143d43 Mon Sep 17 00:00:00 2001 From: Carlos Valente <34649812+cpvalente@users.noreply.github.com> Date: Fri, 19 May 2023 23:32:27 +0200 Subject: [PATCH] fix: reset rundown on upload (#398) --- .../src/controllers/ontimeController.ts | 5 ++-- apps/server/src/services/RundownService.ts | 23 +++++++++---------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/apps/server/src/controllers/ontimeController.ts b/apps/server/src/controllers/ontimeController.ts index a7ed21705..0e2db0821 100644 --- a/apps/server/src/controllers/ontimeController.ts +++ b/apps/server/src/controllers/ontimeController.ts @@ -10,8 +10,7 @@ import { eventStore } from '../stores/EventStore.js'; import { resolveDbPath } from '../setup.js'; import { oscIntegration } from '../services/integration-service/OscIntegration.js'; import { logger } from '../classes/Logger.js'; -import { deleteAllEvents } from '../services/RundownService.js'; -import { sendRefetch } from '../adapters/websocketAux.js'; +import { deleteAllEvents, forceReset } from '../services/RundownService.js'; // Create controller for GET request to '/ontime/poll' // Returns data for current state @@ -71,7 +70,7 @@ const uploadAndParse = async (file, req, res, options) => { await DataProvider.mergeIntoData(result.data); } } - sendRefetch(); + forceReset(); res.sendStatus(200); } else { res.status(400).send({ message: 'Failed parsing, no data' }); diff --git a/apps/server/src/services/RundownService.ts b/apps/server/src/services/RundownService.ts index 7e860803f..0dc8aeb94 100644 --- a/apps/server/src/services/RundownService.ts +++ b/apps/server/src/services/RundownService.ts @@ -1,22 +1,21 @@ -import { - OntimeBaseEvent, - OntimeBlock, - OntimeDelay, - OntimeEvent, - SupportedEvent, -} from 'ontime-types'; +import { OntimeBaseEvent, OntimeBlock, OntimeDelay, OntimeEvent, SupportedEvent } from 'ontime-types'; import { generateId } from 'ontime-utils'; import { DataProvider } from '../classes/data-provider/DataProvider.js'; -import { - block as blockDef, - delay as delayDef, - event as eventDef, -} from '../models/eventsDefinition.js'; +import { block as blockDef, delay as delayDef, event as eventDef } from '../models/eventsDefinition.js'; import { MAX_EVENTS } from '../settings.js'; import { EventLoader, eventLoader } from '../classes/event-loader/EventLoader.js'; import { eventTimer } from './TimerService.js'; import { sendRefetch } from '../adapters/websocketAux.js'; +/** + * Forces rundown to be recalculated + * To be used when we know the rundown has changed completely + */ +export function forceReset() { + eventLoader.reset(); + sendRefetch(); +} + /** * Checks if a list of IDs is in the current selection */