From 148e35ea5370a74413bd38889f35cac5e27dac07 Mon Sep 17 00:00:00 2001 From: proddy Date: Mon, 1 May 2023 13:39:12 +0200 Subject: [PATCH] improve device value helper text --- .../src/project/DashboardDevicesDialog.tsx | 22 +++++++++++++++++-- interface/src/project/validators.ts | 8 ++----- mock-api/server.js | 7 ++++++ src/locale_common.h | 14 ++++++------ 4 files changed, 36 insertions(+), 15 deletions(-) diff --git a/interface/src/project/DashboardDevicesDialog.tsx b/interface/src/project/DashboardDevicesDialog.tsx index 9631d0335..91bd958cb 100644 --- a/interface/src/project/DashboardDevicesDialog.tsx +++ b/interface/src/project/DashboardDevicesDialog.tsx @@ -83,6 +83,22 @@ const DashboarDevicesDialog = ({ open, onClose, onSave, selectedItem, validator } }; + const showHelperText = (dv: DeviceValue) => { + if (dv.h) { + return dv.h; + } + if (dv.l) { + return '[ ' + dv.l.join(' | ') + ' ]'; + } + if (dv.u !== DeviceValueUOM.NONE) { + if (dv.m && dv.x) { + return ''; + } + return ''; + } + return ''; + }; + return ( {selectedItem.v === '' && selectedItem.c ? LL.RUN_COMMAND() : LL.CHANGE_VALUE()} @@ -90,7 +106,7 @@ const DashboarDevicesDialog = ({ open, onClose, onSave, selectedItem, validator {editItem.id.slice(2)} - + {editItem.l && ( )} - {editItem.h && {editItem.h}} + + format: {showHelperText(editItem)} + diff --git a/interface/src/project/validators.ts b/interface/src/project/validators.ts index 64e1e21c0..1bae952ca 100644 --- a/interface/src/project/validators.ts +++ b/interface/src/project/validators.ts @@ -170,14 +170,10 @@ export const deviceValueItemValidation = (dv: DeviceValue) => { validator(rule: InternalRuleItem, value: string, callback: (error?: string) => void) { if (dv.u !== DeviceValueUOM.NONE && isNaN(+value)) { - // not a number - dv.m && dv.x - ? callback('Value must be a number between ' + dv.m + ' and ' + dv.x) - : callback('Value must be a number'); + callback('Not a valid number'); } - // is a number (dv.m && Number(value) < dv.m) || (dv.x && Number(value) > dv.x) - ? callback('Value must be between ' + dv.m + ' and ' + dv.x) + ? callback('Value out of range') : callback(); } } diff --git a/mock-api/server.js b/mock-api/server.js index f18627608..d53fbfdd4 100644 --- a/mock-api/server.js +++ b/mock-api/server.js @@ -492,6 +492,13 @@ const emsesp_devicedata_1 = { id: '00hc1 mode', c: 'hc1/mode', l: ['off', 'on', 'auto'] + }, + { + v: '00 mo 00:00 T1', + u: 0, + id: '00hc1 program switchtime', + c: 'hc1/switchtime', + h: ' [ not_set | day hh:mm Tn ]' } ] }; diff --git a/src/locale_common.h b/src/locale_common.h index 24f2a038a..edc2a4d3e 100644 --- a/src/locale_common.h +++ b/src/locale_common.h @@ -194,13 +194,13 @@ MAKE_NOTRANSLATION(6kW, "6 kW") MAKE_NOTRANSLATION(9kW, "9 kW") // templates - this are not translated and will be saved under options_single -MAKE_NOTRANSLATION(tpl_datetime, "Format: < NTP | dd.mm.yyyy-hh:mm:ss-day(0-6)-dst(0/1) >") -MAKE_NOTRANSLATION(tpl_switchtime, "Format: [ not_set | day hh:mm on|off ]") -MAKE_NOTRANSLATION(tpl_switchtime1, "Format: [ not_set | day hh:mm Tn ]") -MAKE_NOTRANSLATION(tpl_holidays, "Format: < dd.mm.yyyy-dd.mm.yyyy >") -MAKE_NOTRANSLATION(tpl_date, "Format: < dd.mm.yyyy >") -MAKE_NOTRANSLATION(tpl_input, "Format: []") -MAKE_NOTRANSLATION(tpl_input4, "Format: []") +MAKE_NOTRANSLATION(tpl_datetime, "< NTP | dd.mm.yyyy-hh:mm:ss-day(0-6)-dst(0/1) >") +MAKE_NOTRANSLATION(tpl_switchtime, " [ not_set | day hh:mm on|off ]") +MAKE_NOTRANSLATION(tpl_switchtime1, " [ not_set | day hh:mm Tn ]") +MAKE_NOTRANSLATION(tpl_holidays, "< dd.mm.yyyy-dd.mm.yyyy >") +MAKE_NOTRANSLATION(tpl_date, "< dd.mm.yyyy >") +MAKE_NOTRANSLATION(tpl_input, "[]") +MAKE_NOTRANSLATION(tpl_input4, "[]") #if defined(EMSESP_TEST) MAKE_NOTRANSLATION(test_cmd, "run a test")