diff --git a/internal/web/ui/templates/console.html b/internal/web/ui/templates/console.html index b30445e..258ae10 100644 --- a/internal/web/ui/templates/console.html +++ b/internal/web/ui/templates/console.html @@ -394,7 +394,12 @@ var did = row.getAttribute('data-device-id'); var feats = []; row.querySelectorAll('input[type=checkbox]:checked').forEach(function(cb) { feats.push(cb.value); }); - if (feats.sort().join(',') === (initialFeatures[did]||[]).sort().join(',')) return; + if (feats.sort().join(',') === (initialFeatures[did]||[]).sort().join(',')) { + // Check sources too - device may be dirty from source changes only + var srcs = []; + row.querySelectorAll('input[type=hidden][name^=device_]').forEach(function(h) { srcs.push(h.value); }); + if (srcs.sort().join(',') === (initialSources[did]||[]).sort().join(',')) return; + } dirtyDevs.push(did); var nameEl = row.querySelector('.console-device-name'); var dname = nameEl ? nameEl.textContent : did; diff --git a/safesightd-linux-arm64 b/safesightd-linux-arm64 index 8f4253a..16205f5 100644 Binary files a/safesightd-linux-arm64 and b/safesightd-linux-arm64 differ