mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-20 06:29:07 +00:00
More rundown metadata (#1429)
* add dayOffset to OntimeEvent * refactor: isNewLatest * calculate totalDays * refactor: getTimeFromPrevious * add gap as dataset in OntimeEvent * use in ui * format overlap is just a simple text formatting, big test is not needed * add new fields where needed * update apply delay * show nex day eaven if there is no gap * create test * use buildin day offset in timeline * remove todo * consistent naming * make a calculateDayOffset util for rundownCache * refactor: checkIsNextDay to use dayOffset * spelling Co-authored-by: Carlos Valente <34649812+cpvalente@users.noreply.github.com> * remove unneeded test * remove todo * update test db * use data-testid * spelling Co-authored-by: Carlos Valente <34649812+cpvalente@users.noreply.github.com> * update comments * remove null option --------- Co-authored-by: Carlos Valente <34649812+cpvalente@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
9ba40c35a1
commit
e9a7cd0400
@@ -1,24 +1,21 @@
|
||||
import { checkIsNextDay } from './checkIsNextDay.js';
|
||||
import type { OntimeEvent } from 'ontime-types';
|
||||
|
||||
import { dayInMs } from './conversionUtils.js';
|
||||
|
||||
/**
|
||||
* Checks whether a new element is the latest in the list
|
||||
*/
|
||||
export function isNewLatest(timeStart: number, timeEnd: number, previousStart?: number, previousEnd?: number): boolean {
|
||||
export function isNewLatest(
|
||||
currentEvent: Pick<OntimeEvent, 'timeStart' | 'duration' | 'dayOffset'>,
|
||||
previousEvent?: Pick<OntimeEvent, 'timeStart' | 'duration' | 'dayOffset'>,
|
||||
) {
|
||||
// true if there is no previous
|
||||
if (previousStart === undefined || previousEnd === undefined) {
|
||||
if (!previousEvent) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// true if it starts after the previous is finished
|
||||
if (timeStart >= previousEnd) {
|
||||
return true;
|
||||
}
|
||||
const normalisedCurrentEnd = currentEvent.timeStart + currentEvent.duration + currentEvent.dayOffset * dayInMs;
|
||||
const normalisedPreviousEnd = previousEvent.timeStart + previousEvent.duration + previousEvent.dayOffset * dayInMs;
|
||||
|
||||
// true if it finishes later than previous
|
||||
if (timeEnd > previousEnd) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// true if it is the day after
|
||||
return checkIsNextDay(previousStart, timeStart, previousEnd - previousStart);
|
||||
return normalisedCurrentEnd >= normalisedPreviousEnd;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user