diff --git a/src/trx-client/trx-frontend/trx-frontend-http/assets/web/plugins/scheduler.js b/src/trx-client/trx-frontend/trx-frontend-http/assets/web/plugins/scheduler.js
index 84659d2..bea4949 100644
--- a/src/trx-client/trx-frontend/trx-frontend-http/assets/web/plugins/scheduler.js
+++ b/src/trx-client/trx-frontend/trx-frontend-http/assets/web/plugins/scheduler.js
@@ -117,6 +117,7 @@
.then(function ([config, bms]) {
currentConfig = config;
bookmarkList = Array.isArray(bms) ? bms : [];
+ populateTsBookmarkSelect();
renderScheduler();
})
.catch(function (e) {
@@ -181,13 +182,27 @@
// Grayline inputs
if (mode === "grayline" && currentConfig && currentConfig.grayline) {
const gl = currentConfig.grayline;
- setInputValue("scheduler-gl-lat", gl.lat != null ? gl.lat : "");
- setInputValue("scheduler-gl-lon", gl.lon != null ? gl.lon : "");
+ // Prefer saved value; fall back to server coordinates from app.js globals.
+ const lat = gl.lat != null ? gl.lat : (typeof serverLat !== "undefined" ? serverLat : "");
+ const lon = gl.lon != null ? gl.lon : (typeof serverLon !== "undefined" ? serverLon : "");
+ setInputValue("scheduler-gl-lat", lat != null ? lat : "");
+ setInputValue("scheduler-gl-lon", lon != null ? lon : "");
setInputValue("scheduler-gl-window", gl.transition_window_min != null ? gl.transition_window_min : 20);
renderBookmarkSelect("scheduler-gl-dawn", gl.dawn_bookmark_id);
renderBookmarkSelect("scheduler-gl-day", gl.day_bookmark_id);
renderBookmarkSelect("scheduler-gl-dusk", gl.dusk_bookmark_id);
renderBookmarkSelect("scheduler-gl-night", gl.night_bookmark_id);
+ } else if (mode === "grayline") {
+ // No saved grayline config yet — pre-fill coords from server if available.
+ const lat = typeof serverLat !== "undefined" ? serverLat : "";
+ const lon = typeof serverLon !== "undefined" ? serverLon : "";
+ setInputValue("scheduler-gl-lat", lat != null ? lat : "");
+ setInputValue("scheduler-gl-lon", lon != null ? lon : "");
+ setInputValue("scheduler-gl-window", 20);
+ renderBookmarkSelect("scheduler-gl-dawn", null);
+ renderBookmarkSelect("scheduler-gl-day", null);
+ renderBookmarkSelect("scheduler-gl-dusk", null);
+ renderBookmarkSelect("scheduler-gl-night", null);
} else {
renderBookmarkSelect("scheduler-gl-dawn", null);
renderBookmarkSelect("scheduler-gl-day", null);
@@ -343,6 +358,7 @@
startEl.value = "";
endEl.value = "";
+ bmEl.value = ""; // reset select to first option
if (labelEl) labelEl.value = "";
renderTimespanEntries();
@@ -473,17 +489,21 @@
const addBtn = document.getElementById("scheduler-ts-add-btn");
if (addBtn) addBtn.addEventListener("click", addEntry);
- // Populate add-entry bookmark selector
- const tsBookmarkEl = document.getElementById("scheduler-ts-bookmark");
- if (tsBookmarkEl) {
- tsBookmarkEl.innerHTML = '';
- bookmarkList.forEach(function (bm) {
- const opt = document.createElement("option");
- opt.value = bm.id;
- opt.textContent = bm.name + " (" + formatFreq(bm.freq_hz) + " " + bm.mode + ")";
- tsBookmarkEl.appendChild(opt);
- });
- }
+ }
+
+ function populateTsBookmarkSelect() {
+ const sel = document.getElementById("scheduler-ts-bookmark");
+ if (!sel) return;
+ const prev = sel.value;
+ sel.innerHTML = '';
+ bookmarkList.forEach(function (bm) {
+ const opt = document.createElement("option");
+ opt.value = bm.id;
+ opt.textContent = bm.name + " (" + formatFreq(bm.freq_hz) + " " + bm.mode + ")";
+ sel.appendChild(opt);
+ });
+ // Restore previous selection if still valid.
+ if (prev) sel.value = prev;
}
// -------------------------------------------------------------------------