From 0fbba50b2fb13117764381a12d6e72acda5ee5eb Mon Sep 17 00:00:00 2001 From: proddy Date: Sun, 28 Jul 2024 10:56:33 +0200 Subject: [PATCH 1/2] updates to scheduler web --- .../src/app/main/CustomEntitiesDialog.tsx | 2 +- .../src/app/main/CustomizationDialog.tsx | 2 +- interface/src/app/main/Scheduler.tsx | 46 +++++++++---------- interface/src/app/main/SchedulerDialog.tsx | 3 +- .../src/app/main/SensorsAnalogDialog.tsx | 2 +- .../src/app/main/SensorsTemperatureDialog.tsx | 2 +- 6 files changed, 29 insertions(+), 28 deletions(-) diff --git a/interface/src/app/main/CustomEntitiesDialog.tsx b/interface/src/app/main/CustomEntitiesDialog.tsx index 285ae9fff..4a62c84ac 100644 --- a/interface/src/app/main/CustomEntitiesDialog.tsx +++ b/interface/src/app/main/CustomEntitiesDialog.tsx @@ -64,7 +64,7 @@ const CustomEntitiesDialog = ({ } }, [open, selectedItem]); - const handleClose = (event: object, reason: 'backdropClick' | 'escapeKeyDown') => { + const handleClose = (_event, reason: 'backdropClick' | 'escapeKeyDown') => { if (reason !== 'backdropClick') { onClose(); } diff --git a/interface/src/app/main/CustomizationDialog.tsx b/interface/src/app/main/CustomizationDialog.tsx index bd7ac45b2..cb03bcbae 100644 --- a/interface/src/app/main/CustomizationDialog.tsx +++ b/interface/src/app/main/CustomizationDialog.tsx @@ -54,7 +54,7 @@ const CustomizationDialog = ({ } }, [open, selectedItem]); - const handleClose = (event: object, reason: 'backdropClick' | 'escapeKeyDown') => { + const handleClose = (_event, reason: 'backdropClick' | 'escapeKeyDown') => { if (reason !== 'backdropClick') { onClose(); } diff --git a/interface/src/app/main/Scheduler.tsx b/interface/src/app/main/Scheduler.tsx index 168be4b36..0c3327aea 100644 --- a/interface/src/app/main/Scheduler.tsx +++ b/interface/src/app/main/Scheduler.tsx @@ -219,27 +219,33 @@ const Scheduler: FC = () => { = ScheduleFlag.SCHEDULE_TIMER && si.flags !== flag - ? 'gray' - : (si.flags & flag) === flag - ? 'primary' - : 'grey' - } + color={(si.flags & flag) === flag ? 'primary' : 'grey'} > - {flag === ScheduleFlag.SCHEDULE_TIMER - ? LL.TIMER(0) - : flag === ScheduleFlag.SCHEDULE_ONCHANGE - ? 'On Change' - : flag === ScheduleFlag.SCHEDULE_CONDITION - ? 'Condition' - : dow[Math.log(flag) / Math.log(2)]} + {dow[Math.log(flag) / Math.log(2)]} ); + const scheduleType = (si: ScheduleItem) => ( + + + {si.flags === ScheduleFlag.SCHEDULE_IMMEDIATE ? ( + <>Immediate + ) : si.flags === ScheduleFlag.SCHEDULE_TIMER ? ( + <>Timer + ) : si.flags === ScheduleFlag.SCHEDULE_CONDITION ? ( + <>Condition + ) : si.flags === ScheduleFlag.SCHEDULE_ONCHANGE ? ( + <>On Change + ) : ( + <> + )} + + + ); + useLayoutTitle(LL.SCHEDULER()); return ( @@ -283,9 +289,9 @@ const Scheduler: FC = () => { - {si.flags === ScheduleFlag.SCHEDULE_IMMEDIATE ? ( - <> - ) : si.flags < ScheduleFlag.SCHEDULE_TIMER ? ( + {si.flags > 127 ? ( + scheduleType(si) + ) : ( <> {dayBox(si, ScheduleFlag.SCHEDULE_MON)} {dayBox(si, ScheduleFlag.SCHEDULE_TUE)} @@ -295,12 +301,6 @@ const Scheduler: FC = () => { {dayBox(si, ScheduleFlag.SCHEDULE_SAT)} {dayBox(si, ScheduleFlag.SCHEDULE_SUN)} - ) : ( - <> - {dayBox(si, ScheduleFlag.SCHEDULE_TIMER)} - {dayBox(si, ScheduleFlag.SCHEDULE_ONCHANGE)} - {dayBox(si, ScheduleFlag.SCHEDULE_CONDITION)} - )} diff --git a/interface/src/app/main/SchedulerDialog.tsx b/interface/src/app/main/SchedulerDialog.tsx index 59a293d45..f2f211c0a 100644 --- a/interface/src/app/main/SchedulerDialog.tsx +++ b/interface/src/app/main/SchedulerDialog.tsx @@ -144,7 +144,7 @@ const SchedulerDialog = ({ ); - const handleClose = (event: object, reason: 'backdropClick' | 'escapeKeyDown') => { + const handleClose = (_event, reason: 'backdropClick' | 'escapeKeyDown') => { if (reason !== 'backdropClick') { onClose(); } @@ -164,6 +164,7 @@ const SchedulerDialog = ({ exclusive disabled={!creating} onChange={(_event, flag: ScheduleFlag) => { + setFieldErrors(undefined); // clear any validation errors setScheduleType(flag); // wipe the time field when changing the schedule type setEditItem({ ...editItem, time: '' }); diff --git a/interface/src/app/main/SensorsAnalogDialog.tsx b/interface/src/app/main/SensorsAnalogDialog.tsx index 1249e9637..59700ba4c 100644 --- a/interface/src/app/main/SensorsAnalogDialog.tsx +++ b/interface/src/app/main/SensorsAnalogDialog.tsx @@ -57,7 +57,7 @@ const SensorsAnalogDialog = ({ } }, [open, selectedItem]); - const handleClose = (event: object, reason: 'backdropClick' | 'escapeKeyDown') => { + const handleClose = (_event, reason: 'backdropClick' | 'escapeKeyDown') => { if (reason !== 'backdropClick') { onClose(); } diff --git a/interface/src/app/main/SensorsTemperatureDialog.tsx b/interface/src/app/main/SensorsTemperatureDialog.tsx index 433b3bdbf..cc3b94705 100644 --- a/interface/src/app/main/SensorsTemperatureDialog.tsx +++ b/interface/src/app/main/SensorsTemperatureDialog.tsx @@ -52,7 +52,7 @@ const SensorsTemperatureDialog = ({ } }, [open, selectedItem]); - const handleClose = (event: object, reason: 'backdropClick' | 'escapeKeyDown') => { + const handleClose = (_event, reason: 'backdropClick' | 'escapeKeyDown') => { if (reason !== 'backdropClick') { onClose(); } From a14d3b98e13042a3f8334dbdd11fe85844d4d96c Mon Sep 17 00:00:00 2001 From: proddy Date: Sun, 28 Jul 2024 11:02:51 +0200 Subject: [PATCH 2/2] must have one button type selected --- interface/src/app/main/SchedulerDialog.tsx | 32 ++++++++++++---------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/interface/src/app/main/SchedulerDialog.tsx b/interface/src/app/main/SchedulerDialog.tsx index f2f211c0a..0df8d0f17 100644 --- a/interface/src/app/main/SchedulerDialog.tsx +++ b/interface/src/app/main/SchedulerDialog.tsx @@ -164,21 +164,23 @@ const SchedulerDialog = ({ exclusive disabled={!creating} onChange={(_event, flag: ScheduleFlag) => { - setFieldErrors(undefined); // clear any validation errors - setScheduleType(flag); - // wipe the time field when changing the schedule type - setEditItem({ ...editItem, time: '' }); - // set the flags based on type - // 0-127 is day schedule - // 128 is timer - // 129 is on change - // 130 is on condition - // 132 is immediate - setEditItem( - flag === ScheduleFlag.SCHEDULE_DAY - ? { ...editItem, flags: 0 } - : { ...editItem, flags: flag } - ); + if (flag !== null) { + setFieldErrors(undefined); // clear any validation errors + setScheduleType(flag); + // wipe the time field when changing the schedule type + setEditItem({ ...editItem, time: '' }); + // set the flags based on type + // 0-127 is day schedule + // 128 is timer + // 129 is on change + // 130 is on condition + // 132 is immediate + setEditItem( + flag === ScheduleFlag.SCHEDULE_DAY + ? { ...editItem, flags: 0 } + : { ...editItem, flags: flag } + ); + } }} >