mirror of
https://github.com/wavelog/wavelog.git
synced 2026-03-22 10:24:14 +00:00
[Advanced Logbook] Added sort order criteria
This commit is contained in:
@@ -159,6 +159,7 @@ class Logbookadvanced extends CI_Controller {
|
||||
'qrzSent' => xss_clean($this->input->post('qrzSent')),
|
||||
'qrzReceived' => xss_clean($this->input->post('qrzReceived')),
|
||||
'distance' => xss_clean($this->input->post('distance')),
|
||||
'sortorder' => xss_clean($this->input->post('sortorder'))
|
||||
);
|
||||
}
|
||||
|
||||
@@ -388,7 +389,8 @@ class Logbookadvanced extends CI_Controller {
|
||||
'qrzSent' => '',
|
||||
'qrzReceived' => '',
|
||||
'ids' => json_decode(xss_clean($this->input->post('ids'))),
|
||||
'qsoids' => xss_clean($this->input->post('qsoids'))
|
||||
'qsoids' => xss_clean($this->input->post('qsoids')),
|
||||
'sortorder' => 'qsotimedesc'
|
||||
);
|
||||
|
||||
$result = $this->logbookadvanced_model->getSearchResultArray($searchCriteria);
|
||||
|
||||
@@ -602,6 +602,30 @@ class Logbookadvanced_model extends CI_Model {
|
||||
}
|
||||
}
|
||||
|
||||
$sortorder = '';
|
||||
|
||||
if ($searchCriteria['sortorder'] !== '') {
|
||||
switch($searchCriteria['sortorder']) {
|
||||
case 'qsotimedesc':
|
||||
$sortorder .= ' ORDER BY qsos.COL_TIME_ON desc, qsos.COL_PRIMARY_KEY desc';
|
||||
break;
|
||||
case 'qsotimeasc':
|
||||
$sortorder .= ' ORDER BY qsos.COL_TIME_ON asc, qsos.COL_PRIMARY_KEY asc';
|
||||
break;
|
||||
case 'band':
|
||||
$sortorder .= ' ORDER BY qsos.COL_BAND asc, qsos.COL_PRIMARY_KEY asc';
|
||||
break;
|
||||
case 'mode':
|
||||
$sortorder .= ' ORDER BY qsos.COL_MODE asc, qsos.COL_SUBMODE asc, qsos.COL_PRIMARY_KEY asc';
|
||||
break;
|
||||
case 'qso_modifieddesc':
|
||||
$sortorder .= ' ORDER BY qsos.last_modified desc, qsos.COL_PRIMARY_KEY desc';
|
||||
break;
|
||||
default:
|
||||
$sortorder .= ' ORDER BY qsos.COL_TIME_ON desc, qsos.COL_PRIMARY_KEY desc';
|
||||
}
|
||||
}
|
||||
|
||||
$sql = "
|
||||
SELECT qsos.*, qsos.last_modified AS qso_last_modified, dxcc_entities.*, lotw_users.*, station_profile.*, satellite.*, dxcc_entities.name as dxccname, mydxcc.name AS station_country, exists(select 1 from qsl_images where qsoid = qsos.COL_PRIMARY_KEY) as qslcount, coalesce(contest.name, qsos.col_contest_id) as contestname
|
||||
FROM " . $this->config->item('table_name') . " qsos
|
||||
@@ -614,7 +638,7 @@ class Logbookadvanced_model extends CI_Model {
|
||||
WHERE station_profile.user_id = ?
|
||||
$where
|
||||
$where2
|
||||
ORDER BY qsos.COL_TIME_ON desc, qsos.COL_PRIMARY_KEY desc
|
||||
$sortorder
|
||||
$limit
|
||||
";
|
||||
return $this->db->query($sql, $binding);
|
||||
@@ -2079,7 +2103,7 @@ class Logbookadvanced_model extends CI_Model {
|
||||
from ' . $this->config->item('table_name') . '
|
||||
join station_profile on ' . $this->config->item('table_name') . '.station_id = station_profile.station_id
|
||||
where station_profile.user_id = ?';
|
||||
$params[] = array($this->session->userdata('user_id'));
|
||||
$params[] = $this->session->userdata('user_id');
|
||||
|
||||
$sql .= ' order by station_profile.station_profile_name asc, date desc';
|
||||
|
||||
|
||||
@@ -506,6 +506,18 @@ $options = json_decode($options);
|
||||
<label class="form-label" for="distance"><?= __("Distance"); ?> <i class="fa fa-question-circle" aria-hidden="true" data-bs-toggle="tooltip" title="<?= __("Distance in kilometers. Search will look for distances greater than or equal to this value."); ?>"></i></label>
|
||||
<input onclick="this.select()" type="text" name="distance" class="form-control form-control-sm border border-secondary" value="*" placeholder="<?= __("Empty"); ?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
|
||||
<label class="form-label" for="sortorder"><?= __("Sort order"); ?></label>
|
||||
<select id="sortorder" name="sortorder" class="form-select form-select-sm border border-secondary">
|
||||
<option value="qsotimedesc"><?= __("QSO Time descending"); ?></option>
|
||||
<option value="qsotimeasc"><?= __("QSO Time ascending"); ?></option>
|
||||
<option value="band"><?= __("Band"); ?></option>
|
||||
<option value="mode"><?= __("Mode"); ?></option>
|
||||
<option value="qso_modifieddesc"><?= __("QSO Modified descending"); ?></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
@@ -764,6 +764,7 @@ $(document).ready(function () {
|
||||
qrzSent: this.qrzSent.value,
|
||||
qrzReceived: this.qrzReceived.value,
|
||||
distance: this.distance.value,
|
||||
sortorder: this.sortorder.value
|
||||
},
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
@@ -1928,7 +1929,7 @@ function saveOptions() {
|
||||
nightshadow_layer: $('input[name="nightshadow"]').is(':checked') ? true : false,
|
||||
qth: $('input[name="qth"]').is(':checked') ? true : false,
|
||||
frequency: $('input[name="frequency"]').is(':checked') ? true : false,
|
||||
dcl: $('input[name="dcl"]').is(':checked') ? true : false,
|
||||
dcl: $('input[name="dcl"]').is(':checked') ? true : false
|
||||
},
|
||||
success: function(data) {
|
||||
$('#saveButton').prop("disabled", false);
|
||||
|
||||
Reference in New Issue
Block a user