diff --git a/application/controllers/Logbookadvanced.php b/application/controllers/Logbookadvanced.php index 716362f39..30c9a0c19 100644 --- a/application/controllers/Logbookadvanced.php +++ b/application/controllers/Logbookadvanced.php @@ -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); diff --git a/application/models/Logbookadvanced_model.php b/application/models/Logbookadvanced_model.php index d2d249123..70b28d9f6 100644 --- a/application/models/Logbookadvanced_model.php +++ b/application/models/Logbookadvanced_model.php @@ -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'] !== '') { diff --git a/application/views/logbookadvanced/index.php b/application/views/logbookadvanced/index.php index e9f8b8ada..eff0a0601 100644 --- a/application/views/logbookadvanced/index.php +++ b/application/views/logbookadvanced/index.php @@ -511,6 +511,10 @@ $options = json_decode($options);
distance->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> "> +
+
duration->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> + + ">
diff --git a/assets/js/sections/logbookadvanced.js b/assets/js/sections/logbookadvanced.js index 0816b20a2..2d1ef914b 100644 --- a/assets/js/sections/logbookadvanced.js +++ b/assets/js/sections/logbookadvanced.js @@ -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) {