From 9d73c30f916e8c56a55c8240b9178a79f3945bf6 Mon Sep 17 00:00:00 2001 From: Andreas <6977712+AndreasK79@users.noreply.github.com> Date: Wed, 5 Jul 2023 09:29:13 +0200 Subject: [PATCH 01/10] [Advanced Logbook] Added Quickfilter search. Mark one line and click filter button --- application/controllers/Logbookadvanced.php | 1 + application/models/Logbookadvanced_model.php | 5 ++ application/views/logbookadvanced/index.php | 57 +++++++++++++----- assets/js/sections/logbookadvanced.js | 63 ++++++++++++++++++++ src/QSLManager/QSO.php | 4 +- 5 files changed, 112 insertions(+), 18 deletions(-) diff --git a/application/controllers/Logbookadvanced.php b/application/controllers/Logbookadvanced.php index 736fc0772..1bb0432c3 100644 --- a/application/controllers/Logbookadvanced.php +++ b/application/controllers/Logbookadvanced.php @@ -104,6 +104,7 @@ class Logbookadvanced extends CI_Controller { 'propmode' => xss_clean($this->input->post('propmode')), 'gridsquare' => xss_clean($this->input->post('gridsquare')), 'state' => xss_clean($this->input->post('state')), + 'cqzone' => xss_clean($this->input->post('cqzone')), 'qsoresults' => xss_clean($this->input->post('qsoresults')), 'sats' => xss_clean($this->input->post('sats')), 'lotwSent' => xss_clean($this->input->post('lotwSent')), diff --git a/application/models/Logbookadvanced_model.php b/application/models/Logbookadvanced_model.php index cc361181e..8fb7f61db 100644 --- a/application/models/Logbookadvanced_model.php +++ b/application/models/Logbookadvanced_model.php @@ -89,6 +89,11 @@ class Logbookadvanced_model extends CI_Model { $binding[] = $searchCriteria['state']; } + if ($searchCriteria['cqzone'] !== '') { + $conditions[] = "COL_CQZ = ?"; + $binding[] = $searchCriteria['cqzone']; + } + if ($searchCriteria['gridsquare'] !== '') { $conditions[] = "(COL_GRIDSQUARE like ? or COL_VUCC_GRIDS like ?)"; $binding[] = '%' . $searchCriteria['gridsquare'] . '%'; diff --git a/application/views/logbookadvanced/index.php b/application/views/logbookadvanced/index.php index 671ba95cd..894e24831 100644 --- a/application/views/logbookadvanced/index.php +++ b/application/views/logbookadvanced/index.php @@ -144,6 +144,18 @@ +
+ + +
@@ -216,28 +228,41 @@
+
+ With selected : + + + + + + + + + + + + + + +
+
+
- With selected : - - - - - - - - - - - - - - - + Quick search with selected : + + + + + + + +
+ diff --git a/assets/js/sections/logbookadvanced.js b/assets/js/sections/logbookadvanced.js index 16c76ea3f..5babec70c 100644 --- a/assets/js/sections/logbookadvanced.js +++ b/assets/js/sections/logbookadvanced.js @@ -188,6 +188,7 @@ $(document).ready(function () { state: this.state.value, qsoresults: this.qsoResults.value, sats: this.sats.value, + cqzone: this.cqzone.value, lotwSent: this.lotwSent.value, lotwReceived: this.lotwReceived.value, eqslSent: this.eqslSent.value, @@ -359,6 +360,68 @@ $(document).ready(function () { handleQslReceived('Y','D', 'receivedDirect'); }); + $('#searchGridsquare').click(function (event) { + quickSearch('gridsquare'); + }); + + $('#searchState').click(function (event) { + quickSearch('state'); + }); + + $('#searchIota').click(function (event) { + quickSearch('iota'); + }); + + $('#searchDxcc').click(function (event) { + quickSearch('dxcc'); + }); + + $('#searchCallsign').click(function (event) { + quickSearch('dx'); + }); + + $('#searchCqZone').click(function (event) { + quickSearch('cqzone'); + }); + + $('#searchMode').click(function (event) { + quickSearch('mode'); + }); + + $('#searchBand').click(function (event) { + quickSearch('band'); + }); + + function quickSearch(type) { + var elements = $('#qsoList tbody input:checked'); + var nElements = elements.length; + if (nElements == 0) { + return; + } + if (nElements > 1) { + alert("Only 1 row can be selected"); + //popup message that only 1 row can be selected + } + elements.each(function() { + var currentRow = $(this).first().closest('tr'); + var col1 = ''; + switch (type) { + case 'dxcc': col1 = currentRow.find("td:eq(16)").html(); col1 = col1.match(/\d/g); col1 = col1.join("");break; + case 'dx': col1 = currentRow.find("td:eq(3)").text(); col1 = col1.match(/^([^\s]+)/gm); break; + case 'iota': col1 = currentRow.find("td:eq(19)").text(); col1 = col1.trim(); break; + case 'state': col1 = currentRow.find("td:eq(17)").text(); break; + case 'cqzone': col1 = currentRow.find("td:eq(18)").text(); break; + case 'gridsquare': col1 = $(currentRow).find('#dxgrid').text(); col1 = col1.substring(0, 4); break; + case 'mode': col1 = currentRow.find("td:eq(4)").text(); break; + case 'band': col1 = currentRow.find("td:eq(7)").text(); col1 = col1.match(/\S\w*/); break; + } + if (col1.length == 0) return; + $('#searchForm').trigger("reset"); + $("#"+type).val(col1); + $('#searchForm').submit(); + }); + } + $('#printLabel').click(function (event) { var elements = $('#qsoList tbody input:checked'); var nElements = elements.length; diff --git a/src/QSLManager/QSO.php b/src/QSLManager/QSO.php index 0e96988a3..472fe629f 100644 --- a/src/QSLManager/QSO.php +++ b/src/QSLManager/QSO.php @@ -841,9 +841,9 @@ class QSO { $refs = []; if ($this->dxVUCCGridsquares !== '') { - $refs[] = $this->dxVUCCGridsquares . ' ' .$this->getQrbLink($this->stationGridsquare, $this->dxVUCCGridsquares, $this->dxGridsquare); + $refs[] = '' . $this->dxVUCCGridsquares . ' ' .$this->getQrbLink($this->stationGridsquare, $this->dxVUCCGridsquares, $this->dxGridsquare); } else if ($this->dxGridsquare !== '') { - $refs[] = $this->dxGridsquare . ' ' .$this->getQrbLink($this->stationGridsquare, $this->dxVUCCGridsquares, $this->dxGridsquare); + $refs[] = '' . $this->dxGridsquare . ' ' .$this->getQrbLink($this->stationGridsquare, $this->dxVUCCGridsquares, $this->dxGridsquare); } if ($this->dxSOTAReference !== '') { $refs[] = "SOTA:" . $this->dxSOTAReference; From 4546fa8143914a22ec8ad9acd0b21165b5ee080d Mon Sep 17 00:00:00 2001 From: Luca <61653175+iu2frl@users.noreply.github.com> Date: Wed, 5 Jul 2023 09:50:29 +0200 Subject: [PATCH 02/10] Removing index.php in directory and URL in case of configuration error --- install/index.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/index.php b/install/index.php index 55d2ecdff..cc0e5d8bf 100644 --- a/install/index.php +++ b/install/index.php @@ -131,8 +131,8 @@ if($_POST) {
Configuration Settings - " class="input_text" name="directory" /> - " class="input_text" name="websiteurl" /> + " class="input_text" name="directory" /> + " class="input_text" name="websiteurl" />
From 646bf737e0dd995e88e43f5df43d184b5d1e6934 Mon Sep 17 00:00:00 2001 From: Peter Goodhall Date: Wed, 5 Jul 2023 11:34:00 +0100 Subject: [PATCH 03/10] [Update] Fixed Typo --- application/controllers/Update.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/controllers/Update.php b/application/controllers/Update.php index 59c914de2..cd56804c3 100644 --- a/application/controllers/Update.php +++ b/application/controllers/Update.php @@ -189,7 +189,7 @@ class Update extends CI_Controller { gzclose($gz); if (file_put_contents($this->make_update_path("cty.xml"), $data) === FALSE) { - $this->update_status("FAILED: Could not write to LoTW users file"); + $this->update_status("FAILED: Could not write to cty.xml file"); return; } From 6430ad56921b1767bfce48b3045ea4d1b3b0c536 Mon Sep 17 00:00:00 2001 From: Andreas <6977712+AndreasK79@users.noreply.github.com> Date: Wed, 5 Jul 2023 12:51:49 +0200 Subject: [PATCH 04/10] [Advanced Logbook] Fixed Quickfilters if eQSL or LoTW columns are hidden --- assets/js/sections/logbookadvanced.js | 16 ++++++++++++---- src/QSLManager/QSO.php | 2 +- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/assets/js/sections/logbookadvanced.js b/assets/js/sections/logbookadvanced.js index 5babec70c..f8a8397f5 100644 --- a/assets/js/sections/logbookadvanced.js +++ b/assets/js/sections/logbookadvanced.js @@ -402,15 +402,23 @@ $(document).ready(function () { alert("Only 1 row can be selected"); //popup message that only 1 row can be selected } + var offset = 0; + + if (!$(".eqslconfirmation")[0]){ + offset--; + } + if (!$(".lotwconfirmation")[0]){ + offset--; + } elements.each(function() { var currentRow = $(this).first().closest('tr'); var col1 = ''; switch (type) { - case 'dxcc': col1 = currentRow.find("td:eq(16)").html(); col1 = col1.match(/\d/g); col1 = col1.join("");break; + case 'dxcc': var tdoffset = (offset + 16); col1 = currentRow.find("td:eq("+tdoffset+")").html(); col1 = col1.match(/\d/g); col1 = col1.join(""); break; + case 'cqzone': var tdoffset = (offset + 18); col1 = currentRow.find("td:eq("+tdoffset+")").text(); break; + case 'iota': var tdoffset = (offset + 19); col1 = currentRow.find("td:eq("+tdoffset+")").text(); col1 = col1.trim(); break; + case 'state': var tdoffset = (offset + 17); col1 = currentRow.find("td:eq("+tdoffset+")").text(); break; case 'dx': col1 = currentRow.find("td:eq(3)").text(); col1 = col1.match(/^([^\s]+)/gm); break; - case 'iota': col1 = currentRow.find("td:eq(19)").text(); col1 = col1.trim(); break; - case 'state': col1 = currentRow.find("td:eq(17)").text(); break; - case 'cqzone': col1 = currentRow.find("td:eq(18)").text(); break; case 'gridsquare': col1 = $(currentRow).find('#dxgrid').text(); col1 = col1.substring(0, 4); break; case 'mode': col1 = currentRow.find("td:eq(4)").text(); break; case 'band': col1 = currentRow.find("td:eq(7)").text(); col1 = col1.match(/\S\w*/); break; diff --git a/src/QSLManager/QSO.php b/src/QSLManager/QSO.php index 472fe629f..a86524610 100644 --- a/src/QSLManager/QSO.php +++ b/src/QSLManager/QSO.php @@ -15,7 +15,7 @@ class QSO private string $dx; private string $mode; private string $submode; - private string $band; + private ?string $band; private string $bandRX; private string $rstR; private string $rstS; From 982b4a4ce97dce554100784245db392891186738 Mon Sep 17 00:00:00 2001 From: Andreas <6977712+AndreasK79@users.noreply.github.com> Date: Wed, 5 Jul 2023 13:03:10 +0200 Subject: [PATCH 05/10] [Advanced Logbook] Changed warning poup --- assets/js/sections/logbookadvanced.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/assets/js/sections/logbookadvanced.js b/assets/js/sections/logbookadvanced.js index f8a8397f5..308821998 100644 --- a/assets/js/sections/logbookadvanced.js +++ b/assets/js/sections/logbookadvanced.js @@ -399,8 +399,15 @@ $(document).ready(function () { return; } if (nElements > 1) { - alert("Only 1 row can be selected"); - //popup message that only 1 row can be selected + BootstrapDialog.alert({ + title: 'WARNING', + message: 'Only 1 row can be selected for Quickfilter!', + type: BootstrapDialog.TYPE_WARNING, + closable: false, + draggable: false, + callback: function (result) { + } + }); } var offset = 0; From 782857aef9f5b1b48950737a46c10354c9386397 Mon Sep 17 00:00:00 2001 From: int2001 Date: Wed, 5 Jul 2023 12:05:02 +0000 Subject: [PATCH 06/10] Fixes Issue 2198 --- application/controllers/Qrz.php | 7 ++++++- application/models/Logbook_model.php | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/application/controllers/Qrz.php b/application/controllers/Qrz.php index 13d354217..1df7e2208 100644 --- a/application/controllers/Qrz.php +++ b/application/controllers/Qrz.php @@ -71,9 +71,14 @@ class Qrz extends CI_Controller { $result = $this->logbook_model->push_qso_to_qrz($qrz_api_key, $adif); } - if ($result['status'] == 'OK') { + if ( ($result['status'] == 'OK') || ( ($result['status'] == 'error') && ($result['message'] == 'STATUS=FAIL&REASON=Unable to add QSO to database: duplicate&EXTENDED=')) ){ $this->markqso($qso->COL_PRIMARY_KEY); $i++; + } elseif ( ($result['status']=='error') && (substr($result['message'],0,11) == 'STATUS=AUTH')) { + log_message('error', 'QRZ upload failed for qso: Call: ' . $qso->COL_CALL . ' Band: ' . $qso->COL_BAND . ' Mode: ' . $qso->COL_MODE . ' Time: ' . $qso->COL_TIME_ON); + log_message('error', 'QRZ upload failed with the following message: ' .$result['message']); + log_message('error', 'QRZ upload stopped for Station_ID: ' .$station_id); + break; /* If key is invalid, immediate stop syncing for more QSOs of this station */ } else { log_message('error', 'QRZ upload failed for qso: Call: ' . $qso->COL_CALL . ' Band: ' . $qso->COL_BAND . ' Mode: ' . $qso->COL_MODE . ' Time: ' . $qso->COL_TIME_ON); log_message('error', 'QRZ upload failed with the following message: ' .$result['message']); diff --git a/application/models/Logbook_model.php b/application/models/Logbook_model.php index 7900a6ca8..691cb3ba5 100755 --- a/application/models/Logbook_model.php +++ b/application/models/Logbook_model.php @@ -519,7 +519,8 @@ class Logbook_model extends CI_Model { $adif = $CI->adifhelper->getAdifLine($qso[0]); $result = $this->push_qso_to_qrz($result->qrzapikey, $adif); - if ($result['status'] == 'OK') { + log_message("error","Oink: ".$result['message']); + if ( ($result['status'] == 'OK') || ( ($result['status'] == 'error') && ($result['message'] == 'STATUS=FAIL&REASON=Unable to add QSO to database: duplicate&EXTENDED=')) ){ $this->mark_qrz_qsos_sent($last_id); } } From 8c04f5ecc27f7b2b7b7d681f895408553e3c6556 Mon Sep 17 00:00:00 2001 From: int2001 Date: Wed, 5 Jul 2023 12:07:00 +0000 Subject: [PATCH 07/10] Removed debug-Output --- application/models/Logbook_model.php | 1 - 1 file changed, 1 deletion(-) diff --git a/application/models/Logbook_model.php b/application/models/Logbook_model.php index 691cb3ba5..c7b97e059 100755 --- a/application/models/Logbook_model.php +++ b/application/models/Logbook_model.php @@ -519,7 +519,6 @@ class Logbook_model extends CI_Model { $adif = $CI->adifhelper->getAdifLine($qso[0]); $result = $this->push_qso_to_qrz($result->qrzapikey, $adif); - log_message("error","Oink: ".$result['message']); if ( ($result['status'] == 'OK') || ( ($result['status'] == 'error') && ($result['message'] == 'STATUS=FAIL&REASON=Unable to add QSO to database: duplicate&EXTENDED=')) ){ $this->mark_qrz_qsos_sent($last_id); } From 5ffcc413e9daf6e0757c156163a72369a86678d1 Mon Sep 17 00:00:00 2001 From: int2001 Date: Wed, 5 Jul 2023 12:20:39 +0000 Subject: [PATCH 08/10] Added Errormessage for User in case of invalid/expired key --- application/controllers/Qrz.php | 1 + 1 file changed, 1 insertion(+) diff --git a/application/controllers/Qrz.php b/application/controllers/Qrz.php index 1df7e2208..68eb29db8 100644 --- a/application/controllers/Qrz.php +++ b/application/controllers/Qrz.php @@ -78,6 +78,7 @@ class Qrz extends CI_Controller { log_message('error', 'QRZ upload failed for qso: Call: ' . $qso->COL_CALL . ' Band: ' . $qso->COL_BAND . ' Mode: ' . $qso->COL_MODE . ' Time: ' . $qso->COL_TIME_ON); log_message('error', 'QRZ upload failed with the following message: ' .$result['message']); log_message('error', 'QRZ upload stopped for Station_ID: ' .$station_id); + $errormessages[] = $result['message'] . ' Call: ' . $qso->COL_CALL . ' Band: ' . $qso->COL_BAND . ' Mode: ' . $qso->COL_MODE . ' Time: ' . $qso->COL_TIME_ON; break; /* If key is invalid, immediate stop syncing for more QSOs of this station */ } else { log_message('error', 'QRZ upload failed for qso: Call: ' . $qso->COL_CALL . ' Band: ' . $qso->COL_BAND . ' Mode: ' . $qso->COL_MODE . ' Time: ' . $qso->COL_TIME_ON); From 355070438d26f9c0834fc2be2f7b4ae3124960f7 Mon Sep 17 00:00:00 2001 From: Peter Goodhall Date: Wed, 5 Jul 2023 14:48:22 +0100 Subject: [PATCH 09/10] [API] Removed search_callsign() Think search_callsign() is a left over from testing code but isn't used --- application/controllers/Api.php | 33 +-------------------------------- 1 file changed, 1 insertion(+), 32 deletions(-) diff --git a/application/controllers/Api.php b/application/controllers/Api.php index 2eaf99a71..b6573faa5 100644 --- a/application/controllers/Api.php +++ b/application/controllers/Api.php @@ -5,38 +5,7 @@ class API extends CI_Controller { // Do absolutely nothing function index() { - } - - /* - TODOs - - Search Callsign (Return Json) - - Add QSO return json - */ - - - function search_callsign($callsign) { - $this->db->select('COL_PRIMARY_KEY, COL_CALL, COL_MODE, COL_SUBMODE, COL_BAND, COL_COUNTRY, COL_FREQ, COL_GRIDSQUARE, COL_RST_RCVD, COL_RST_SENT, COL_SAT_MODE, COL_SAT_NAME'); - //$this->db->select("DATE_FORMAT(COL_TIME_ON, '%H:%i') AS time_on", FALSE ); - //$this->db->select("DATE_FORMAT(COL_TIME_ON, '%d/%c/%Y') AS date_on", FALSE ); - $this->db->like('COL_CALL', $callsign); - $this->db->or_like('COL_GRIDSQUARE', $callsign); - $query = $this->db->get($this->config->item('table_name')); - - - $results = array(); - - foreach ($query->result() as $result) - { - $results[] = $result; - } - - header('Content-type: application/json'); - - //$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); - echo $_GET['jsoncallback'].'('.json_encode($results).')'; //assign resulting code to $_GET['jsoncallback]. - - //echo json_encode($results); - + echo "nothing to see" } function help() From cfa0a59156a2489673c0121f7d12fbd2d14b9a50 Mon Sep 17 00:00:00 2001 From: Peter Goodhall Date: Wed, 5 Jul 2023 14:48:38 +0100 Subject: [PATCH 10/10] typo --- application/controllers/Api.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/controllers/Api.php b/application/controllers/Api.php index b6573faa5..a69bd561f 100644 --- a/application/controllers/Api.php +++ b/application/controllers/Api.php @@ -5,7 +5,7 @@ class API extends CI_Controller { // Do absolutely nothing function index() { - echo "nothing to see" + echo "nothing to see"; } function help()