diff --git a/static/js/settings.js b/static/js/settings.js index bf626e2..ad0cc76 100644 --- a/static/js/settings.js +++ b/static/js/settings.js @@ -459,18 +459,20 @@ form.addEventListener('submit', async event => { } populateRemoteConfig(remoteConfigResult); - // Save device config - const deviceConfigResponse = await fetch('/api/device-config', { - method: 'POST', - headers: {'Content-Type': 'application/json'}, - body: JSON.stringify(deviceConfigPayload()), - }); - const deviceConfigResult = await deviceConfigResponse.json(); - if (!deviceConfigResponse.ok) { - applyErrors(deviceConfigResult.fields || {}); - throw new Error(deviceConfigResult.error || `HTTP ${deviceConfigResponse.status}`); + // Save device config (skip if sync is enabled — server is source of truth) + if (!fields.deviceSyncEnabled.checked) { + const deviceConfigResponse = await fetch('/api/device-config', { + method: 'POST', + headers: {'Content-Type': 'application/json'}, + body: JSON.stringify(deviceConfigPayload()), + }); + const deviceConfigResult = await deviceConfigResponse.json(); + if (!deviceConfigResponse.ok) { + applyErrors(deviceConfigResult.fields || {}); + throw new Error(deviceConfigResult.error || `HTTP ${deviceConfigResponse.status}`); + } + populateDeviceConfig(deviceConfigResult); } - populateDeviceConfig(deviceConfigResult); showMessage('Settings saved.', 'success'); } catch (error) {