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();
}