From bb9b6a5f4c3ee16c4e914eb4f86f2d86d1bbf2a1 Mon Sep 17 00:00:00 2001 From: Yurii Date: Tue, 11 Jun 2024 20:19:54 +0300 Subject: [PATCH] fix: casting types in setupForm fixed #61 --- src_data/network.html | 46 +++++++++++++++++++++++------------------- src_data/settings.html | 7 ++++--- src_data/static/app.js | 18 ++++++++++------- 3 files changed, 40 insertions(+), 31 deletions(-) diff --git a/src_data/network.html b/src_data/network.html index 0449f84..06e3a89 100644 --- a/src_data/network.html +++ b/src_data/network.html @@ -167,6 +167,26 @@ diff --git a/src_data/settings.html b/src_data/settings.html index 2fb9b9e..f030234 100644 --- a/src_data/settings.html +++ b/src_data/settings.html @@ -809,7 +809,8 @@ const result = await response.json(); fillData(result); - setupForm('#portal-settings', fillData); + + setupForm('#portal-settings', fillData, ['portal.login', 'portal.password']); setupForm('#system-settings', fillData); setupForm('#heating-settings', fillData); setupForm('#dhw-settings', fillData); @@ -817,9 +818,9 @@ setupForm('#equitherm-settings', fillData); setupForm('#pid-settings', fillData); setupForm('#opentherm-settings', fillData); - setupForm('#mqtt-settings', fillData); + setupForm('#mqtt-settings', fillData, ['mqtt.user', 'mqtt.password', 'mqtt.prefix']); setupForm('#outdoor-sensor-settings', fillData); - setupForm('#indoor-sensor-settings', fillData); + setupForm('#indoor-sensor-settings', fillData, ['sensors.indoor.bleAddresss']); setupForm('#extpump-settings', fillData); } catch (error) { diff --git a/src_data/static/app.js b/src_data/static/app.js index 48fd387..76f2000 100644 --- a/src_data/static/app.js +++ b/src_data/static/app.js @@ -1,4 +1,4 @@ -function setupForm(formSelector, onResultCallback = null) { +function setupForm(formSelector, onResultCallback = null, noCastItems = []) { const form = document.querySelector(formSelector); if (!form) { return; @@ -68,7 +68,7 @@ function setupForm(formSelector, onResultCallback = null) { headers: { 'Content-Type': 'application/json' }, - body: form2json(fd) + body: form2json(fd, noCastItems) }); if (!response.ok) { @@ -635,15 +635,19 @@ function memberIdToVendor(memberId) { : "unknown vendor"; } -function form2json(data) { +function form2json(data, noCastItems = []) { let method = function (object, pair) { let keys = pair[0].replace(/\]/g, '').split('['); let key = keys[0]; let value = pair[1]; - if (value === 'true' || value === 'false') { - value = value === 'true'; - } else if (typeof (value) === 'string' && value.trim() !== '' && !isNaN(value)) { - value = parseFloat(value); + + if (!noCastItems.includes(keys.join('.'))) { + if (value === 'true' || value === 'false') { + value = value === 'true'; + + } else if (typeof (value) === 'string' && value.trim() !== '' && !isNaN(value)) { + value = parseFloat(value); + } } if (keys.length > 1) {