From 873ff86af512f6f9eff424303d3930869b160c56 Mon Sep 17 00:00:00 2001 From: int2001 Date: Fri, 20 Mar 2026 09:05:06 +0000 Subject: [PATCH] Different approach / use class --- application/views/logbookadvanced/index.php | 94 ++++++++++----------- assets/js/sections/logbookadvanced.js | 37 +++++--- 2 files changed, 73 insertions(+), 58 deletions(-) diff --git a/application/views/logbookadvanced/index.php b/application/views/logbookadvanced/index.php index aa2bf70a5..ce4d5886f 100644 --- a/application/views/logbookadvanced/index.php +++ b/application/views/logbookadvanced/index.php @@ -290,12 +290,12 @@ $options = json_decode($options);
" method="post"> - - - - - - + + + + + +
@@ -326,19 +326,19 @@ $options = json_decode($options);
datetime->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - +
datetime->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - +
dx->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - "> + ">
dxcc->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> -
state->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - "> + ">
gridsquare->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - "> + ">
mode->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - $mode) { @@ -380,7 +380,7 @@ $options = json_decode($options);
band->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> -
propagation->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - @@ -434,7 +434,7 @@ $options = json_decode($options);
cqzone->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> -
ituzone->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> -
county->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - "> + ">
dok->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - "> + ">
sota->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - "> + ">
pota->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - "> + ">
iota->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> -
wwff->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - "> + ">
operator->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - "> + ">
contest->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - "> + ">
continent->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - @@ -519,15 +519,15 @@ $options = json_decode($options);
comment->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - "> + ">
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"> - "> + ">
@@ -569,7 +569,7 @@ $options = json_decode($options);
qsl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - @@ -580,7 +580,7 @@ $options = json_decode($options);
qsl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - @@ -591,7 +591,7 @@ $options = json_decode($options);
qsl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - @@ -601,7 +601,7 @@ $options = json_decode($options);
qsl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - @@ -613,7 +613,7 @@ $options = json_decode($options);
lotw->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - @@ -624,7 +624,7 @@ $options = json_decode($options);
lotw->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - @@ -636,7 +636,7 @@ $options = json_decode($options);
clublog->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - @@ -647,7 +647,7 @@ $options = json_decode($options);
clublog->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - @@ -660,7 +660,7 @@ $options = json_decode($options);
eqsl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - @@ -671,7 +671,7 @@ $options = json_decode($options);
eqsl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - @@ -682,7 +682,7 @@ $options = json_decode($options);
dcl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - @@ -691,7 +691,7 @@ $options = json_decode($options);
dcl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl"> - @@ -702,11 +702,11 @@ $options = json_decode($options);
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"> - @@ -714,7 +714,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"> - @@ -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; }); }