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 */