diff --git a/application/controllers/Logbookadvanced.php b/application/controllers/Logbookadvanced.php index e100b0f89..323ecaaa8 100644 --- a/application/controllers/Logbookadvanced.php +++ b/application/controllers/Logbookadvanced.php @@ -151,12 +151,22 @@ class Logbookadvanced extends CI_Controller { public function search() { $this->load->model('logbookadvanced_model'); + if(!$this->load->is_loaded('DxccFlag')) { + $this->load->library('DxccFlag'); + } $searchCriteria = $this->mapParameters(); $qsos = []; foreach ($this->logbookadvanced_model->searchQsos($searchCriteria) as $qso) { - $qsos[] = $qso->toArray(); + $qsoArray = $qso->toArray(); + $flag = $this->dxccflag->get($qso->getDXCCId()); + if ($flag != null) { + $qsoArray['flag'] = ' '.$flag; + } else { + $qsoArray['flag'] = ''; + } + $qsos[] = $qsoArray; } header("Content-Type: application/json"); diff --git a/assets/js/sections/logbookadvanced.js b/assets/js/sections/logbookadvanced.js index 4ea5599ef..cf47fce09 100644 --- a/assets/js/sections/logbookadvanced.js +++ b/assets/js/sections/logbookadvanced.js @@ -293,7 +293,7 @@ function loadQSOTable(rows) { data.push(qso.qslMessageR); } if ((user_options.dxcc.show ?? 'true') == "true"){ - data.push(qso.dxcc+(qso.end == null ? '' : ' Deleted DXCC')); + data.push(qso.dxcc+qso.flag+(qso.end == null ? '' : ' Deleted DXCC')); } if ((user_options.state.show ?? 'true') == "true"){ data.push(qso.state); diff --git a/src/QSLManager/QSO.php b/src/QSLManager/QSO.php index f204112e6..8b64bc75f 100644 --- a/src/QSLManager/QSO.php +++ b/src/QSLManager/QSO.php @@ -43,6 +43,7 @@ class QSO private string $ituzone; private string $state; private string $dxcc; + private string $dxccid; private string $iota; private string $continent; private string $region; @@ -258,6 +259,7 @@ class QSO } else { $this->dxcc = (($data['dxccname'] ?? null) === null) ? '- NONE -' : ''.ucwords(strtolower($data['dxccname']), "- (/").''; } + $this->dxccid = $data['adif']; $this->iota = ($data['COL_IOTA'] === null) ? '' : $this->getIotaLink($data['COL_IOTA']); if (array_key_exists('end', $data)) { $this->end = ($data['end'] === null) ? null : DateTime::createFromFormat("Y-m-d", $data['end'], new DateTimeZone('UTC')); @@ -1175,6 +1177,11 @@ class QSO return '' . $this->dxcc . ''; } + public function getDXCCId(): string + { + return $this->dxccid; + } + public function getCqzone(): string { return '' . $this->cqzone . ''; @@ -1223,6 +1230,7 @@ class QSO 'qslMessageR' => $this->getQSLMsgRcvd(), 'name' => $this->getName(), 'dxcc' => $this->getDXCC(), + 'dxccid' => $this->getDXCCId(), 'state' => $this->getState(), 'pota' => $this->getFormattedPota(), 'operator' => $this->getOperator(),