Added duration filter

This commit is contained in:
Andreas Kristiansen
2026-02-22 10:18:14 +01:00
parent cad0163767
commit e316fd078d
4 changed files with 15 additions and 3 deletions

View File

@@ -161,7 +161,8 @@ class Logbookadvanced extends CI_Controller {
'qrzReceived' => xss_clean($this->input->post('qrzReceived')),
'distance' => xss_clean($this->input->post('distance')),
'sortcolumn' => xss_clean($this->input->post('sortcolumn')),
'sortdirection' => xss_clean($this->input->post('sortdirection'))
'sortdirection' => xss_clean($this->input->post('sortdirection')),
'duration' => xss_clean($this->input->post('duration'))
);
}
@@ -394,7 +395,8 @@ class Logbookadvanced extends CI_Controller {
'ids' => json_decode(xss_clean($this->input->post('ids'))),
'qsoids' => xss_clean($this->input->post('qsoids')),
'sortcolumn' => 'qsotime',
'sortdirection' => 'desc'
'sortdirection' => 'desc',
'duration' => '*'
);
$result = $this->logbookadvanced_model->getSearchResultArray($searchCriteria);

View File

@@ -534,6 +534,11 @@ class Logbookadvanced_model extends CI_Model {
$conditions[] = "coalesce(COL_DISTANCE, '') = ''";
}
if ($searchCriteria['duration'] !== '*' && $searchCriteria['duration'] !== '') {
$conditions[] = "TIMESTAMPDIFF(MINUTE, COL_TIME_ON, COL_TIME_OFF) >= ?";
$binding[] = $searchCriteria['duration'];
}
if (($searchCriteria['propmode'] ?? '') == 'None') {
$conditions[] = "(trim(COL_PROP_MODE) = '' OR COL_PROP_MODE is null)";
} elseif ($searchCriteria['propmode'] !== '') {

View File

@@ -511,6 +511,10 @@ $options = json_decode($options);
<div <?php if (($options->distance->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<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 <?php if (($options->duration->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label class="form-label" for="duration"><?= __("Duration"); ?> <i class="fa fa-question-circle" aria-hidden="true" data-bs-toggle="tooltip" title="<?= __("Duration in minutes. Search will look for durations greater than or equal to this value."); ?>"></i></label>
<input onclick="this.select()" type="text" name="duration" class="form-control form-control-sm border border-secondary" value="*" placeholder="<?= __("Empty"); ?>">
</div>
</div>
<div class="row">

View File

@@ -771,7 +771,8 @@ $(document).ready(function () {
qrzReceived: this.qrzReceived.value,
distance: this.distance.value,
sortcolumn: this.sortcolumn.value,
sortdirection: this.sortdirection.value
sortdirection: this.sortdirection.value,
duration: this.duration.value,
},
dataType: 'json',
success: function (data) {