diff --git a/interface/package.json b/interface/package.json
index 779215c71..67039aa61 100644
--- a/interface/package.json
+++ b/interface/package.json
@@ -44,7 +44,6 @@
"react-icons": "^4.8.0",
"react-router-dom": "^6.8.2",
"sockette": "^2.0.6",
- "styled-components": "^5.3.8",
"typesafe-i18n": "^5.24.2",
"typescript": "^4.9.5"
},
diff --git a/interface/src/i18n/de/index.ts b/interface/src/i18n/de/index.ts
index 73a54d5b3..c3140937b 100644
--- a/interface/src/i18n/de/index.ts
+++ b/interface/src/i18n/de/index.ts
@@ -311,10 +311,10 @@ const de: Translation = {
LEAVE: 'Verlassen',
SCHEDULER: 'Planer',
SCHEDULER_HELP_1: 'Fügen Sie eigene, geplante Befehle zur Automatisierung hinzu. Vergeben Sie einen Entitätsnamen um die Aktivierung über API/Mqtt zu steuern',
+ SCHEDULER_HELP_2: 'Use 00:00 to trigger on boot', // TODO translate
SCHEDULE: 'Zeitplan',
TIME: 'Zeit',
TIMER: 'Timer',
- WEEKLY: 'Wöchentlich',
SCHEDULE_SAVED: 'Plan gespeichert',
SCHEDULE_TIMER_1: 'beim Start',
SCHEDULE_TIMER_2: 'jede Minute',
diff --git a/interface/src/i18n/en/index.ts b/interface/src/i18n/en/index.ts
index 6daa59ad8..7b9d37afa 100644
--- a/interface/src/i18n/en/index.ts
+++ b/interface/src/i18n/en/index.ts
@@ -311,10 +311,10 @@ const en: Translation = {
LEAVE: 'Leave',
SCHEDULER: 'Scheduler',
SCHEDULER_HELP_1: 'Add custom scheduled commands to automate EMS-ESP. Add entity name to control activation by api/mqtt',
+ SCHEDULER_HELP_2: 'Use 00:00 to trigger on boot',
SCHEDULE: 'Schedule',
TIME: 'Time',
TIMER: 'Timer',
- WEEKLY: 'Weekly',
SCHEDULE_SAVED: 'Schedule updated',
SCHEDULE_TIMER_1: 'on startup',
SCHEDULE_TIMER_2: 'every minute',
diff --git a/interface/src/i18n/fr/index.ts b/interface/src/i18n/fr/index.ts
index 001b8d880..560624f7a 100644
--- a/interface/src/i18n/fr/index.ts
+++ b/interface/src/i18n/fr/index.ts
@@ -311,10 +311,10 @@ const fr: Translation = {
LEAVE: 'Leave', // TODO translate
SCHEDULER: 'Scheduler', // TODO translate
SCHEDULER_HELP_1: 'Add custom scheduled commands to automate EMS-ESP. Add entity name to control activation by api/mqtt', // TODO translate
+ SCHEDULER_HELP_2: 'Use 00:00 to trigger on boot', // TODO translate
SCHEDULE: 'Schedule', // TODO translate
TIME: 'Time', // TODO translate
TIMER: 'Timer', // TODO translate
- WEEKLY: 'Weekly', // TODO translate
SCHEDULE_SAVED: 'Schedule updated', // TODO translate
SCHEDULE_TIMER_1: 'on startup', // TODO translate
SCHEDULE_TIMER_2: 'every minute', // TODO translate
diff --git a/interface/src/i18n/nl/index.ts b/interface/src/i18n/nl/index.ts
index e24c33c63..8b5ff209f 100644
--- a/interface/src/i18n/nl/index.ts
+++ b/interface/src/i18n/nl/index.ts
@@ -311,10 +311,10 @@ const nl: Translation = {
LEAVE: 'Leave', // TODO translate
SCHEDULER: 'Scheduler', // TODO translate
SCHEDULER_HELP_1: 'Add custom scheduled commands to automate EMS-ESP. Add entity name to control activation by api/mqtt', // TODO translate
+ SCHEDULER_HELP_2: 'Use 00:00 to trigger on boot', // TODO translate
SCHEDULE: 'Schedule', // TODO translate
TIME: 'Time', // TODO translate
TIMER: 'Timer', // TODO translate
- WEEKLY: 'Weekly', // TODO translate
SCHEDULE_SAVED: 'Schedule updated', // TODO translate
SCHEDULE_TIMER_1: 'on startup', // TODO translate
SCHEDULE_TIMER_2: 'every minute', // TODO translate
diff --git a/interface/src/i18n/no/index.ts b/interface/src/i18n/no/index.ts
index aeee08059..81bfa7a9b 100644
--- a/interface/src/i18n/no/index.ts
+++ b/interface/src/i18n/no/index.ts
@@ -311,10 +311,10 @@ const no: Translation = {
LEAVE: 'Leave', // TODO translate
SCHEDULER: 'Scheduler', // TODO translate
SCHEDULER_HELP_1: 'Add custom scheduled commands to automate EMS-ESP. Add entity name to control activation by api/mqtt', // TODO translate
+ SCHEDULER_HELP_2: 'Use 00:00 to trigger on boot', // TODO translate
SCHEDULE: 'Schedule', // TODO translate
TIME: 'Time', // TODO translate
TIMER: 'Timer', // TODO translate
- WEEKLY: 'Weekly', // TODO translate
SCHEDULE_SAVED: 'Schedule updated', // TODO translate
SCHEDULE_TIMER_1: 'on startup', // TODO translate
SCHEDULE_TIMER_2: 'every minute', // TODO translate
diff --git a/interface/src/i18n/pl/index.ts b/interface/src/i18n/pl/index.ts
index b963a93ef..529b3d536 100644
--- a/interface/src/i18n/pl/index.ts
+++ b/interface/src/i18n/pl/index.ts
@@ -311,10 +311,10 @@ const pl: BaseTranslation = {
LEAVE: 'Leave', // TODO translate
SCHEDULER: 'Scheduler', // TODO translate
SCHEDULER_HELP_1: 'Add custom scheduled commands to automate EMS-ESP. Add entity name to control activation by api/mqtt', // TODO translate
+ SCHEDULER_HELP_2: 'Use 00:00 to trigger on boot', // TODO translate
SCHEDULE: 'Schedule', // TODO translate SCHEDULE: 'Schedule', // TODO translate
TIME: 'Time', // TODO translate
TIMER: 'Timer', // TODO translate
- WEEKLY: 'Weekly', // TODO translate
SCHEDULE_SAVED: 'Schedule updated', // TODO translate
SCHEDULE_TIMER_1: 'on startup', // TODO translate
SCHEDULE_TIMER_2: 'every minute', // TODO translate
diff --git a/interface/src/i18n/sv/index.ts b/interface/src/i18n/sv/index.ts
index 23ecddf6c..88914c749 100644
--- a/interface/src/i18n/sv/index.ts
+++ b/interface/src/i18n/sv/index.ts
@@ -311,10 +311,10 @@ const sv: Translation = {
LEAVE: 'Leave', // TODO translate
SCHEDULER: 'Scheduler', // TODO translate
SCHEDULER_HELP_1: 'Add custom scheduled commands to automate EMS-ESP. Add entity name to control activation by api/mqtt', // TODO translate
+ SCHEDULER_HELP_2: 'Use 00:00 to trigger on boot', // TODO translate
SCHEDULE: 'Schedule', // TODO translate
TIME: 'Time', // TODO translate
TIMER: 'Timer', // TODO translate
- WEEKLY: 'Weekly', // TODO translate
SCHEDULE_SAVED: 'Schedule updated', // TODO translate
SCHEDULE_TIMER_1: 'on startup', // TODO translate
SCHEDULE_TIMER_2: 'every minute', // TODO translate
diff --git a/interface/src/i18n/tr/index.ts b/interface/src/i18n/tr/index.ts
index 35ea50a16..5b69acfad 100644
--- a/interface/src/i18n/tr/index.ts
+++ b/interface/src/i18n/tr/index.ts
@@ -311,10 +311,10 @@ const tr: Translation = {
LEAVE: 'Leave', // TODO translate
SCHEDULER: 'Scheduler', // TODO translate
SCHEDULER_HELP_1: 'Add custom scheduled commands to automate EMS-ESP. Add entity name to control activation by api/mqtt', // TODO translate
+ SCHEDULER_HELP_2: 'Use 00:00 to trigger on boot', // TODO translate
SCHEDULE: 'Schedule', // TODO translate
TIME: 'Time', // TODO translate
TIMER: 'Timer', // TODO translate
- WEEKLY: 'Weekly', // TODO translate
SCHEDULE_SAVED: 'Schedule updated', // TODO translate
SCHEDULE_TIMER_1: 'on startup', // TODO translate
SCHEDULE_TIMER_2: 'every minute', // TODO translate
diff --git a/interface/src/project/SettingsScheduler.tsx b/interface/src/project/SettingsScheduler.tsx
index 31d2ce41d..a3e05211b 100644
--- a/interface/src/project/SettingsScheduler.tsx
+++ b/interface/src/project/SettingsScheduler.tsx
@@ -6,26 +6,17 @@ import {
Typography,
Box,
Stack,
- Paper,
Dialog,
DialogActions,
DialogContent,
DialogTitle,
ToggleButton,
- MenuItem,
ToggleButtonGroup,
Checkbox,
TextField,
- Radio,
- RadioGroup,
- FormControlLabel
+ Divider
} from '@mui/material';
-// import { styled } from '@mui/material/styles';
-
-import styled from 'styled-components';
-
-
import { useTheme } from '@table-library/react-table-library/theme';
import { Table, Header, HeaderRow, HeaderCell, Body, Row, Cell } from '@table-library/react-table-library/table';
@@ -59,31 +50,18 @@ import { useI18nContext } from 'i18n/i18n-react';
import * as EMSESP from './api';
-interface ItemProps {
- enabled: boolean;
+function makeid() { // TODO finish this!
+ let result = '';
+ const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
+ const charactersLength = characters.length;
+ let counter = 0;
+ while (counter < 4) {
+ result += characters.charAt(Math.floor(Math.random() * charactersLength));
+ counter += 1;
+ }
+ return result;
}
-const Item = styled(Paper)(({ color, theme }) => ({
- // backgroundColor: theme.palette.mode === 'dark' ? '#1A2027' : '#fff',
- ...theme.typography.body2,
- textAlign: 'center',
- // color: ${({enabled}) => enabled ? 'red' : 'green'};
- fontSize: 10,
- padding: '6px 12px',
- border: '1px solid',
- lineHeight: 1.5,
- backgroundColor: '#1A2027',
- borderColor: '#1A2027',
- // color: theme.palette.text.secondary,
-}));
-
-const Item2 = styled.paper`
-fontSize: 10;
-color: ${props => props.enabled ? 'red' : 'green'};
-`;
-
-
-
const SettingsScheduler: FC = () => {
const { LL, locale } = useI18nContext();
@@ -295,8 +273,7 @@ const SettingsScheduler: FC = () => {
}
};
- function getFlagName(si: ScheduleItem, flag: number) {
- let text = '';
+ function getFlagName(flag: number) {
if ((flag & ScheduleFlag.SCHEDULE_MON) === ScheduleFlag.SCHEDULE_MON) {
return dow[1];
}
@@ -321,51 +298,25 @@ const SettingsScheduler: FC = () => {
if ((flag & ScheduleFlag.SCHEDULE_TIMER) === ScheduleFlag.SCHEDULE_TIMER) {
return LL.TIMER();
}
- return "";
+ return '';
}
- function showFlag(si: ScheduleItem, flag: number) {
- let text = '';
- if ((flag & ScheduleFlag.SCHEDULE_MON) === ScheduleFlag.SCHEDULE_MON) {
- text = dow[1];
- }
- if ((flag & ScheduleFlag.SCHEDULE_TUE) === ScheduleFlag.SCHEDULE_TUE) {
- text = dow[2];
- }
- if ((flag & ScheduleFlag.SCHEDULE_WED) === ScheduleFlag.SCHEDULE_WED) {
- text = dow[3];
- }
- if ((flag & ScheduleFlag.SCHEDULE_THU) === ScheduleFlag.SCHEDULE_THU) {
- text = dow[4];
- }
- if ((flag & ScheduleFlag.SCHEDULE_FRI) === ScheduleFlag.SCHEDULE_FRI) {
- text = dow[5];
- }
- if ((flag & ScheduleFlag.SCHEDULE_SAT) === ScheduleFlag.SCHEDULE_SAT) {
- text = dow[6];
- }
- if ((flag & ScheduleFlag.SCHEDULE_SUN) === ScheduleFlag.SCHEDULE_SUN) {
- text = dow[0];
- }
- if ((flag & ScheduleFlag.SCHEDULE_TIMER) === ScheduleFlag.SCHEDULE_TIMER) {
- text = LL.TIMER();
- }
+ const dayBox = (si: ScheduleItem, flag: number) => (
+ <>
+
+
+ {getFlagName(flag)}
+
+
+
+ >
+ );
- return (
- <>
-
- {/* */}
-
-
-
- {text}
-
-
- >
- );
- }
+ const showFlag = (si: ScheduleItem, flag: number) => (
+
+ {getFlagName(flag)}
+
+ );
const editScheduleItem = (si: ScheduleItem) => {
if (si.name === undefined) {
@@ -409,9 +360,7 @@ const SettingsScheduler: FC = () => {
<>
-
-
-
+
{LL.SCHEDULE()}
{LL.TIME()}
{LL.COMMAND()}
@@ -422,48 +371,19 @@ const SettingsScheduler: FC = () => {
{tableList.map((si: ScheduleItem) => (
editScheduleItem(si)}>
+ | {si.active && } |
- {
- si.active = !si.active;
- setFlags(['']); // forces refresh
- }}
- />
- |
-
-
-
-
- - {getFlagName(si, ScheduleFlag.SCHEDULE_MON)}
-
- - {getFlagName(si, ScheduleFlag.SCHEDULE_TUE)}
-
-
-
-
-
-
- {/* {showFlag(si, ScheduleFlag.SCHEDULE_MON)}
- {showFlag(si, ScheduleFlag.SCHEDULE_TUE)}
- {showFlag(si, ScheduleFlag.SCHEDULE_WED)}
- {showFlag(si, ScheduleFlag.SCHEDULE_THU)}
- {showFlag(si, ScheduleFlag.SCHEDULE_FRI)}
- {showFlag(si, ScheduleFlag.SCHEDULE_SAT)}
- {showFlag(si, ScheduleFlag.SCHEDULE_SUN)}
- {showFlag(si, ScheduleFlag.SCHEDULE_TIMER)} */}
-
-
+
+
+ {dayBox(si, ScheduleFlag.SCHEDULE_MON)}
+ {dayBox(si, ScheduleFlag.SCHEDULE_TUE)}
+ {dayBox(si, ScheduleFlag.SCHEDULE_WED)}
+ {dayBox(si, ScheduleFlag.SCHEDULE_THU)}
+ {dayBox(si, ScheduleFlag.SCHEDULE_FRI)}
+ {dayBox(si, ScheduleFlag.SCHEDULE_SAT)}
+ {dayBox(si, ScheduleFlag.SCHEDULE_SUN)}
+ {dayBox(si, ScheduleFlag.SCHEDULE_TIMER)}
+
|
{si.time} |
{si.cmd} |
@@ -503,65 +423,61 @@ const SettingsScheduler: FC = () => {
const renderEditSchedule = () => {
if (scheduleItem) {
+ const isTimer = scheduleItem.flags === ScheduleFlag.SCHEDULE_TIMER;
return (