From 2f4fa23f639f94d3c74b45e45ea2476c6d96e22a Mon Sep 17 00:00:00 2001 From: HB9HIL Date: Thu, 8 Aug 2024 01:12:51 +0200 Subject: [PATCH 1/9] small css color adjustment --- index.html | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/index.html b/index.html index 84fc052..116296e 100644 --- a/index.html +++ b/index.html @@ -87,6 +87,16 @@ border: 1px solid #727272; } + .form-control:focus { + color: inherit; + background-color: #1c1c1c; + } + + .form-control:disabled, .form-control[readonly] { + background-color: #3e3e3e; + opacity: 1; + } + #buttonsRow { position: fixed; bottom: 8px; From 5c1161fb5a407c0d05b2cf3d993064b625d98c4b Mon Sep 17 00:00:00 2001 From: HB9HIL Date: Thu, 8 Aug 2024 01:14:51 +0200 Subject: [PATCH 2/9] first mockup --- index.html | 7 ++++--- renderer.js | 40 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 43 insertions(+), 4 deletions(-) diff --git a/index.html b/index.html index 116296e..50bebcf 100644 --- a/index.html +++ b/index.html @@ -153,9 +153,10 @@
- - + +
diff --git a/renderer.js b/renderer.js index ed6f614..772f846 100644 --- a/renderer.js +++ b/renderer.js @@ -14,6 +14,8 @@ const {ipcRenderer} = require('electron') const bt_save=select("#save"); const bt_quit=select("#quit"); const bt_test=select("#test"); +const input_key=select("#wavelog_key"); +const input_url=select("#wavelog_url"); var oldCat={ vfo: 0, mode: "SSB" }; $(document).ready(function() { @@ -21,7 +23,7 @@ $(document).ready(function() { cfg=ipcRenderer.sendSync("get_config", ''); $("#wavelog_url").val(cfg.wavelog_url); $("#wavelog_key").val(cfg.wavelog_key); - $("#wavelog_id").val(cfg.wavelog_id); + // $("#wavelog_id").val(cfg.wavelog_id); $("#wavelog_radioname").val(cfg.wavelog_radioname); $("#flrig_host").val(cfg.flrig_host); $("#flrig_port").val(cfg.flrig_port); @@ -65,6 +67,16 @@ $(document).ready(function() { console.log(x); }); + input_key.addEventListener('input', () => { + getStations(); + }); + input_url.addEventListener('input', () => { + getStations(); + }); + if (cfg.wavelog_key != "" && cfg.wavelog_url != "") { + getStations(); + } + getsettrx(); $("#flrig_ena").on( "click",function() { @@ -205,3 +217,29 @@ function updateUtcTime() { document.getElementById('utc').innerHTML = formattedTime; } + +async function getStations() { + let x = await fetch(cfg.wavelog_url + '/api/station_info/' + cfg.wavelog_key, { + method: 'GET', + rejectUnauthorized: false, + headers: { + Accept: 'application.json', + 'Content-Type': 'application/json', + }, + }); + fillDropdown(await x.json()); +} + +function fillDropdown(data) { + let select = $('#wavelog_id'); + select.empty(); + select.prop('disabled', false); + + data.forEach(function(station) { + let optionText = station.station_profile_name + " (" + station.station_callsign + ", ID: " + station.station_id + ")"; + let optionValue = station.station_id; + select.append(new Option(optionText, optionValue)); + }); + + select.val(cfg.wavelog_id); +} \ No newline at end of file From 6ac82fdaa17cd59fca296c39c4e0e4874f37946c Mon Sep 17 00:00:00 2001 From: HB9HIL Date: Tue, 19 Nov 2024 09:50:18 +0100 Subject: [PATCH 3/9] try to load locations instant --- renderer.js | 43 +++++++++++++++++++++++++++++++------------ 1 file changed, 31 insertions(+), 12 deletions(-) diff --git a/renderer.js b/renderer.js index 3d32312..dd83869 100644 --- a/renderer.js +++ b/renderer.js @@ -69,10 +69,10 @@ $(document).ready(function() { console.log(x); }); - input_key.addEventListener('input', () => { + input_key.addEventListener('change', () => { getStations(); }); - input_url.addEventListener('input', () => { + input_url.addEventListener('change', () => { getStations(); }); if (cfg.wavelog_key != "" && cfg.wavelog_url != "") { @@ -222,15 +222,30 @@ function updateUtcTime() { } async function getStations() { - let x = await fetch(cfg.wavelog_url + '/api/station_info/' + cfg.wavelog_key, { - method: 'GET', - rejectUnauthorized: false, - headers: { - Accept: 'application.json', - 'Content-Type': 'application/json', - }, - }); - fillDropdown(await x.json()); + let select = $('#wavelog_id'); + select.empty(); + select.prop('disabled', true); + try { + let x = await fetch($('#wavelog_url').val().trim() + '/api/station_info/' + $('#wavelog_key').val().trim(), { + method: 'GET', + rejectUnauthorized: false, + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + }); + + if (!x.ok) { + throw new Error(`HTTP error! Status: ${x.status}`); + } + + let data = await x.json(); + fillDropdown(data); + + } catch (error) { + select.append(new Option('Failed to load stations', '0')); + console.error('Could not load station locations:', error.message); + } } function fillDropdown(data) { @@ -244,5 +259,9 @@ function fillDropdown(data) { select.append(new Option(optionText, optionValue)); }); - select.val(cfg.wavelog_id); + if (cfg.wavelog_id && data.some(station => station.station_id == cfg.wavelog_id)) { + select.val(cfg.wavelog_id); + } else { + select.val(data.length > 0 ? data[0].station_id : null); + } } \ No newline at end of file From 8c1ae626cbe8c5df3974777dbfbcc2de0b8a6318 Mon Sep 17 00:00:00 2001 From: HB9HIL Date: Tue, 19 Nov 2024 10:03:44 +0100 Subject: [PATCH 4/9] added a reload button --- index.html | 29 ++++++++++++++++++++++++++--- renderer.js | 3 +++ 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index 5dd69cb..0c7bc3c 100644 --- a/index.html +++ b/index.html @@ -101,7 +101,25 @@ position: fixed; bottom: 8px; width: 100%; - padding: 10px; /* Optional: Füge Padding hinzu, um die Knöpfe zu trennen */ + padding: 10px; + } + + #reload_icon { + width: 16px; + height: 16px; + margin-left: 4px; + margin-bottom: 2px; + vertical-align: middle; + fill: white; + } + + label { + display: flex; + align-items: center; + } + + label svg { + cursor: pointer; } @@ -152,8 +170,13 @@
-
- +
+ diff --git a/renderer.js b/renderer.js index dd83869..b3ae146 100644 --- a/renderer.js +++ b/renderer.js @@ -75,6 +75,9 @@ $(document).ready(function() { input_url.addEventListener('change', () => { getStations(); }); + $('#reload_icon').on('click', () => { + getStations(); + }); if (cfg.wavelog_key != "" && cfg.wavelog_url != "") { getStations(); } From e448aebff4627a8df4958537e55a16dbafaf2685 Mon Sep 17 00:00:00 2001 From: HB9HIL Date: Tue, 19 Nov 2024 10:24:06 +0100 Subject: [PATCH 5/9] make the windows slightly bigger to show the complete text --- main.js | 2 +- renderer.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/main.js b/main.js index 3e95725..c6a7023 100644 --- a/main.js +++ b/main.js @@ -42,7 +42,7 @@ storage.has('basic', function(error, hasKey) { function createWindow () { const mainWindow = new BrowserWindow({ - width: 420, + width: 430, height: 250, resizable: false, autoHideMenuBar: app.isPackaged, diff --git a/renderer.js b/renderer.js index b3ae146..ad8e440 100644 --- a/renderer.js +++ b/renderer.js @@ -93,7 +93,7 @@ $(document).ready(function() { $("#config-tab").on("click",function() { obj={}; - obj.width=420; + obj.width=430; obj.height=550; obj.ani=false; resizeme(obj); @@ -101,7 +101,7 @@ $(document).ready(function() { $("#status-tab").on("click",function() { obj={}; - obj.width=420; + obj.width=430; obj.height=250; obj.ani=false; resizeme(obj); From cc6098cd4c1760281693b2f182d21e3371d2ebc1 Mon Sep 17 00:00:00 2001 From: HB9HIL Date: Tue, 19 Nov 2024 11:44:59 +0100 Subject: [PATCH 6/9] add more cat parameters --- renderer.js | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/renderer.js b/renderer.js index ad8e440..b6c07bf 100644 --- a/renderer.js +++ b/renderer.js @@ -135,6 +135,12 @@ async function get_trx() { let currentCat={}; currentCat.vfo=await getInfo('rig.get_vfo'); currentCat.mode=await getInfo('rig.get_mode'); + currentCat.ptt=await getInfo('rig.get_ptt'); + currentCat.power=await getInfo('rig.get_power'); + currentCat.split=await getInfo('rig.get_split'); + currentCat.vfoB=await getInfo('rig.get_vfoB'); + currentCat.modeB=await getInfo('rig.get_modeB'); + $("#current_trx").html((currentCat.vfo/(1000*1000))+" MHz / "+currentCat.mode); if (!(isDeepEqual(oldCat,currentCat))) { // console.log(currentCat); @@ -199,7 +205,24 @@ const isObject = (object) => { }; async function informWavelog(CAT) { - let data={ radio: "WLGate", key: cfg.wavelog_key, radio: cfg.wavelog_radioname, frequency: (CAT.vfo), mode: CAT.mode }; + let data = { + radio: "WLGate", + key: cfg.wavelog_key, + radio: cfg.wavelog_radioname, + power: CAT.power, + // ptt: CAT.ptt, // maybe later + }; + if (CAT.split == '1') { + // data.split=true; // not implemented yet in Wavelog + data.frequency=CAT.vfoB; + data.mode=CAT.modeB; + data.frequency_rx=CAT.vfo; + data.mode_rx=CAT.mode; + } else { + data.frequency=CAT.vfo; + data.mode=CAT.mode; + } + let x=await fetch(cfg.wavelog_url + '/api/radio', { method: 'POST', rejectUnauthorized: false, From d740e81c6d97a3ad5f18d431bc7cc0e7cd57483a Mon Sep 17 00:00:00 2001 From: HB9HIL Date: Tue, 19 Nov 2024 12:00:18 +0100 Subject: [PATCH 7/9] whitespace --- renderer.js | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/renderer.js b/renderer.js index b6c07bf..cdd9f8d 100644 --- a/renderer.js +++ b/renderer.js @@ -152,21 +152,21 @@ async function get_trx() { async function getInfo(which) { const response = await fetch( - "http://"+$("#flrig_host").val()+':'+$("#flrig_port").val(), - { + "http://"+$("#flrig_host").val()+':'+$("#flrig_port").val(), { method: 'POST', // mode: 'no-cors', - headers: { - 'Accept': 'application/json, application/xml, text/plain, text/html, *.*', - 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8' - }, - body: ''+which+'' - }); - const data = await response.text(); + headers: { + 'Accept': 'application/json, application/xml, text/plain, text/html, *.*', + 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8' + }, + body: ''+which+'' + } + ); + const data = await response.text(); var parser = new DOMParser(); - var xmlDoc = parser.parseFromString(data, "text/xml"); - var qrgplain = xmlDoc.getElementsByTagName("value")[0].textContent; - return qrgplain; + var xmlDoc = parser.parseFromString(data, "text/xml"); + var qrgplain = xmlDoc.getElementsByTagName("value")[0].textContent; + return qrgplain; } async function getsettrx() { From b69c3d30e7f2c9507808a8f9239cb03c80155cc0 Mon Sep 17 00:00:00 2001 From: HB9HIL Date: Tue, 19 Nov 2024 12:02:39 +0100 Subject: [PATCH 8/9] catch undefined power --- renderer.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/renderer.js b/renderer.js index cdd9f8d..006ebfa 100644 --- a/renderer.js +++ b/renderer.js @@ -208,10 +208,14 @@ async function informWavelog(CAT) { let data = { radio: "WLGate", key: cfg.wavelog_key, - radio: cfg.wavelog_radioname, - power: CAT.power, - // ptt: CAT.ptt, // maybe later + radio: cfg.wavelog_radioname }; + if (CAT.power !== undefined) { + data.power = CAT.power; + } + // if (CAT.ptt !== undefined) { // not impleented yet in Wavelog, so maybe later + // data.ptt = CAT.ptt; + // } if (CAT.split == '1') { // data.split=true; // not implemented yet in Wavelog data.frequency=CAT.vfoB; From dc4e03e5d06cb389bc2ea6ce0e3bf4717939ce01 Mon Sep 17 00:00:00 2001 From: HB9HIL Date: Tue, 19 Nov 2024 14:10:10 +0100 Subject: [PATCH 9/9] catch missing data for power --- renderer.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/renderer.js b/renderer.js index 006ebfa..6c138dd 100644 --- a/renderer.js +++ b/renderer.js @@ -136,7 +136,7 @@ async function get_trx() { currentCat.vfo=await getInfo('rig.get_vfo'); currentCat.mode=await getInfo('rig.get_mode'); currentCat.ptt=await getInfo('rig.get_ptt'); - currentCat.power=await getInfo('rig.get_power'); + currentCat.power=await getInfo('rig.get_power') ?? 0; currentCat.split=await getInfo('rig.get_split'); currentCat.vfoB=await getInfo('rig.get_vfoB'); currentCat.modeB=await getInfo('rig.get_modeB'); @@ -210,7 +210,7 @@ async function informWavelog(CAT) { key: cfg.wavelog_key, radio: cfg.wavelog_radioname }; - if (CAT.power !== undefined) { + if (CAT.power !== undefined && CAT.power !== 0) { data.power = CAT.power; } // if (CAT.ptt !== undefined) { // not impleented yet in Wavelog, so maybe later