qsl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
- ">
+ ">
qsl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
-
qrz->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
-
+
@@ -723,7 +723,7 @@ $options = json_decode($options);
qrz->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 1c943b74c..29e8601bf 100644
--- a/assets/js/sections/logbookadvanced.js
+++ b/assets/js/sections/logbookadvanced.js
@@ -6,6 +6,7 @@ let inStateFixing = false;
let stateFixStats = {fixed: 0, skipped: 0, fixedDxcc: new Set(), skippedDxcc: new Set(), skipReasons: new Set(), skippedDetails: []};
let lastChecked = null;
let silentReset = false;
+const filterDefaults = {};
document.addEventListener("DOMContentLoaded", function() {
document.querySelectorAll('.dropdown').forEach(dd => {
@@ -626,7 +627,22 @@ function unselectQsoID(qsoID) {
$('#checkBoxAll').prop("checked", false);
}
+// Capture default values for all filter fields on page load
+function captureFilterDefaults() {
+ $('.filter-field').each(function() {
+ const $el = $(this);
+ const id = $el.attr('id');
+ const name = $el.attr('name');
+ // Use id as key if available, otherwise use name
+ const key = id ? '#' + id : '[name="' + name + '"]';
+ filterDefaults[key] = $el.val();
+ });
+}
+
$(document).ready(function () {
+ // Capture default filter values BEFORE any other initialization
+ captureFilterDefaults();
+
// initialize multiselect dropdown for locations
// Documentation: https://davidstutz.github.io/bootstrap-multiselect/index.html
@@ -1687,20 +1703,19 @@ $(document).ready(function () {
});
function hasActiveFilters() {
- const textFilters = ['#dx', '#state', '#gridsquare', '#county', '#dok', '#sota', '#pota', '#wwff', '#operator', '#contest', '#comment', '#qslvia', '#distance', '#duration'];
- const dateFilters = ['#dateFrom', '#dateTo'];
- const selectFilters = ['#dxcc', '#mode', '#band', '#sats', '#orbits', '#propmode', '#cqzone', '#ituzone', '#iota', '#continent', '#qslSent', '#qslReceived', '#qslSentMethod', '#qslReceivedMethod', '#lotwSent', '#lotwReceived', '#clublogSent', '#clublogReceived', '#eqslSent', '#eqslReceived', '#dclSent', '#dclReceived', '#qrzSent', '#qrzReceived', '#qslimages'];
- const hiddenFilters = ['#dupes', '#invalid', '#dupedate', '#dupemode', '#dupeband', '#dupesat'];
- const allFilters = [...textFilters, ...dateFilters, ...selectFilters, ...hiddenFilters];
-
- return allFilters.some(selector => {
+ return Object.keys(filterDefaults).some(selector => {
const $el = $(selector);
if (!$el.length) return false;
- const val = $el.val();
- if (Array.isArray(val)) {
- return false;
+ const currentVal = $el.val();
+ const defaultVal = filterDefaults[selector];
+
+ // Handle arrays (multi-select)
+ if (Array.isArray(currentVal)) {
+ return false; // Multi-selects not currently used
}
- return val && val !== '*' && val !== '' && val !== 'All';
+
+ // Compare current value to stored default
+ return currentVal !== defaultVal;
});
}