From da1bba9f30f40fdfb3dacb678bfa91b32ff8ecce Mon Sep 17 00:00:00 2001 From: Dennis Braun Date: Tue, 24 Mar 2026 09:59:09 +0100 Subject: [PATCH] Fix modem URL silently reverting to driver default on settings page load The settings page JS checked if the current modem_url matched ANY driver's default URL, and if so, replaced it with the currently selected driver's default. This caused user-configured URLs like 192.168.100.1 (bridge mode) to be silently overwritten with the selected driver's default (e.g. 192.168.0.1 for Vodafone Station) every time the settings page loaded. Now only replaces the URL if it matches the previously selected driver's default (for driver switching) or if the field is empty. Custom URLs are never touched. Fixes #288 --- app/static/js/settings.js | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/app/static/js/settings.js b/app/static/js/settings.js index 116d906b..e6f12a00 100644 --- a/app/static/js/settings.js +++ b/app/static/js/settings.js @@ -930,15 +930,7 @@ function _createBrowseItem(label, targetPath, iconName, isMuted) { } /* ── Username Field Toggle + Modem Defaults (data-driven) ── */ -var KNOWN_DEFAULT_URLS = (function() { - var urls = {}; - if (typeof DRIVER_HINTS !== 'undefined') { - for (var k in DRIVER_HINTS) { - if (DRIVER_HINTS[k].default_url) urls[DRIVER_HINTS[k].default_url] = true; - } - } - return urls; -})(); +var _previousDriverDefault = ''; function toggleUsernameField() { var modemType = document.getElementById('modem_type'); @@ -957,10 +949,11 @@ function toggleUsernameField() { var testBtnParent = testBtn ? testBtn.parentElement : null; var testResult = document.getElementById('modem-test'); - // URL default: apply if field is empty or still shows any known modem default - if (hints.default_url && urlField && (!urlField.value || KNOWN_DEFAULT_URLS[urlField.value])) { + // URL default: apply only if field is empty or shows the previous driver's default + if (hints.default_url && urlField && (!urlField.value || urlField.value === _previousDriverDefault)) { urlField.value = hints.default_url; } + _previousDriverDefault = hints.default_url || ''; if (hints.credentials_required === false) { credFields.forEach(function(el) { if (el) el.style.display = 'none'; });