* crude UI
* add server functionalety
* better event trigger list
* fix default value
* remove log
* add trigger to recalculate whitelist
* use DTO type
* fix rebase
* one callback for delete and submit
* refactor
* add invalid description
* clean up commits
* cleanup
* refactor: find event triggers in `triggerAutomations`
* refactor: switch to flat array for event triggers
* prevent deleting a automation that is in use
* refactor
* refactor: extract EventEditorCustom
* move trigger options to separate file
* move trigger edit down a file level
* cleanup
* spelling
* refactor: ui review proposal
* change default value
* fix delete filter
---------
Co-authored-by: Carlos Valente <carlosvalente@pm.me>
* create report service
* write report from runtimeState
* use in UI
* clear report
* update types
* clear all from settings menu
* rearence rightclik menu
* refactor styling
* also report roll events
* ontime/under time is same colour
* refactor reporter
* add target to ontime-refetch
* remove menu
* fectch only on message from server
* memo useGetEventReport
* refactor
* use staleTime
* dont add to menu yet
* implement review
* clear all from menu
* fix merge
* start end show
* combine test for the go button text and action
* add report to menu
* extract csv utility
* report management
* unneeded async
* small refacort of triggerReportEntry
---------
Co-authored-by: Carlos Valente <carlosvalente@pm.me>
welcome modal is persisted in app state
created endpoints to set the visibility
added UI to support feature
Co-authored-by: Carlos Valente
<34649812+cpvalente@users.noreply.github.com>
* detect `EADDRINUSE` on server start
* @ts-expect-error
* send portError to electron
* use escalateErrorFn
* dont move in docker
* allow errors to be sendt to electron UI
* Log after the new port is found
* Update comment
Co-authored-by: Carlos Valente <34649812+cpvalente@users.noreply.github.com>
* update comment
Co-authored-by: Carlos Valente <34649812+cpvalente@users.noreply.github.com>
* update comment
Co-authored-by: Carlos Valente <34649812+cpvalente@users.noreply.github.com>
* rename to escalate
* extract `serverTryDesiredPort`
* type check server.address()
* request shutdown on `unrecoverable` `escalateError`
* combine network utils
* reject promise
* not unrecoverable by default
* unneeded assignment
---------
Co-authored-by: Carlos Valente <34649812+cpvalente@users.noreply.github.com>
* use xlsx
* add existing custom fields to import map
* keep colours of existing custom fields
* use unknown
* fix
* revert
* allow space and upper case
* fix test
* define empty sheet
* 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>
* 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