debug: protect config inputs from status refresh

This commit is contained in:
2026-06-30 23:37:33 -06:00
parent 7fc2d35bd0
commit 6ae396f084
@@ -1046,12 +1046,12 @@ function render(data){
function populateSetupFields(data){ function populateSetupFields(data){
const cfg=data.config||{}; const cfg=data.config||{};
if($("deviceNameInput")) $("deviceNameInput").value=cfg.device_name||""; setConfigValue("deviceNameInput", cfg.device_name||"");
const bms=cfg.bms||{}; const bms=cfg.bms||{};
if($("bmsNameInput")) $("bmsNameInput").value=bms.name||""; setConfigValue("bmsNameInput", bms.name||"");
if($("bmsAddressInput")) $("bmsAddressInput").value=bms.address||""; setConfigValue("bmsAddressInput", bms.address||"");
if($("bmsAddressTypeInput")) $("bmsAddressTypeInput").value=bms.address_type||"public"; setConfigValue("bmsAddressTypeInput", bms.address_type||"public");
} }
async function saveDeviceConfig(){ async function saveDeviceConfig(){
@@ -1199,14 +1199,20 @@ function renderConfigControls(data){
const relayBox=$("relayConfigList"); const relayBox=$("relayConfigList");
if(relayBox){ if(relayBox){
const signature=relays.map(r=>r.id).join("|");
if(relayBox.dataset.signature!==signature){
relayBox.dataset.signature=signature;
relayBox.innerHTML=relays.map((r,i)=>` relayBox.innerHTML=relays.map((r,i)=>`
<div class="configrow"> <div class="configrow">
<label>${r.id}</label> <label>${r.id}</label>
<input id="relayName${i}" value="${r.name||""}" placeholder="Relay name"> <input id="relayName${i}" placeholder="Relay name" oninput="markConfigFieldTouched('relayName${i}')">
<label>${r.enabled?"Enabled":"Disabled"}</label> <label>${r.enabled?"Enabled":"Disabled"}</label>
</div>`).join(""); </div>`).join("");
} }
relays.forEach((r,i)=>setConfigValue("relayName"+i,r.name||""));
}
setConfigValue("tempEnabledCount", temps.filter(t=>t.enabled).length); setConfigValue("tempEnabledCount", temps.filter(t=>t.enabled).length);
const tempBox=$("tempConfigList"); const tempBox=$("tempConfigList");