mirror of
https://github.com/wavelog/wavelog.git
synced 2026-03-27 01:24:16 +00:00
Added dropdown for sort direction
This commit is contained in:
@@ -159,7 +159,8 @@ 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'))
|
||||
'sortcolumn' => xss_clean($this->input->post('sortcolumn')),
|
||||
'sortdirection' => xss_clean($this->input->post('sortdirection'))
|
||||
);
|
||||
}
|
||||
|
||||
@@ -390,7 +391,8 @@ class Logbookadvanced extends CI_Controller {
|
||||
'qrzReceived' => '',
|
||||
'ids' => json_decode(xss_clean($this->input->post('ids'))),
|
||||
'qsoids' => xss_clean($this->input->post('qsoids')),
|
||||
'sortorder' => 'qsotimedesc'
|
||||
'sortcolumn' => 'qsotime',
|
||||
'sortdirection' => 'desc'
|
||||
);
|
||||
|
||||
$result = $this->logbookadvanced_model->getSearchResultArray($searchCriteria);
|
||||
|
||||
@@ -604,26 +604,36 @@ 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';
|
||||
$sortColumn = '';
|
||||
$sortDirection = isset($searchCriteria['sortdirection']) && strtolower($searchCriteria['sortdirection']) === 'asc' ? 'asc' : 'desc';
|
||||
|
||||
if ($searchCriteria['sortcolumn'] !== '') {
|
||||
switch($searchCriteria['sortcolumn']) {
|
||||
case 'qsotime':
|
||||
$sortColumn = 'qsos.COL_TIME_ON';
|
||||
break;
|
||||
case 'band':
|
||||
$sortorder .= ' ORDER BY qsos.COL_BAND asc, qsos.COL_PRIMARY_KEY asc';
|
||||
$sortColumn = 'qsos.COL_BAND';
|
||||
break;
|
||||
case 'mode':
|
||||
$sortorder .= ' ORDER BY qsos.COL_MODE asc, qsos.COL_SUBMODE asc, qsos.COL_PRIMARY_KEY asc';
|
||||
$sortColumn = 'qsos.COL_MODE';
|
||||
break;
|
||||
case 'qso_modifieddesc':
|
||||
$sortorder .= ' ORDER BY qsos.last_modified desc, qsos.COL_PRIMARY_KEY desc';
|
||||
case 'qsomodified':
|
||||
$sortColumn = 'qsos.last_modified';
|
||||
break;
|
||||
default:
|
||||
$sortorder .= ' ORDER BY qsos.COL_TIME_ON desc, qsos.COL_PRIMARY_KEY desc';
|
||||
$sortColumn = 'qsos.COL_TIME_ON';
|
||||
}
|
||||
|
||||
$secondarySort = $sortDirection === 'asc' ? 'asc' : 'desc';
|
||||
$sortorder .= " ORDER BY $sortColumn $sortDirection";
|
||||
|
||||
// Add secondary sorts for mode column
|
||||
if ($searchCriteria['sortdirection'] === 'mode') {
|
||||
$sortorder .= ", qsos.COL_SUBMODE $sortDirection";
|
||||
}
|
||||
|
||||
$sortorder .= ", qsos.COL_PRIMARY_KEY $secondarySort";
|
||||
}
|
||||
|
||||
$sql = "
|
||||
|
||||
@@ -509,13 +509,19 @@ $options = json_decode($options);
|
||||
</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>
|
||||
<label class="form-label" for="sortcolumn"><?= __("Sort column"); ?></label>
|
||||
<select id="sortcolumn" name="sortcolumn" class="form-select form-select-sm border border-secondary">
|
||||
<option value="qsotime"><?= __("QSO Time"); ?></option>
|
||||
<option value="band"><?= __("Band"); ?></option>
|
||||
<option value="mode"><?= __("Mode"); ?></option>
|
||||
<option value="qso_modifieddesc"><?= __("QSO Modified descending"); ?></option>
|
||||
<option value="qsomodified"><?= __("QSO Modified"); ?></option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
|
||||
<label class="form-label" for="sortdirection"><?= __("Sort direction"); ?></label>
|
||||
<select id="sortdirection" name="sortdirection" class="form-select form-select-sm border border-secondary">
|
||||
<option value="desc"><?= __("Descending"); ?></option>
|
||||
<option value="asc"><?= __("Ascending"); ?></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -764,7 +764,8 @@ $(document).ready(function () {
|
||||
qrzSent: this.qrzSent.value,
|
||||
qrzReceived: this.qrzReceived.value,
|
||||
distance: this.distance.value,
|
||||
sortorder: this.sortorder.value
|
||||
sortcolumn: this.sortcolumn.value,
|
||||
sortdirection: this.sortdirection.value
|
||||
},
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
|
||||
@@ -550,6 +550,8 @@ function getFormData(form) {
|
||||
qrzSent: form.qrzSent.value,
|
||||
qrzReceived: form.qrzReceived.value,
|
||||
distance: form.distance.value,
|
||||
sortcolumn: form.sortcolumn.value,
|
||||
sortdirection: form.sortdirection.value
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user