From fcaa089ea298c9067a2b09a168cb4d90c88e8b54 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sat, 21 May 2022 13:56:27 -0700 Subject: Remaining command attributes --- .../src/common/attributes/useCommandAttributes.js | 202 +++++++++++++++++++++ modern/src/settings/CommandSendPage.js | 2 +- modern/src/settings/components/BaseCommandView.js | 46 +++-- 3 files changed, 236 insertions(+), 14 deletions(-) diff --git a/modern/src/common/attributes/useCommandAttributes.js b/modern/src/common/attributes/useCommandAttributes.js index 1212d283..189a0e2e 100644 --- a/modern/src/common/attributes/useCommandAttributes.js +++ b/modern/src/common/attributes/useCommandAttributes.js @@ -8,4 +8,206 @@ export default (t) => useMemo(() => ({ type: 'string', }, ], + positionPeriodic: [ + { + key: 'frequency', + name: t('commandFrequency'), + type: 'number', + }, + ], + setTimezone: [ + { + key: 'timezone', + name: t('commandTimezone'), + type: 'string', + }, + ], + sendSms: [ + { + key: 'phone', + name: t('commandPhone'), + type: 'string', + }, + { + key: 'message', + name: t('commandMessage'), + type: 'string', + }, + ], + message: [ + { + key: 'message', + name: t('commandMessage'), + type: 'string', + }, + ], + sendUssd: [ + { + key: 'phone', + name: t('commandPhone'), + type: 'string', + }, + ], + sosNumber: [ + { + key: 'index', + name: t('commandIndex'), + type: 'number', + }, + { + key: 'phone', + name: t('commandPhone'), + type: 'string', + }, + ], + silenceTime: [ + { + key: 'data', + name: t('commandData'), + type: 'string', + }, + ], + setPhonebook: [ + { + key: 'data', + name: t('commandData'), + type: 'string', + }, + ], + voiceMessage: [ + { + key: 'data', + name: t('commandData'), + type: 'string', + }, + ], + outputControl: [ + { + key: 'index', + name: t('commandIndex'), + type: 'number', + }, + { + key: 'data', + name: t('commandData'), + type: 'string', + }, + ], + voiceMonitoring: [ + { + key: 'enable', + name: t('commandEnable'), + type: 'boolean', + }, + ], + setAgps: [ + { + key: 'enable', + name: t('commandEnable'), + type: 'boolean', + }, + ], + setIndicator: [ + { + key: 'data', + name: t('commandData'), + type: 'string', + }, + ], + configuration: [ + { + key: 'data', + name: t('commandData'), + type: 'string', + }, + ], + setConnection: [ + { + key: 'server', + name: t('commandServer'), + type: 'string', + }, + { + key: 'port', + name: t('commandPort'), + type: 'number', + }, + ], + setOdometer: [ + { + key: 'data', + name: t('commandData'), + type: 'string', + }, + ], + modePowerSaving: [ + { + key: 'enable', + name: t('commandEnable'), + type: 'boolean', + }, + ], + modeDeepSleep: [ + { + key: 'enable', + name: t('commandEnable'), + type: 'boolean', + }, + ], + alarmGeofence: [ + { + key: 'radius', + name: t('commandRadius'), + type: 'number', + }, + ], + alarmBattery: [ + { + key: 'enable', + name: t('commandEnable'), + type: 'boolean', + }, + ], + alarmSos: [ + { + key: 'enable', + name: t('commandEnable'), + type: 'boolean', + }, + ], + alarmRemove: [ + { + key: 'enable', + name: t('commandEnable'), + type: 'boolean', + }, + ], + alarmClock: [ + { + key: 'data', + name: t('commandData'), + type: 'string', + }, + ], + alarmSpeed: [ + { + key: 'data', + name: t('commandData'), + type: 'string', + }, + ], + alarmFall: [ + { + key: 'enable', + name: t('commandEnable'), + type: 'boolean', + }, + ], + alarmVibration: [ + { + key: 'data', + name: t('commandData'), + type: 'string', + }, + ], }), [t]); diff --git a/modern/src/settings/CommandSendPage.js b/modern/src/settings/CommandSendPage.js index a817e11d..cc0dae63 100644 --- a/modern/src/settings/CommandSendPage.js +++ b/modern/src/settings/CommandSendPage.js @@ -88,7 +88,7 @@ const CommandSendPage = () => { variant="filled" /> {!savedId && ( - + )} diff --git a/modern/src/settings/components/BaseCommandView.js b/modern/src/settings/components/BaseCommandView.js index b422e153..836e8789 100644 --- a/modern/src/settings/components/BaseCommandView.js +++ b/modern/src/settings/components/BaseCommandView.js @@ -34,19 +34,39 @@ const BaseCommandView = ({ item, setItem }) => { label={t('sharedType')} variant="filled" /> - {attributes.map((attribute) => ( - { - const updateItem = { ...item, attributes: { ...item.attributes } }; - updateItem.attributes[attribute.key] = e.target.value; - setItem(updateItem); - }} - label={attribute.name} - variant="filled" - /> - ))} + {attributes.map(({ key, name, type }) => { + if (type === 'boolean') { + return ( + { + const updateItem = { ...item, attributes: { ...item.attributes } }; + updateItem.attributes[key] = e.target.checked; + setItem(updateItem); + }} + /> + )} + label={name} + /> + ); + } + return ( + { + const updateItem = { ...item, attributes: { ...item.attributes } }; + updateItem.attributes[key] = type === 'number' ? Number(e.target.value) : e.target.value; + setItem(updateItem); + }} + label={name} + variant="filled" + /> + ); + })} setItem({ ...item, textChannel: event.target.checked })} />} label={t('commandSendSms')} -- cgit v1.2.3