[Advance Search] Remove duplicate modes

Think this handles sub modes correctly now although you still see USB / LSB listed if its in the main MODE window. not sure whether to make a migration to change those.
这个提交包含在:
Peter Goodhall 2022-12-27 16:57:09 +00:00
父节点 54c31a6b3f
当前提交 e16e7ed18a
共有 2 个文件被更改,包括 21 次插入8 次删除

查看文件

@ -35,18 +35,18 @@ class Logbookadvanced extends CI_Controller {
} }
ksort($deOptions); ksort($deOptions);
$deOptions = array_keys($deOptions); $deOptions = array_keys($deOptions);
$modes = []; $modes = [];
if ($stationIds !== []) { if ($stationIds !== []) {
foreach ($this->logbookadvanced_model->get_worked_modes($stationIds) as $mode) { foreach ($this->logbookadvanced_model->get_worked_modes($stationIds) as $mode) {
$key = $mode['mode']; $key = $mode['mode'];
if ($mode['submode'] !== null) { if ($mode['submode'] != null) {
$key .= "|" . $mode['submode']; $key .= "|" . $mode['submode'];
} }
if ($mode['submode'] == null) { if ($mode['submode'] == null) {
$modes[$key] = $mode['mode']; $modes[$key] = $mode['mode'];
} else { } else {
$modes[$key] = $mode['submode']; $modes[$key] = $mode['mode'] . " | ".$mode['submode'];
} }
} }
} }

查看文件

@ -14,7 +14,7 @@ class Logbookadvanced_model extends CI_Model {
$ids = "'".implode("','",$stationIds)."'"; $ids = "'".implode("','",$stationIds)."'";
$sql = " $sql = "
SELECT distinct `COL_MODE`, `COL_SUBMODE` SELECT distinct COL_MODE, COL_SUBMODE
FROM `" . $this->config->item('table_name') . "` qsos FROM `" . $this->config->item('table_name') . "` qsos
WHERE qsos.station_id IN (".$ids.") WHERE qsos.station_id IN (".$ids.")
ORDER BY COL_MODE, COL_SUBMODE"; ORDER BY COL_MODE, COL_SUBMODE";
@ -23,11 +23,24 @@ class Logbookadvanced_model extends CI_Model {
$results = []; $results = [];
foreach ($data->result() as $row) { foreach ($data->result() as $row) {
$results[] = [ if(!empty($row->COL_SUBMODE)) {
'mode' => $row->COL_MODE, $results[] = [
'submode' => $row->COL_SUBMODE 'mode' => $row->COL_MODE,
]; 'submode' => $row->COL_SUBMODE
];
} else {
// if mode is not already in the results array
if (!in_array($row->COL_MODE, array_column($results, 'mode'))) {
$results[] = [
'mode' => $row->COL_MODE,
'submode' => null
];
}
}
} }
return $results; return $results;
} }