diff --git a/wwcompanion-extension/popup.html b/wwcompanion-extension/popup.html index b91f578..4f08c5c 100644 --- a/wwcompanion-extension/popup.html +++ b/wwcompanion-extension/popup.html @@ -54,7 +54,7 @@ - + diff --git a/wwcompanion-extension/settings.js b/wwcompanion-extension/settings.js index f3f1d30..8f97989 100644 --- a/wwcompanion-extension/settings.js +++ b/wwcompanion-extension/settings.js @@ -609,7 +609,9 @@ function updateApiConfigKeyOptions() { const keys = collectApiKeys(); const selects = apiConfigsContainer.querySelectorAll(".api-config-key-select"); selects.forEach((select) => { - const preferred = select.dataset.preferred || select.value; + const preferred = select.dataset.preferred || ""; + const currentValue = select.value || ""; + const candidate = preferred || currentValue; select.innerHTML = ""; if (!keys.length) { const option = document.createElement("option"); @@ -628,13 +630,15 @@ function updateApiConfigKeyOptions() { select.appendChild(option); } - if (preferred && keys.some((key) => key.id === preferred)) { - select.value = preferred; + if (candidate && keys.some((key) => key.id === candidate)) { + select.value = candidate; + select.dataset.preferred = candidate; } else { select.value = keys[0].id; + if (!preferred) { + select.dataset.preferred = select.value; + } } - - select.dataset.preferred = select.value; }); } @@ -803,7 +807,9 @@ function updateTaskEnvOptions() { const envs = collectEnvConfigs(); const selects = tasksContainer.querySelectorAll(".task-env-select"); selects.forEach((select) => { - const preferred = select.dataset.preferred || select.value; + const preferred = select.dataset.preferred || ""; + const currentValue = select.value || ""; + const candidate = preferred || currentValue; select.innerHTML = ""; if (!envs.length) { const option = document.createElement("option"); @@ -822,13 +828,15 @@ function updateTaskEnvOptions() { select.appendChild(option); } - if (preferred && envs.some((env) => env.id === preferred)) { - select.value = preferred; + if (candidate && envs.some((env) => env.id === candidate)) { + select.value = candidate; + select.dataset.preferred = candidate; } else { select.value = envs[0].id; + if (!preferred) { + select.dataset.preferred = select.value; + } } - - select.dataset.preferred = select.value; }); scheduleSidebarErrors(); } @@ -1034,7 +1042,9 @@ function updateTaskProfileOptions() { const profiles = collectProfiles(); const selects = tasksContainer.querySelectorAll(".task-profile-select"); selects.forEach((select) => { - const preferred = select.dataset.preferred || select.value; + const preferred = select.dataset.preferred || ""; + const currentValue = select.value || ""; + const candidate = preferred || currentValue; select.innerHTML = ""; if (!profiles.length) { const option = document.createElement("option"); @@ -1053,13 +1063,15 @@ function updateTaskProfileOptions() { select.appendChild(option); } - if (preferred && profiles.some((profile) => profile.id === preferred)) { - select.value = preferred; + if (candidate && profiles.some((profile) => profile.id === candidate)) { + select.value = candidate; + select.dataset.preferred = candidate; } else { select.value = profiles[0].id; + if (!preferred) { + select.dataset.preferred = select.value; + } } - - select.dataset.preferred = select.value; }); scheduleSidebarErrors(); } @@ -1068,7 +1080,9 @@ function updateEnvApiOptions() { const apiConfigs = collectApiConfigs(); const selects = envConfigsContainer.querySelectorAll(".env-config-api-select"); selects.forEach((select) => { - const preferred = select.dataset.preferred || select.value; + const preferred = select.dataset.preferred || ""; + const currentValue = select.value || ""; + const candidate = preferred || currentValue; select.innerHTML = ""; if (!apiConfigs.length) { const option = document.createElement("option"); @@ -1087,13 +1101,15 @@ function updateEnvApiOptions() { select.appendChild(option); } - if (preferred && apiConfigs.some((config) => config.id === preferred)) { - select.value = preferred; + if (candidate && apiConfigs.some((config) => config.id === candidate)) { + select.value = candidate; + select.dataset.preferred = candidate; } else { select.value = apiConfigs[0].id; + if (!preferred) { + select.dataset.preferred = select.value; + } } - - select.dataset.preferred = select.value; }); updateTaskEnvOptions(); }