From ffdeaf88126a32fb1dcb7ae4df972fbf40c8554d Mon Sep 17 00:00:00 2001 From: HB9HIL Date: Thu, 19 Sep 2024 18:13:56 +0200 Subject: [PATCH] initial proof of concept --- application/controllers/Qso.php | 30 ++++++++++++++ application/views/qso/log_qso.php | 67 +++++++++++++++++++++++++++++++ assets/js/sections/qso.js | 8 +++- 3 files changed, 103 insertions(+), 2 deletions(-) create mode 100644 application/views/qso/log_qso.php diff --git a/application/controllers/Qso.php b/application/controllers/Qso.php index 896dd9314..62b4b2b38 100644 --- a/application/controllers/Qso.php +++ b/application/controllers/Qso.php @@ -645,4 +645,34 @@ class QSO extends CI_Controller { return false; } } + + /** + * Open the API url which causes the browser to open the QSO live logging and populate the callsign with the data from the API + * + * Usage example: + * https:///index.php/qso/log_qso?callsign=4W7EST + */ + + function log_qso() { + // Check if users logged in + $this->load->model('user_model'); + if ($this->user_model->validate_session() == 0) { + // user is not logged in + $this->session->set_flashdata('warning', __("You have to be logged in to access this URL.")); + redirect('user/login'); + } + + // get the data from the API + $data['callsign'] = $this->input->get('callsign', TRUE); + $data['page_title'] = __("Call Transfer"); + + // load the QSO redirect page + if ($data['callsign'] != "") { + $this->load->view('interface_assets/header', $data); + $this->load->view('qso/log_qso'); + } else { + $this->session->set_flashdata('warning', __("No callsign provided.")); + redirect('dashboard'); + } + } } diff --git a/application/views/qso/log_qso.php b/application/views/qso/log_qso.php new file mode 100644 index 000000000..89c35f346 --- /dev/null +++ b/application/views/qso/log_qso.php @@ -0,0 +1,67 @@ + +
+

+ +

+
+ + + + \ No newline at end of file diff --git a/assets/js/sections/qso.js b/assets/js/sections/qso.js index ace14224a..c07822d6e 100644 --- a/assets/js/sections/qso.js +++ b/assets/js/sections/qso.js @@ -311,14 +311,18 @@ $( document ).ready(function() { } var bc = new BroadcastChannel('qso_wish'); + bc.postMessage('ready'); bc.onmessage = function (ev) { if (ev.data.ping) { let message={}; message.pong=true; bc.postMessage(message); } else { - $('#frequency').val(ev.data.frequency); - $("#band").val(frequencyToBand(ev.data.frequency)); + console.log(ev.data); + if (ev.data.frequency != null) { + $('#frequency').val(ev.data.frequency); + $("#band").val(frequencyToBand(ev.data.frequency)); + } if (ev.data.frequency_rx != "") { $('#frequency_rx').val(ev.data.frequency_rx); $("#band_rx").val(frequencyToBand(ev.data.frequency_rx));