Merge pull request #2383 from AndreasK79/lba_filter_refactor

This commit is contained in:
Andreas Kristiansen
2025-10-08 21:50:21 +02:00
committed by GitHub
12 changed files with 581 additions and 442 deletions

View File

@@ -211,441 +211,484 @@ $options = json_decode($options);
<form id="searchForm" name="searchForm" action="<?php echo base_url() . "index.php/logbookadvanced/search"; ?>" method="post">
<input type="hidden" id="dupes" name="dupes" value="">
<input type="hidden" id="invalid" name="invalid" value="">
<div class="filterbody collapse">
<div class="row">
<div <?php if (($options->datetime->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="dateFrom"><?= __("From") . ": " ?></label>
<input name="dateFrom" id="dateFrom" type="date" class="form-control form-control-sm w-auto">
</div>
<div <?php if (($options->datetime->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="dateTo"><?= __("To") . ": " ?></label>
<input name="dateTo" id="dateTo" type="date" class="form-control form-control-sm w-auto">
</div>
<div <?php if (($options->dx->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="dx"><?= __("Dx"); ?></label>
<input onclick="this.select()" type="text" name="dx" id="dx" class="form-control form-control-sm" value="*" placeholder="<?= __("Empty"); ?>">
</div>
<div <?php if (($options->dxcc->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="dxcc"><?= __("DXCC"); ?></label>
<select class="form-select form-select-sm" id="dxcc" name="dxcc">
<option value="">-</option>
<?php
foreach ($dxccarray as $dxcc) {
if ($dxcc->adif == '0') {
echo '<option value='.$dxcc->adif.'>';
echo $dxcc->name;
echo '</option>';
} else {
echo '<option value=' . $dxcc->adif;
echo '>' . $dxcc->prefix . ' - ' . ucwords(strtolower($dxcc->name), "- (/");
if ($dxcc->Enddate != null) {
echo ' - (' . __("Deleted DXCC") . ')';
}
}
}
?>
</select>
</div>
<div <?php if (($options->state->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="state"><?= __("State"); ?></label>
<input onclick="this.select()" type="text" name="state" id="state" class="form-control form-control-sm" value="*" placeholder="<?= __("Empty"); ?>">
</div>
<div <?php if (($options->gridsquare->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="gridsquare"><?= __("Gridsquare"); ?></label>
<input onclick="this.select()" type="text" name="gridsquare" id="gridsquare" class="form-control form-control-sm" value="*" placeholder="<?= __("Empty"); ?>">
</div>
<div <?php if (($options->mode->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="mode"><?= __("Mode"); ?></label>
<select id="mode" name="mode" class="form-select form-select-sm">
<option value=""><?= __("All"); ?></option>
<?php
foreach ($modes as $modeId => $mode) {
?><option value="<?php echo htmlspecialchars($mode ?? ''); ?>"><?php echo htmlspecialchars($mode ?? ''); ?></option><?php
}
?>
</select>
</div>
<div <?php if (($options->band->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="band"><?= __("Band"); ?></label>
<select id="band" name="band" class="form-select form-select-sm">
<option value=""><?= __("All"); ?></option>
<?php
foreach ($bands as $band) {
?><option value="<?php echo htmlentities($band ?? ''); ?>"><?php echo htmlspecialchars($band ?? ''); ?></option><?php
}
?>
</select>
</div>
<div hidden class="sats_dropdown mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label class="form-label" for="sats"><?= __("Satellite"); ?></label>
<select class="form-select form-select-sm" id="sats" name="sats">
<option value="All"><?= __("All"); ?></option>
<?php foreach ($sats as $sat) {
echo '<option value="' . htmlentities($sat) . '"' . '>' . htmlentities($sat) . '</option>' . "\n";
} ?>
</select>
</div>
<div hidden class="orbits_dropdown mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label class="form-label" for="orbits"><?= __("Orbit"); ?></label>
<select class="form-select form-select-sm" id="orbits" name="orbits">
<option value="All"><?= __("All"); ?></option>
<?php foreach ($orbits as $orbit) {
echo '<option value="' . htmlentities($orbit) . '"' . '>' . htmlentities($orbit) . '</option>' . "\n";
} ?>
</select>
</div>
<div <?php if (($options->propagation->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="selectPropagation"><?= __("Propagation"); ?></label>
<select id="selectPropagation" class="form-select form-select-sm" name="propmode">
<option value=""><?= __("All"); ?></option>
<option value="None"><?= _pgettext("Propagation Mode", "None/Empty"); ?></option>
<option value="AS"><?= _pgettext("Propagation Mode", "Aircraft Scatter"); ?></option>
<option value="AUR"><?= _pgettext("Propagation Mode", "Aurora"); ?></option>
<option value="AUE"><?= _pgettext("Propagation Mode", "Aurora-E"); ?></option>
<option value="BS"><?= _pgettext("Propagation Mode", "Back scatter"); ?></option>
<option value="ECH"><?= _pgettext("Propagation Mode", "EchoLink"); ?></option>
<option value="EME"><?= _pgettext("Propagation Mode", "Earth-Moon-Earth"); ?></option>
<option value="ES"><?= _pgettext("Propagation Mode", "Sporadic E"); ?></option>
<option value="FAI"><?= _pgettext("Propagation Mode", "Field Aligned Irregularities"); ?></option>
<option value="F2"><?= _pgettext("Propagation Mode", "F2 Reflection"); ?></option>
<option value="INTERNET"><?= _pgettext("Propagation Mode", "Internet-assisted"); ?></option>
<option value="ION"><?= _pgettext("Propagation Mode", "Ionoscatter"); ?></option>
<option value="IRL"><?= _pgettext("Propagation Mode", "IRLP"); ?></option>
<option value="MS"><?= _pgettext("Propagation Mode", "Meteor scatter"); ?></option>
<option value="RPT"><?= _pgettext("Propagation Mode", "Terrestrial or atmospheric repeater or transponder"); ?></option>
<option value="RS"><?= _pgettext("Propagation Mode", "Rain scatter"); ?></option>
<option value="SAT"><?= _pgettext("Propagation Mode", "Satellite"); ?></option>
<option value="TEP"><?= _pgettext("Propagation Mode", "Trans-equatorial"); ?></option>
<option value="TR"><?= _pgettext("Propagation Mode", "Tropospheric ducting"); ?></option>
</select>
</div>
<div <?php if (($options->cqzone->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="cqzone"><?= __("CQ Zone"); ?></label>
<select id="cqzone" name="cqzone" class="form-select form-select-sm">
<option value="All"><?= __("All"); ?></option>
<option value=""><?= __("Empty"); ?></option>
<?php
for ($i = 1; $i <= 40; $i++) {
echo '<option value="' . $i . '">' . $i . '</option>';
}
?>
</select>
</div>
<div <?php if (($options->ituzone->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="ituzone"><?= __("ITU Zone"); ?></label>
<select id="ituzone" name="ituzone" class="form-select form-select-sm">
<option value="All"><?= __("All"); ?></option>
<option value=""><?= __("Empty"); ?></option>
<?php
for ($i = 1; $i <= 90; $i++) {
echo '<option value="' . $i . '">' . $i . '</option>';
}
?>
</select>
</div>
</div>
<div class="row">
<div <?php if (($options->county->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="county"><?= __("County"); ?></label>
<input onclick="this.select()" type="text" name="county" id="county" class="form-control form-control-sm" value="*" placeholder="<?= __("Empty"); ?>">
</div>
<div <?php if (($options->dok->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="dok"><?= __("DOK"); ?></label>
<input onclick="this.select()" type="text" name="dok" id="dok" class="form-control form-control-sm" value="*" placeholder="<?= __("Empty"); ?>">
</div>
<div <?php if (($options->sota->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="sota"><?= __("SOTA"); ?></label>
<input onclick="this.select()" type="text" name="sota" id="sota" class="form-control form-control-sm" value="*" placeholder="<?= __("Empty"); ?>">
</div>
<div <?php if (($options->pota->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="pota"><?= __("POTA"); ?></label>
<input onclick="this.select()" type="text" name="pota" id="pota" class="form-control form-control-sm" value="*" placeholder="<?= __("Empty"); ?>">
</div>
<div <?php if (($options->iota->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="iota"><?= __("IOTA"); ?></label>
<select class="form-select form-select-sm" id="iota" name="iota">
<option value="">-</option>
<?php
foreach ($iotaarray as $iota) {
echo '<option value=' . $iota->tag;
echo '>' . $iota->tag . ' - ' . $iota->name . '</option>';
}
?>
</select>
</div>
<div <?php if (($options->wwff->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="wwff"><?= __("WWFF"); ?></label>
<input onclick="this.select()" type="text" name="wwff" id="wwff" class="form-control form-control-sm" value="*" placeholder="<?= __("Empty"); ?>">
</div>
<div <?php if (($options->operator->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="operator"><?= __("Operator"); ?></label>
<input onclick="this.select()" type="text" name="operator" id="operator" class="form-control form-control-sm" value="*" placeholder="<?= __("Empty"); ?>">
</div>
<div <?php if (($options->contest->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="contest"><?= __("Contest"); ?></label>
<input onclick="this.select()" type="text" name="contest" id="contest" class="form-control form-control-sm" value="*" placeholder="<?= __("Empty"); ?>">
</div>
<div <?php if (($options->continent->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="continent"><?= __("Continent"); ?></label>
<select id="continent" name="continent" class="form-select form-select-sm">
<option value=""><?= __("All"); ?></option>
<option value="blank"><?= __("None/Empty"); ?></option>
<option value="af"><?= __("Africa"); ?></option>
<option value="an"><?= __("Antarctica"); ?></option>
<option value="na"><?= __("North America"); ?></option>
<option value="as"><?= __("Asia"); ?></option>
<option value="eu"><?= __("Europe"); ?></option>
<option value="sa"><?= __("South America"); ?></option>
<option value="oc"><?= __("Oceania"); ?></option>
<option value="invalid"><?= __("Invalid"); ?></option>
</select>
</div>
<div <?php if (($options->comment->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="comment"><?= __("Comment"); ?></label>
<input onclick="this.select()" type="text" name="comment" id="comment" class="form-control form-control-sm" value="*" placeholder="<?= __("Empty"); ?>">
</div>
</div>
</div>
</div>
<div class="qslfilterbody collapse">
<div class="row">
<div <?php if (($options->qsl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="qslSent"><?= __("QSL sent"); ?></label>
<select id="qslSent" name="qslSent" class="form-select form-select-sm">
<option value=""><?= __("All"); ?></option>
<option value="Y"><?= __("Yes"); ?></option>
<option value="N"><?= __("No"); ?></option>
<option value="R"><?= __("Requested"); ?></option>
<option value="Q"><?= __("Queued"); ?></option>
<option value="I"><?= __("Invalid (Ignore)"); ?></option>
</select>
</div>
<div <?php if (($options->qsl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="qslReceived"><?= __("QSL received"); ?></label>
<select id="qslReceived" name="qslReceived" class="form-select form-select-sm">
<option value=""><?= __("All"); ?></option>
<option value="Y"><?= __("Yes"); ?></option>
<option value="N"><?= __("No"); ?></option>
<option value="R"><?= __("Requested"); ?></option>
<option value="I"><?= __("Invalid (Ignore)"); ?></option>
<option value="V"><?= __("Verified"); ?></option>
</select>
</div>
<div <?php if (($options->qsl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="qslSentMethod"><?= __("QSL send. method"); ?></label>
<select id="qslSentMethod" name="qslSentMethod" class="form-select form-select-sm">
<option value=""><?= __("All"); ?></option>
<option value="B"><?= __("Bureau"); ?></option>
<option value="D"><?= __("Direct"); ?></option>
<option value="E"><?= __("Electronic"); ?></option>
<option value="M"><?= __("Manager"); ?></option>
</select>
</div>
<div <?php if (($options->qsl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="qslReceivedMethod"><?= __("QSL recv. method"); ?></label>
<select id="qslReceivedMethod" name="qslReceivedMethod" class="form-select form-select-sm">
<option value=""><?= __("All"); ?></option>
<option value="B"><?= __("Bureau"); ?></option>
<option value="D"><?= __("Direct"); ?></option>
<option value="E"><?= __("Electronic"); ?></option>
<option value="M"><?= __("Manager"); ?></option>
</select>
</div>
<div <?php if (($options->lotw->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="lotwSent"><?= __("LoTW sent"); ?></label>
<select id="lotwSent" name="lotwSent" class="form-select form-select-sm">
<option value=""><?= __("All"); ?></option>
<option value="Y"><?= __("Yes"); ?></option>
<option value="N"><?= __("No"); ?></option>
<option value="R"><?= __("Requested"); ?></option>
<option value="Q"><?= __("Queued"); ?></option>
<option value="I"><?= __("Invalid (Ignore)"); ?></option>
</select>
</div>
<div <?php if (($options->lotw->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="lotwReceived"><?= __("LoTW received"); ?></label>
<select id="lotwReceived" name="lotwReceived" class="form-select form-select-sm">
<option value=""><?= __("All"); ?></option>
<option value="Y"><?= __("Yes"); ?></option>
<option value="N"><?= __("No"); ?></option>
<option value="R"><?= __("Requested"); ?></option>
<option value="I"><?= __("Invalid (Ignore)"); ?></option>
<option value="V"><?= __("Verified"); ?></option>
</select>
</div>
<div <?php if (($options->clublog->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="clublogSent"><?= __("Clublog sent"); ?></label>
<select id="clublogSent" name="clublogSent" class="form-select form-select-sm">
<option value=""><?= __("All"); ?></option>
<option value="Y"><?= __("Yes"); ?></option>
<option value="N"><?= __("No"); ?></option>
<option value="R"><?= __("Requested"); ?></option>
<option value="Q"><?= __("Queued"); ?></option>
<option value="I"><?= __("Invalid (Ignore)"); ?></option>
</select>
</div>
<div <?php if (($options->clublog->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="clublogReceived"><?= __("Clublog received"); ?></label>
<select id="clublogReceived" name="clublogReceived" class="form-select form-select-sm">
<option value=""><?= __("All"); ?></option>
<option value="Y"><?= __("Yes"); ?></option>
<option value="N"><?= __("No"); ?></option>
<option value="R"><?= __("Requested"); ?></option>
<option value="I"><?= __("Invalid (Ignore)"); ?></option>
<option value="V"><?= __("Verified"); ?></option>
</select>
</div>
<div <?php if (($options->eqsl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="eqslSent"><?= __("eQSL sent"); ?></label>
<select id="eqslSent" name="eqslSent" class="form-select form-select-sm">
<option value=""><?= __("All"); ?></option>
<option value="Y"><?= __("Yes"); ?></option>
<option value="N"><?= __("No"); ?></option>
<option value="R"><?= __("Requested"); ?></option>
<option value="Q"><?= __("Queued"); ?></option>
<option value="I"><?= __("Invalid (Ignore)"); ?></option>
</select>
</div>
<div <?php if (($options->eqsl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="eqslReceived"><?= __("eQSL received"); ?></label>
<select id="eqslReceived" name="eqslReceived" class="form-select form-select-sm">
<option value=""><?= __("All"); ?></option>
<option value="Y"><?= __("Yes"); ?></option>
<option value="N"><?= __("No"); ?></option>
<option value="R"><?= __("Requested"); ?></option>
<option value="I"><?= __("Invalid (Ignore)"); ?></option>
<option value="V"><?= __("Verified"); ?></option>
</select>
</div>
<div <?php if (($options->dcl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="dclSent"><?= __("DCL sent"); ?></label>
<select id="dclSent" name="dclSent" class="form-select form-select-sm">
<option value=""><?= __("All"); ?></option>
<option value="Y"><?= __("Yes"); ?></option>
<option value="N"><?= __("No"); ?></option>
<option value="I"><?= __("Invalid (Ignore)"); ?></option>
</select>
</div>
<div <?php if (($options->dcl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="dclReceived"><?= __("DCL received"); ?></label>
<select id="dclReceived" name="dclReceived" class="form-select form-select-sm">
<option value=""><?= __("All"); ?></option>
<option value="Y"><?= __("Yes"); ?></option>
<option value="N"><?= __("No"); ?></option>
<option value="I"><?= __("Invalid (Ignore)"); ?></option>
</select>
</div>
<div <?php if (($options->qsl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="qslvia"><?= __("QSL via"); ?></label>
<input onclick="this.select()" type="search" name="qslvia" class="form-control form-control-sm" value="*" placeholder="<?= __("Empty"); ?>">
</div>
<div <?php if (($options->qsl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="qslimages"><?= __("QSL Images"); ?></label>
<select class="form-select form-select-sm" id="qslimages" name="qslimages">
<option value="">-</option>
<option value="Y"><?= __("Yes"); ?></option>
<option value="N"><?= __("No"); ?></option>
</select>
</div>
</div>
</div>
<?php if(clubaccess_check(9)) { ?>
<div class="actionbody collapse">
<script>
var lang_filter_actions_delete_warning = '<?= __("Warning! Are you sure you want to delete the marked QSO(s)?"); ?>';
var lang_filter_actions_delete_warning_details = '<?= __(" QSO(s) will be deleted"); ?>';
</script>
<div class="mb-2 btn-group">
<span class="h6 me-1"><?= __("With selected: "); ?></span>
<button type="button" class="btn btn-sm btn-primary me-1" id="btnUpdateFromCallbook"><?= __("Update from Callbook"); ?></button>
<button type="button" class="btn btn-sm btn-primary me-1" id="queueBureau"><?= __("Queue Bureau"); ?></button>
<button type="button" class="btn btn-sm btn-primary me-1" id="queueDirect"><?= __("Queue Direct"); ?></button>
<button type="button" class="btn btn-sm btn-primary me-1" id="queueElectronic"><?= __("Queue Electronic"); ?></button>
<button type="button" class="btn btn-sm btn-success me-1" id="sentBureau"><?= __("Sent (Bureau)"); ?></button>
<button type="button" class="btn btn-sm btn-success me-1" id="sentDirect"><?= __("Sent (Direct)"); ?></button>
<button type="button" class="btn btn-sm btn-success me-1" id="sentElectronic"><?= __("Sent (Electronic)"); ?></button>
<button type="button" class="btn btn-sm btn-danger me-1" id="dontSend"><?= __("Not Sent"); ?></button>
<button type="button" class="btn btn-sm btn-danger me-1" id="notRequired"><?= __("QSL Not Required"); ?></button>
<button type="button" class="btn btn-sm btn-danger me-1" id="notReceived"><?= __("Not Received"); ?></button>
<button type="button" class="btn btn-sm btn-warning me-1" id="receivedBureau"><?= __("Received (Bureau)"); ?></button>
<button type="button" class="btn btn-sm btn-warning me-1" id="receivedDirect"><?= __("Received (Direct)"); ?></button>
<button type="button" class="btn btn-sm btn-warning me-1" id="receivedElectronic"><?= __("Received (Electronic)"); ?></button>
<button type="button" class="btn btn-sm btn-info me-1" id="exportAdif"><?= __("Create ADIF"); ?></button>
<button type="button" class="btn btn-sm btn-info me-1" id="printLabel"><?= __("Print Label"); ?></button>
<button type="button" class="btn btn-sm btn-info me-1" id="qslSlideshow"><?= __("QSL Slideshow"); ?></button>
<button type="button" class="btn btn-sm btn-success me-1" id="fixCqZones"><?= __("Fix CQ Zones"); ?></button>
<button type="button" class="btn btn-sm btn-success me-1" id="fixItuZones"><?= __("Fix ITU Zones"); ?></button>
</div>
</div>
<?php } ?>
<div class="quickfilterbody collapse">
<div class="mb-2 btn-group">
<span class="h6 me-1"><?= __("Quicksearch with selected: "); ?></span>
<?php if (($options->datetime->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary me-1" id="searchDate"><?= __("Search Date"); ?></button><?php
} ?>
<?php if (($options->dx->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary me-1" id="searchCallsign"><?= __("Search Callsign"); ?></button><?php
} ?>
<?php if (($options->dxcc->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary me-1" id="searchDxcc"><?= __("Search DXCC"); ?></button><?php
} ?>
<?php if (($options->state->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary me-1" id="searchState"><?= __("Search State"); ?></button><?php
} ?>
<?php if (($options->gridsquare->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary me-1" id="searchGridsquare"><?= __("Search Gridsquare"); ?></button><?php
} ?>
<?php if (($options->cqzone->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary me-1" id="searchCqZone"><?= __("Search CQ Zone"); ?></button><?php
} ?>
<?php if (($options->ituzone->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary me-1" id="searchItuZone"><?= __("Search ITU Zone"); ?></button><?php
} ?>
<?php if (($options->mode->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary me-1" id="searchMode"><?= __("Search Mode"); ?></button><?php
} ?>
<?php if (($options->band->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary me-1" id="searchBand"><?= __("Search Band"); ?></button><?php
} ?>
<?php if (($options->iota->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary me-1" id="searchIota"><?= __("Search IOTA"); ?></button><?php
} ?>
<?php if (($options->sota->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary me-1" id="searchSota"><?= __("Search SOTA"); ?></button><?php
} ?>
<?php if (($options->pota->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary me-1" id="searchPota"><?= __("Search POTA"); ?></button><?php
} ?>
<?php if (($options->wwff->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary me-1" id="searchWwff"><?= __("Search WWFF"); ?></button><?php
} ?>
<?php if (($options->operator->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary me-1" id="searchOperator"><?= __("Search Operator"); ?></button><?php
} ?>
</div>
</div>
<div class="row pt-2">
<div class="d-flex flex-wrap btn-group w-auto mx-auto">
<button type="button" class="btn btn-sm btn-primary me-1 mb-2 lba_buttons flex-grow-0" data-bs-toggle="collapse" data-bs-target=".quickfilterbody" style="white-space: nowrap;">
<i class="fas fa-filter"></i> <?= __("Quickfilters"); ?>
</button>
<button type="button" class="btn btn-sm btn-primary me-1 lba_buttons flex-grow-0 mb-2" data-bs-toggle="collapse" data-bs-target=".qslfilterbody" style="white-space: nowrap;">
<i class="fas fa-filter"></i> <?= __("QSL Filters"); ?>
</button>
<button type="button" class="btn btn-sm btn-primary me-1 lba_buttons flex-grow-0 mb-2" data-bs-toggle="collapse" data-bs-target=".filterbody" style="white-space: nowrap;">
<i class="fas fa-filter"></i> <?= __("Filters"); ?>
</button>
<!-- Main Filters Dropdown -->
<div class="dropdown d-inline-block" data-bs-auto-close="outside">
<button class="btn btn-sm btn-primary dropdown-toggle me-1" type="button" id="filterDropdown" data-bs-toggle="dropdown" aria-expanded="false">
<i class="fas fa-filter"></i> <?= __("Filters"); ?>
</button>
<div class="dropdown-menu dropdown-menu-start p-3 mt-2" aria-labelledby="filterDropdown" style="min-width: 900px; max-height: 600px; overflow-y: auto;">
<div class="card-body filterbody">
<div class="row">
<div <?php if (($options->datetime->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="dateFrom"><?= __("From") . ": " ?></label>
<input name="dateFrom" id="dateFrom" type="date" class="form-control form-control-sm w-auto border border-secondary">
</div>
<div <?php if (($options->datetime->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="dateTo"><?= __("To") . ": " ?></label>
<input name="dateTo" id="dateTo" type="date" class="form-control form-control-sm w-auto border border-secondary">
</div>
<div <?php if (($options->dx->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="dx"><?= __("Dx"); ?></label>
<input onclick="this.select()" type="text" name="dx" id="dx" class="form-control form-control-sm border border-secondary" value="*" placeholder="<?= __("Empty"); ?>">
</div>
<div <?php if (($options->dxcc->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="dxcc"><?= __("DXCC"); ?></label>
<select class="form-select form-select-sm border border-secondary" id="dxcc" name="dxcc">
<option value="">-</option>
<?php
foreach ($dxccarray as $dxcc) {
if ($dxcc->adif == '0') {
echo '<option value='.$dxcc->adif.'>';
echo $dxcc->name;
echo '</option>';
} else {
echo '<option value=' . $dxcc->adif;
echo '>' . $dxcc->prefix . ' - ' . ucwords(strtolower($dxcc->name), "- (/");
if ($dxcc->Enddate != null) {
echo ' - (' . __("Deleted DXCC") . ')';
}
}
}
?>
</select>
</div>
<div <?php if (($options->state->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="state"><?= __("State"); ?></label>
<input onclick="this.select()" type="text" name="state" id="state" class="form-control form-control-sm border border-secondary" value="*" placeholder="<?= __("Empty"); ?>">
</div>
</div>
<div class="row">
<div <?php if (($options->gridsquare->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="gridsquare"><?= __("Gridsquare"); ?></label>
<input onclick="this.select()" type="text" name="gridsquare" id="gridsquare" class="form-control form-control-sm border border-secondary" value="*" placeholder="<?= __("Empty"); ?>">
</div>
<div <?php if (($options->mode->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="mode"><?= __("Mode"); ?></label>
<select id="mode" name="mode" class="form-select form-select-sm border border-secondary">
<option value=""><?= __("All"); ?></option>
<?php
foreach ($modes as $modeId => $mode) {
?><option value="<?php echo htmlspecialchars($mode ?? ''); ?>"><?php echo htmlspecialchars($mode ?? ''); ?></option><?php
}
?>
</select>
</div>
<div <?php if (($options->band->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="band"><?= __("Band"); ?></label>
<select id="band" name="band" class="form-select form-select-sm border border-secondary">
<option value=""><?= __("All"); ?></option>
<?php
foreach ($bands as $band) {
?><option value="<?php echo htmlentities($band ?? ''); ?>"><?php echo htmlspecialchars($band ?? ''); ?></option><?php
}
?>
</select>
</div>
<div hidden class="sats_dropdown mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label class="form-label" for="sats"><?= __("Satellite"); ?></label>
<select class="form-select form-select-sm border border-secondary" id="sats" name="sats">
<option value="All"><?= __("All"); ?></option>
<?php foreach ($sats as $sat) {
echo '<option value="' . htmlentities($sat) . '"' . '>' . htmlentities($sat) . '</option>' . "\n";
} ?>
</select>
</div>
<div hidden class="orbits_dropdown mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label class="form-label" for="orbits"><?= __("Orbit"); ?></label>
<select class="form-select form-select-sm border border-secondary" id="orbits" name="orbits">
<option value="All"><?= __("All"); ?></option>
<?php foreach ($orbits as $orbit) {
echo '<option value="' . htmlentities($orbit) . '"' . '>' . htmlentities($orbit) . '</option>' . "\n";
} ?>
</select>
</div>
<div <?php if (($options->propagation->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="selectPropagation"><?= __("Propagation"); ?></label>
<select id="selectPropagation" class="form-select form-select-sm border border-secondary" name="propmode">
<option value=""><?= __("All"); ?></option>
<option value="None"><?= _pgettext("Propagation Mode", "None/Empty"); ?></option>
<option value="AS"><?= _pgettext("Propagation Mode", "Aircraft Scatter"); ?></option>
<option value="AUR"><?= _pgettext("Propagation Mode", "Aurora"); ?></option>
<option value="AUE"><?= _pgettext("Propagation Mode", "Aurora-E"); ?></option>
<option value="BS"><?= _pgettext("Propagation Mode", "Back scatter"); ?></option>
<option value="ECH"><?= _pgettext("Propagation Mode", "EchoLink"); ?></option>
<option value="EME"><?= _pgettext("Propagation Mode", "Earth-Moon-Earth"); ?></option>
<option value="ES"><?= _pgettext("Propagation Mode", "Sporadic E"); ?></option>
<option value="FAI"><?= _pgettext("Propagation Mode", "Field Aligned Irregularities"); ?></option>
<option value="F2"><?= _pgettext("Propagation Mode", "F2 Reflection"); ?></option>
<option value="INTERNET"><?= _pgettext("Propagation Mode", "Internet-assisted"); ?></option>
<option value="ION"><?= _pgettext("Propagation Mode", "Ionoscatter"); ?></option>
<option value="IRL"><?= _pgettext("Propagation Mode", "IRLP"); ?></option>
<option value="MS"><?= _pgettext("Propagation Mode", "Meteor scatter"); ?></option>
<option value="RPT"><?= _pgettext("Propagation Mode", "Terrestrial or atmospheric repeater or transponder"); ?></option>
<option value="RS"><?= _pgettext("Propagation Mode", "Rain scatter"); ?></option>
<option value="SAT"><?= _pgettext("Propagation Mode", "Satellite"); ?></option>
<option value="TEP"><?= _pgettext("Propagation Mode", "Trans-equatorial"); ?></option>
<option value="TR"><?= _pgettext("Propagation Mode", "Tropospheric ducting"); ?></option>
</select>
</div>
<div <?php if (($options->cqzone->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="cqzone"><?= __("CQ Zone"); ?></label>
<select id="cqzone" name="cqzone" class="form-select form-select-sm border border-secondary">
<option value="All"><?= __("All"); ?></option>
<option value=""><?= __("Empty"); ?></option>
<?php
for ($i = 1; $i <= 40; $i++) {
echo '<option value="' . $i . '">' . $i . '</option>';
}
?>
</select>
</div>
</div>
<div class="row">
<div <?php if (($options->ituzone->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="ituzone"><?= __("ITU Zone"); ?></label>
<select id="ituzone" name="ituzone" class="form-select form-select-sm border border-secondary">
<option value="All"><?= __("All"); ?></option>
<option value=""><?= __("Empty"); ?></option>
<?php
for ($i = 1; $i <= 90; $i++) {
echo '<option value="' . $i . '">' . $i . '</option>';
}
?>
</select>
</div>
<div <?php if (($options->county->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="county"><?= __("County"); ?></label>
<input onclick="this.select()" type="text" name="county" id="county" class="form-control form-control-sm border border-secondary" value="*" placeholder="<?= __("Empty"); ?>">
</div>
<div <?php if (($options->dok->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="dok"><?= __("DOK"); ?></label>
<input onclick="this.select()" type="text" name="dok" id="dok" class="form-control form-control-sm border border-secondary" value="*" placeholder="<?= __("Empty"); ?>">
</div>
<div <?php if (($options->sota->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="sota"><?= __("SOTA"); ?></label>
<input onclick="this.select()" type="text" name="sota" id="sota" class="form-control form-control-sm border border-secondary" value="*" placeholder="<?= __("Empty"); ?>">
</div>
<div <?php if (($options->pota->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="pota"><?= __("POTA"); ?></label>
<input onclick="this.select()" type="text" name="pota" id="pota" class="form-control form-control-sm border border-secondary" value="*" placeholder="<?= __("Empty"); ?>">
</div>
</div>
<div class="row">
<div <?php if (($options->iota->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="iota"><?= __("IOTA"); ?></label>
<select class="form-select form-select-sm border border-secondary" id="iota" name="iota">
<option value="">-</option>
<?php
foreach ($iotaarray as $iota) {
echo '<option value=' . $iota->tag;
echo '>' . $iota->tag . ' - ' . $iota->name . '</option>';
}
?>
</select>
</div>
<div <?php if (($options->wwff->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="wwff"><?= __("WWFF"); ?></label>
<input onclick="this.select()" type="text" name="wwff" id="wwff" class="form-control form-control-sm border border-secondary" value="*" placeholder="<?= __("Empty"); ?>">
</div>
<div <?php if (($options->operator->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="operator"><?= __("Operator"); ?></label>
<input onclick="this.select()" type="text" name="operator" id="operator" class="form-control form-control-sm border border-secondary" value="*" placeholder="<?= __("Empty"); ?>">
</div>
<div <?php if (($options->contest->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="contest"><?= __("Contest"); ?></label>
<input onclick="this.select()" type="text" name="contest" id="contest" class="form-control form-control-sm border border-secondary" value="*" placeholder="<?= __("Empty"); ?>">
</div>
<div <?php if (($options->continent->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="continent"><?= __("Continent"); ?></label>
<select id="continent" name="continent" class="form-select form-select-sm border border-secondary">
<option value=""><?= __("All"); ?></option>
<option value="blank"><?= __("None/Empty"); ?></option>
<option value="af"><?= __("Africa"); ?></option>
<option value="an"><?= __("Antarctica"); ?></option>
<option value="na"><?= __("North America"); ?></option>
<option value="as"><?= __("Asia"); ?></option>
<option value="eu"><?= __("Europe"); ?></option>
<option value="sa"><?= __("South America"); ?></option>
<option value="oc"><?= __("Oceania"); ?></option>
<option value="invalid"><?= __("Invalid"); ?></option>
</select>
</div>
</div>
<div class="row">
<div <?php if (($options->comment->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="comment"><?= __("Comment"); ?></label>
<input onclick="this.select()" type="text" name="comment" id="comment" class="form-control form-control-sm border border-secondary" value="*" placeholder="<?= __("Empty"); ?>">
</div>
</div>
</div>
</div>
</div>
<!-- QSL Filters Dropdown -->
<div class="dropdown d-inline-block" data-bs-auto-close="outside">
<button class="btn btn-sm btn-primary dropdown-toggle me-1" type="button" id="qslFilterDropdown" data-bs-toggle="dropdown" aria-expanded="false">
<i class="fas fa-filter"></i> <?= __("QSL Filters"); ?>
</button>
<div class="dropdown-menu dropdown-menu-start p-3 mt-2" aria-labelledby="qslFilterDropdown" style="min-width: 900px; max-height: 600px; overflow-y: auto;">
<div class="card-body qslfilterbody">
<div class="row">
<div <?php if (($options->qsl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="qslSent"><?= __("QSL sent"); ?></label>
<select id="qslSent" name="qslSent" class="form-select form-select-sm border border-secondary">
<option value=""><?= __("All"); ?></option>
<option value="Y"><?= __("Yes"); ?></option>
<option value="N"><?= __("No"); ?></option>
<option value="R"><?= __("Requested"); ?></option>
<option value="Q"><?= __("Queued"); ?></option>
<option value="I"><?= __("Invalid (Ignore)"); ?></option>
</select>
</div>
<div <?php if (($options->qsl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="qslReceived"><?= __("QSL received"); ?></label>
<select id="qslReceived" name="qslReceived" class="form-select form-select-sm border border-secondary">
<option value=""><?= __("All"); ?></option>
<option value="Y"><?= __("Yes"); ?></option>
<option value="N"><?= __("No"); ?></option>
<option value="R"><?= __("Requested"); ?></option>
<option value="I"><?= __("Invalid (Ignore)"); ?></option>
<option value="V"><?= __("Verified"); ?></option>
</select>
</div>
<div <?php if (($options->qsl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="qslSentMethod"><?= __("QSL send. method"); ?></label>
<select id="qslSentMethod" name="qslSentMethod" class="form-select form-select-sm border border-secondary">
<option value=""><?= __("All"); ?></option>
<option value="B"><?= __("Bureau"); ?></option>
<option value="D"><?= __("Direct"); ?></option>
<option value="E"><?= __("Electronic"); ?></option>
<option value="M"><?= __("Manager"); ?></option>
</select>
</div>
<div <?php if (($options->qsl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="qslReceivedMethod"><?= __("QSL recv. method"); ?></label>
<select id="qslReceivedMethod" name="qslReceivedMethod" class="form-select form-select-sm border border-secondary">
<option value=""><?= __("All"); ?></option>
<option value="B"><?= __("Bureau"); ?></option>
<option value="D"><?= __("Direct"); ?></option>
<option value="E"><?= __("Electronic"); ?></option>
<option value="M"><?= __("Manager"); ?></option>
</select>
</div>
</div>
<div class="row">
<div <?php if (($options->lotw->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="lotwSent"><?= __("LoTW sent"); ?></label>
<select id="lotwSent" name="lotwSent" class="form-select form-select-sm border border-secondary">
<option value=""><?= __("All"); ?></option>
<option value="Y"><?= __("Yes"); ?></option>
<option value="N"><?= __("No"); ?></option>
<option value="R"><?= __("Requested"); ?></option>
<option value="Q"><?= __("Queued"); ?></option>
<option value="I"><?= __("Invalid (Ignore)"); ?></option>
</select>
</div>
<div <?php if (($options->lotw->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="lotwReceived"><?= __("LoTW received"); ?></label>
<select id="lotwReceived" name="lotwReceived" class="form-select form-select-sm border border-secondary">
<option value=""><?= __("All"); ?></option>
<option value="Y"><?= __("Yes"); ?></option>
<option value="N"><?= __("No"); ?></option>
<option value="R"><?= __("Requested"); ?></option>
<option value="I"><?= __("Invalid (Ignore)"); ?></option>
<option value="V"><?= __("Verified"); ?></option>
</select>
</div>
<div <?php if (($options->clublog->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="clublogSent"><?= __("Clublog sent"); ?></label>
<select id="clublogSent" name="clublogSent" class="form-select form-select-sm border border-secondary">
<option value=""><?= __("All"); ?></option>
<option value="Y"><?= __("Yes"); ?></option>
<option value="N"><?= __("No"); ?></option>
<option value="R"><?= __("Requested"); ?></option>
<option value="Q"><?= __("Queued"); ?></option>
<option value="I"><?= __("Invalid (Ignore)"); ?></option>
</select>
</div>
<div <?php if (($options->clublog->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="clublogReceived"><?= __("Clublog received"); ?></label>
<select id="clublogReceived" name="clublogReceived" class="form-select form-select-sm border border-secondary">
<option value=""><?= __("All"); ?></option>
<option value="Y"><?= __("Yes"); ?></option>
<option value="N"><?= __("No"); ?></option>
<option value="R"><?= __("Requested"); ?></option>
<option value="I"><?= __("Invalid (Ignore)"); ?></option>
<option value="V"><?= __("Verified"); ?></option>
</select>
</div>
</div>
<div class="row">
<div <?php if (($options->eqsl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="eqslSent"><?= __("eQSL sent"); ?></label>
<select id="eqslSent" name="eqslSent" class="form-select form-select-sm border border-secondary">
<option value=""><?= __("All"); ?></option>
<option value="Y"><?= __("Yes"); ?></option>
<option value="N"><?= __("No"); ?></option>
<option value="R"><?= __("Requested"); ?></option>
<option value="Q"><?= __("Queued"); ?></option>
<option value="I"><?= __("Invalid (Ignore)"); ?></option>
</select>
</div>
<div <?php if (($options->eqsl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="eqslReceived"><?= __("eQSL received"); ?></label>
<select id="eqslReceived" name="eqslReceived" class="form-select form-select-sm border border-secondary">
<option value=""><?= __("All"); ?></option>
<option value="Y"><?= __("Yes"); ?></option>
<option value="N"><?= __("No"); ?></option>
<option value="R"><?= __("Requested"); ?></option>
<option value="I"><?= __("Invalid (Ignore)"); ?></option>
<option value="V"><?= __("Verified"); ?></option>
</select>
</div>
<div <?php if (($options->dcl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="dclSent"><?= __("DCL sent"); ?></label>
<select id="dclSent" name="dclSent" class="form-select form-select-sm border border-secondary">
<option value=""><?= __("All"); ?></option>
<option value="Y"><?= __("Yes"); ?></option>
<option value="N"><?= __("No"); ?></option>
<option value="I"><?= __("Invalid (Ignore)"); ?></option>
</select>
</div>
<div <?php if (($options->dcl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="dclReceived"><?= __("DCL received"); ?></label>
<select id="dclReceived" name="dclReceived" class="form-select form-select-sm border border-secondary">
<option value=""><?= __("All"); ?></option>
<option value="Y"><?= __("Yes"); ?></option>
<option value="N"><?= __("No"); ?></option>
<option value="I"><?= __("Invalid (Ignore)"); ?></option>
</select>
</div>
</div>
<div class="row">
<div <?php if (($options->qsl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="qslvia"><?= __("QSL via"); ?></label>
<input onclick="this.select()" type="search" name="qslvia" class="form-control form-control-sm border border-secondary" value="*" placeholder="<?= __("Empty"); ?>">
</div>
<div <?php if (($options->qsl->show ?? "true") == "false") { echo 'style="display:none"'; } ?> class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="qslimages"><?= __("QSL Images"); ?></label>
<select class="form-select form-select-sm border border-secondary" id="qslimages" name="qslimages">
<option value="">-</option>
<option value="Y"><?= __("Yes"); ?></option>
<option value="N"><?= __("No"); ?></option>
</select>
</div>
</div>
</div>
</div>
</div>
<!-- Quickfilters Dropdown -->
<div class="dropdown d-inline-block" data-bs-auto-close="outside">
<button class="btn btn-sm btn-primary dropdown-toggle me-1" type="button" id="quickfilterDropdown" data-bs-toggle="dropdown" aria-expanded="false">
<i class="fas fa-filter"></i> <?= __("Quickfilters"); ?>
</button>
<div class="dropdown-menu dropdown-menu-start" aria-labelledby="quickfilterDropdown" style="min-width: 300px;">
<div class="card">
<div class="card-header p-2">
<span class="h6 w-100 mt-0 mb-0"><?= __("Quicksearch with selected: "); ?></span>
</div>
<div class="card-body p-2">
<div class="d-grid gap-2">
<?php if (($options->datetime->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary dropdown-action" id="searchDate"><?= __("Search Date"); ?></button>
<?php } ?>
<?php if (($options->dx->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary dropdown-action" id="searchCallsign"><?= __("Search Callsign"); ?></button>
<?php } ?>
<?php if (($options->dxcc->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary dropdown-action" id="searchDxcc"><?= __("Search DXCC"); ?></button>
<?php } ?>
<?php if (($options->state->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary dropdown-action" id="searchState"><?= __("Search State"); ?></button>
<?php } ?>
<?php if (($options->gridsquare->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary dropdown-action" id="searchGridsquare"><?= __("Search Gridsquare"); ?></button>
<?php } ?>
<?php if (($options->cqzone->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary dropdown-action" id="searchCqZone"><?= __("Search CQ Zone"); ?></button>
<?php } ?>
<?php if (($options->ituzone->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary dropdown-action" id="searchItuZone"><?= __("Search ITU Zone"); ?></button>
<?php } ?>
<?php if (($options->mode->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary dropdown-action" id="searchMode"><?= __("Search Mode"); ?></button>
<?php } ?>
<?php if (($options->band->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary dropdown-action" id="searchBand"><?= __("Search Band"); ?></button>
<?php } ?>
<?php if (($options->iota->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary dropdown-action" id="searchIota"><?= __("Search IOTA"); ?></button>
<?php } ?>
<?php if (($options->sota->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary dropdown-action" id="searchSota"><?= __("Search SOTA"); ?></button>
<?php } ?>
<?php if (($options->pota->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary dropdown-action" id="searchPota"><?= __("Search POTA"); ?></button>
<?php } ?>
<?php if (($options->wwff->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary dropdown-action" id="searchWwff"><?= __("Search WWFF"); ?></button>
<?php } ?>
<?php if (($options->operator->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary dropdown-action" id="searchOperator"><?= __("Search Operator"); ?></button>
<?php } ?>
</div>
</div>
</div>
</div>
</div>
<!-- End of Main Filters Dropdown -->
<?php if(clubaccess_check(9)) { ?>
<button type="button" class="btn btn-sm btn-success lba_buttons me-1 flex-grow-0 mb-2" data-bs-toggle="collapse" data-bs-target=".actionbody" style="white-space: nowrap;">
<i class="fas fa-tasks"></i> <?= __("Actions"); ?>
</button>
<!-- Actions Dropdown -->
<div class="dropdown d-inline-block" data-bs-auto-close="outside">
<button class="btn btn-sm btn-success dropdown-toggle me-1" type="button" id="actionsDropdown" data-bs-toggle="dropdown" aria-expanded="false">
<i class="fas fa-tasks"></i> <?= __("Actions"); ?>
</button>
<div class="dropdown-menu dropdown-menu-start" aria-labelledby="actionsDropdown" style="min-width: 300px;">
<script>
var lang_filter_actions_delete_warning = '<?= __("Warning! Are you sure you want to delete the marked QSO(s)?"); ?>';
var lang_filter_actions_delete_warning_details = '<?= __(" QSO(s) will be deleted"); ?>';
</script>
<div class="card">
<div class="card-header p-2">
<span class="h6 w-100 mt-0 mb-0"><?= __("With selected: "); ?></span>
</div>
<div class="card-body p-2">
<div class="d-grid gap-2">
<button type="button" class="btn btn-sm btn-primary dropdown-action" id="btnUpdateFromCallbook"><?= __("Update from Callbook"); ?></button>
<button type="button" class="btn btn-sm btn-primary dropdown-action" id="queueBureau"><?= __("Queue Bureau"); ?></button>
<button type="button" class="btn btn-sm btn-primary dropdown-action" id="queueDirect"><?= __("Queue Direct"); ?></button>
<button type="button" class="btn btn-sm btn-primary dropdown-action" id="queueElectronic"><?= __("Queue Electronic"); ?></button>
<button type="button" class="btn btn-sm btn-success dropdown-action" id="sentBureau"><?= __("Sent (Bureau)"); ?></button>
<button type="button" class="btn btn-sm btn-success dropdown-action" id="sentDirect"><?= __("Sent (Direct)"); ?></button>
<button type="button" class="btn btn-sm btn-success dropdown-action" id="sentElectronic"><?= __("Sent (Electronic)"); ?></button>
<button type="button" class="btn btn-sm btn-danger dropdown-action" id="dontSend"><?= __("Not Sent"); ?></button>
<button type="button" class="btn btn-sm btn-danger dropdown-action" id="notRequired"><?= __("QSL Not Required"); ?></button>
<button type="button" class="btn btn-sm btn-danger dropdown-action" id="notReceived"><?= __("Not Received"); ?></button>
<button type="button" class="btn btn-sm btn-warning dropdown-action" id="receivedBureau"><?= __("Received (Bureau)"); ?></button>
<button type="button" class="btn btn-sm btn-warning dropdown-action" id="receivedDirect"><?= __("Received (Direct)"); ?></button>
<button type="button" class="btn btn-sm btn-warning dropdown-action" id="receivedElectronic"><?= __("Received (Electronic)"); ?></button>
<button type="button" class="btn btn-sm btn-info dropdown-action" id="exportAdif"><?= __("Create ADIF"); ?></button>
<button type="button" class="btn btn-sm btn-info dropdown-action" id="printLabel"><?= __("Print Label"); ?></button>
<button type="button" class="btn btn-sm btn-info dropdown-action" id="qslSlideshow"><?= __("QSL Slideshow"); ?></button>
<button type="button" class="btn btn-sm btn-success dropdown-action" id="fixCqZones"><?= __("Fix CQ Zones"); ?></button>
<button type="button" class="btn btn-sm btn-success dropdown-action" id="fixItuZones"><?= __("Fix ITU Zones"); ?></button>
</div>
</div>
</div>
</div>
</div>
<?php } ?>
<label for="qsoResults" class="me-2" style="white-space: nowrap;"><?= __("# Results"); ?></label>
<select id="qsoResults" name="qsoresults" class="form-select form-select-sm me-2 w-auto">
<select id="qsoResults" name="qsoresults" class="form-select form-select-sm w-auto me-2" style="height: calc(1.5em + .5rem + 2px) !important;">
<option value="250">250</option>
<option value="1000">1000</option>
<option value="2500">2500</option>

View File

@@ -31,10 +31,24 @@
background-color: #d4edda !important;
}
.qso_call {
float: left;
width: 190px;
}
.qso_icons {
float: right;
}
#qsoList_wrapper th {
text-align: left !important;
white-space: nowrap;
}
#qsoList_wrapper td {
text-align: left !important;
white-space: nowrap;
}
TD.qrz {
white-space: nowrap;
}
@@ -95,4 +109,18 @@ path.grid-confirmed {
path.grid-worked {
fill: rgba(172, 40, 40, 0.7) !important;
stroke: rgba(248, 96, 129, 0.7) !important;
}
::-webkit-scrollbar {
width: 12px;
}
::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
border-radius: 10px;
}
::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.5);
}

View File

@@ -84,13 +84,22 @@
height: 400px !important;
}
.qso_call {
float: left;
width: 190px;
}
.qso_icons {
float: right;
}
#qsoList_wrapper th {
text-align: left !important;
white-space: nowrap;
}
#qsoList_wrapper td {
text-align: left !important;
white-space: pre-wrap;
white-space: nowrap;
}
TD.qrz {

View File

@@ -176,7 +176,7 @@ path.grid-worked {
.qso_call {
float: left;
width: 140px;
width: 190px;
}
.qso_icons {
@@ -328,4 +328,18 @@ svg text.month {
margin-left: -5px;
position: absolute;
width: 0;
}
::-webkit-scrollbar {
width: 12px;
}
::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(196, 196, 196, 0.185);
border-radius: 10px;
}
::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: inset 0 0 6px rgba(255, 255, 255, 0.5);
}

View File

@@ -176,7 +176,7 @@ path.grid-worked {
.qso_call {
float: left;
width: 140px;
width: 190px;
}
.qso_icons {
@@ -189,7 +189,7 @@ path.grid-worked {
}
#qsoList_wrapper td {
text-align: left !important;
white-space: pre-wrap;
white-space: nowrap;
}
@media (min-width: 1500px) {

View File

@@ -192,7 +192,7 @@ div.alert-danger {
.qso_call {
float: left;
width: 140px;
width: 190px;
}
.qso_icons {
@@ -343,3 +343,16 @@ svg text.month {
width: 0;
}
::-webkit-scrollbar {
width: 12px;
}
::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(196, 196, 196, 0.185);
border-radius: 10px;
}
::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: inset 0 0 6px rgba(255, 255, 255, 0.5);
}

View File

@@ -192,7 +192,7 @@ div.alert-danger {
.qso_call {
float: left;
width: 140px;
width: 180px;
}
.qso_icons {
@@ -205,7 +205,7 @@ div.alert-danger {
}
#qsoList_wrapper td {
text-align: left !important;
white-space: pre-wrap;
white-space: nowrap;
}
@media (min-width: 992px) {

View File

@@ -28,7 +28,7 @@ thead > tr > td {
.qso_call {
float: left;
width: 140px;
width: 190px;
}
.qso_icons {

View File

@@ -28,7 +28,7 @@ thead > tr > td {
.qso_call {
float: left;
width: 140px;
width: 190px;
}
.qso_icons {
@@ -46,7 +46,7 @@ thead > tr > td {
#qsoList_wrapper td {
text-align: left !important;
white-space: pre-wrap;
white-space: nowrap;
}
@media (min-width: 1500px) {

View File

@@ -184,7 +184,7 @@ div.alert-danger {
.qso_call {
float: left;
width: 140px;
width: 180px;
}
.qso_icons {
@@ -340,4 +340,18 @@ svg text.month {
margin-left: -5px;
position: absolute;
width: 0;
}
::-webkit-scrollbar {
width: 12px;
}
::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
border-radius: 10px;
}
::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.5);
}

View File

@@ -221,7 +221,7 @@ div.alert-danger {
.qso_call {
float: left;
width: 140px;
width: 180px;
}
.qso_icons {
@@ -234,7 +234,7 @@ div.alert-danger {
}
#qsoList_wrapper td {
text-align: left !important;
white-space: pre-wrap;
white-space: nowrap;
}
#edit_qso:not(.btn) {

View File

@@ -4,6 +4,24 @@ let inCallbookItemProcessing = false;
let lastChecked = null;
let silentReset = false;
document.addEventListener("DOMContentLoaded", function() {
document.querySelectorAll('.dropdown').forEach(dd => {
dd.addEventListener('hide.bs.dropdown', function (e) {
if (e.clickEvent && e.clickEvent.target.closest('.dropdown-menu')) {
e.preventDefault();
}
});
dd.querySelectorAll('.dropdown-action').forEach(btn => {
btn.addEventListener('click', function() {
const dropdown = bootstrap.Dropdown.getInstance(dd.querySelector('[data-bs-toggle="dropdown"]'));
if (dropdown) dropdown.hide();
});
});
});
});
$('#band').change(function () {
var band = $("#band option:selected").text();
if (band != "SAT") {