mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-11 18:33:53 +00:00
3998b8927d
* feat: warning and danger per event --------- Co-authored-by: Fabian Posenau <fabian@fphome.de>
45 lines
1.1 KiB
TypeScript
45 lines
1.1 KiB
TypeScript
export type TimeEntryField = 'timeStart' | 'timeEnd' | 'durationOverride' | 'timeWarning' | 'timeDanger';
|
|
|
|
/**
|
|
* @description Checks which field the value relates to
|
|
*/
|
|
export const handleTimeEntry = (
|
|
field: TimeEntryField,
|
|
val: number,
|
|
timeStart: number,
|
|
timeEnd: number,
|
|
): { start: number; end: number; durationOverride: boolean } => {
|
|
let start = timeStart;
|
|
let end = timeEnd;
|
|
let durationOverride = false;
|
|
|
|
if (field === 'timeStart') {
|
|
start = val;
|
|
} else if (field === 'timeEnd') {
|
|
end = val;
|
|
} else {
|
|
durationOverride = field === 'durationOverride';
|
|
}
|
|
return { start, end, durationOverride };
|
|
};
|
|
|
|
/**
|
|
* @description Validates time entry
|
|
*/
|
|
export const validateEntry = (
|
|
field: TimeEntryField,
|
|
value: number,
|
|
timeStart: number,
|
|
timeEnd: number,
|
|
): { value: boolean; warnings: { start?: string; end?: string; duration?: string } } => {
|
|
const validate = { value: true, warnings: { start: '', end: '', duration: '' } };
|
|
|
|
const { start, end } = handleTimeEntry(field, value, timeStart, timeEnd);
|
|
|
|
if (end < start) {
|
|
validate.warnings.start = 'Start time later than end time';
|
|
}
|
|
|
|
return validate;
|
|
};
|