don't allow day schedule without selecting a day, default to daily

This commit is contained in:
MichaelDvP
2026-01-09 16:29:12 +01:00
parent 0777f420b0
commit 86b395d612
2 changed files with 7 additions and 5 deletions

View File

@@ -41,6 +41,7 @@ const MIN_ID = -100;
const MAX_ID = 100; const MAX_ID = 100;
const ICON_SIZE = 16; const ICON_SIZE = 16;
const SCHEDULE_FLAG_THRESHOLD = 127; const SCHEDULE_FLAG_THRESHOLD = 127;
const FLAG_ALL_DAYS = 127;
const REFERENCE_YEAR = 2017; const REFERENCE_YEAR = 2017;
const REFERENCE_MONTH = '01'; const REFERENCE_MONTH = '01';
const LOG_2 = Math.log(2); const LOG_2 = Math.log(2);
@@ -51,7 +52,7 @@ const WEEK_DAYS = [1, 2, 3, 4, 5, 6, 7] as const;
const DEFAULT_SCHEDULE_ITEM: Omit<ScheduleItem, 'id' | 'o_id'> = { const DEFAULT_SCHEDULE_ITEM: Omit<ScheduleItem, 'id' | 'o_id'> = {
active: false, active: false,
deleted: false, deleted: false,
flags: ScheduleFlag.SCHEDULE_DAY, flags: FLAG_ALL_DAYS,
time: '', time: '',
cmd: '', cmd: '',
value: '', value: '',

View File

@@ -33,7 +33,8 @@ import type { ScheduleItem } from './types';
// Constants // Constants
const FLAG_MASK_127 = 127; const FLAG_MASK_127 = 127;
const SCHEDULE_TYPE_THRESHOLD = 128; const SCHEDULE_TYPE_THRESHOLD = 127;
const FLAG_ALL_DAYS = 127;
const DEFAULT_TIME = '00:00'; const DEFAULT_TIME = '00:00';
const TYPOGRAPHY_FONT_SIZE = 10; const TYPOGRAPHY_FONT_SIZE = 10;
@@ -104,7 +105,7 @@ const SchedulerDialog = ({
// 130 is on condition // 130 is on condition
// 132 is immediate // 132 is immediate
setScheduleType( setScheduleType(
selectedItem.flags < SCHEDULE_TYPE_THRESHOLD selectedItem.flags <= SCHEDULE_TYPE_THRESHOLD
? ScheduleFlag.SCHEDULE_DAY ? ScheduleFlag.SCHEDULE_DAY
: selectedItem.flags : selectedItem.flags
); );
@@ -181,7 +182,7 @@ const SchedulerDialog = ({
setScheduleType(flag); setScheduleType(flag);
// wipe the time field when changing the schedule type // wipe the time field when changing the schedule type
// set the flags based on type // set the flags based on type
const newFlags = flag === ScheduleFlag.SCHEDULE_DAY ? 0 : flag; const newFlags = flag === ScheduleFlag.SCHEDULE_DAY ? FLAG_ALL_DAYS : flag;
setEditItem((prev) => ({ ...prev, time: '', flags: newFlags })); setEditItem((prev) => ({ ...prev, time: '', flags: newFlags }));
} }
}, },
@@ -190,7 +191,7 @@ const SchedulerDialog = ({
const handleDOWChange = useCallback( const handleDOWChange = useCallback(
(_event: React.SyntheticEvent<HTMLElement>, flags: string[]) => { (_event: React.SyntheticEvent<HTMLElement>, flags: string[]) => {
const newFlags = getFlagDOWnumber(flags); const newFlags = getFlagDOWnumber(flags) === 0 ? FLAG_ALL_DAYS : getFlagDOWnumber(flags);
setEditItem((prev) => ({ ...prev, flags: newFlags })); setEditItem((prev) => ({ ...prev, flags: newFlags }));
}, },
[getFlagDOWnumber] [getFlagDOWnumber]