* 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>
* create db event type
* dont use it yet
* convert to and from database type
* type needed in one place in client
* use flatMap to filter out unknow stuff
* leave revision in save file
* move to utils
* make test
* destructur entry
* simple test
* throw in rundownToDatabaseRundown
* clerify comment
* Refactor: avoid shadowing the rundown variable in rundownCache (#1409)
---------
Co-authored-by: Carlos Valente <34649812+cpvalente@users.noreply.github.com>
* rename to DAO
* add simple edit test
* only the generate function clears the state state
* strict guard for custom fields
* fix small strict issues
* ensure deep copy
* safely set isStale
* todo is done
* small type error
* these functions can work on DAO entries
* only reat rundown as DAO on initial load and the cast immediately and esure all fields are present
* eslint comment
Co-authored-by: Carlos Valente <34649812+cpvalente@users.noreply.github.com>
* fix spelling
Co-authored-by: Carlos Valente <34649812+cpvalente@users.noreply.github.com>
* fix spelling
Co-authored-by: Carlos Valente <34649812+cpvalente@users.noreply.github.com>
* comment not needed
* setIsStale
* remove DAO
* clean up commits
* remove unneeded async/await
* revert test
---------
Co-authored-by: Carlos Valente <34649812+cpvalente@users.noreply.github.com>
* remove custom field lowercasing
* don't allow custom field form to submit duplicate field
* remove unused
* update custom field tests
* also keep upper case when editing
* show key in UI
* also kep upper case when creating a new field
* fix test
* allow old forced case keys to stay as is
* allow space
* add extension to import
* supply initial key to CustomFieldForm
* refactor: improve element contrast
* refactor: style and composition
* consistent use of `customFieldLabelToKey`
* fix CopyTag
* remove log
---------
Co-authored-by: arc-alex <ac@omnivox.dk>
Co-authored-by: Carlos Valente <carlosvalente@pm.me>
* pass full rundown to loadNow
* remove prevBlock from state
* refactor: simplify load logic (#1174)
* send clock to client on block start to avoid it showing -1 in the client
---------
Co-authored-by: Carlos Valente <34649812+cpvalente@users.noreply.github.com>
* chore: escalate stack trace to console
* refactor: event finding in roll
* docs: initial roll specification
* refactor: call to roll
* refactor: normalise index
* refactor: roll into next event
* refactor: hot reload on waiting to roll
* refactor: wait to roll next
* add frozen flag to runtime store
* add middleware for when frozen
* prevent rundown editing when frozen
* add endpoint to router to set frozen state
* add frozen property to rundown placeholder in client
* setup detection of TImerPhase changes
* add integration event for transition to warning
* add integration event for transition to danger
---------
Co-authored-by: Carlos Valente <34649812+cpvalente@users.noreply.github.com>