From 8716e6caaef5e59eb8912f286e6f3efa8fd24366 Mon Sep 17 00:00:00 2001 From: Peter Goodhall Date: Mon, 6 Apr 2026 14:37:56 +0100 Subject: [PATCH] Clear satellite fields when not SAT and on reset Ensure satellite fields are cleared whenever propagation mode is not 'SAT' and when the QSO form is reset. In Qso.php, sat_name and sat_mode are set to empty strings if prop_mode != 'SAT' (added in two handling points). In assets/js/sections/qso.js, added clearSatelliteFields() to clear sat_name, sat_mode, satellite_modes_list and related state, call it from reset_fields(), and invoke the form reset flow to ensure no stale satellite data remains after resetting or changing propagation mode. --- application/controllers/Qso.php | 12 ++++++++++++ assets/js/sections/qso.js | 15 +++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/application/controllers/Qso.php b/application/controllers/Qso.php index 18b435f2a..e1e14e658 100755 --- a/application/controllers/Qso.php +++ b/application/controllers/Qso.php @@ -122,6 +122,12 @@ class QSO extends CI_Controller { 'operator_callsign' => $this->input->post('operator_callsign'), 'transmit_power' => $this->input->post('transmit_power') ); + + $propMode = strtoupper(trim((string)($qso_data['prop_mode'] ?? ''))); + if ($propMode !== 'SAT') { + $qso_data['sat_name'] = ''; + $qso_data['sat_mode'] = ''; + } // ]; setcookie("radio", $qso_data['radio'], time()+3600*24*99); @@ -214,6 +220,12 @@ class QSO extends CI_Controller { 'transmit_power' => $this->input->post('transmit_power') ); + $propMode = strtoupper(trim((string)($qso_data['prop_mode'] ?? ''))); + if ($propMode !== 'SAT') { + $qso_data['sat_name'] = ''; + $qso_data['sat_mode'] = ''; + } + setcookie("radio", $qso_data['radio'], time() + 3600 * 24 * 99); setcookie("station_profile_id", $qso_data['station_profile_id'], time() + 3600 * 24 * 99); diff --git a/assets/js/sections/qso.js b/assets/js/sections/qso.js index f92159de5..30d460210 100644 --- a/assets/js/sections/qso.js +++ b/assets/js/sections/qso.js @@ -846,6 +846,18 @@ function resetSubmissionState() { } } +function clearSatelliteFields() { + $('#sat_name').val(''); + $('#sat_mode').val(''); + $('.satellite_modes_list').find('option').remove().end(); + selected_sat = ''; + selected_sat_mode = ''; + + if ($('#selectPropagation').val() === 'SAT') { + $('#selectPropagation').val(''); + } +} + /* Function: reset_fields is used to reset the fields on the QSO page */ function reset_fields() { // Reset submission state @@ -897,6 +909,8 @@ function reset_fields() { selectize = $select[0] ? $select[0].selectize : null; if (selectize) selectize.clear(); + clearSatelliteFields(); + mymap.setView(pos, 12); mymap.removeLayer(markers); $('.callsign-suggest').hide(); @@ -1195,6 +1209,7 @@ function resetToPreviousContactsTab() { // Reset to Previous Contacts tab when form is reset $('#qso_input').on('reset', function() { setTimeout(function() { + reset_fields(); resetToPreviousContactsTab(); }, 100); });