mirror of
https://github.com/wavelog/wavelog.git
synced 2026-03-22 10:24:14 +00:00
* feat[clubstations]: New DB structure
* feat[clubstations]: Add clubstationstable in user managment
* feat[clubstations]: Show last operator
* feat[clubstations]: Better solution for last operator. tnx for the hint @int2001
* feat[clubstations]: New Club Model and Controller
* feat[clubstations]: Add "Add User" and "Edit User" functionality
* docs[clubstations]: move comment
* feat[clubstations]: Add "Delete Member" functionality
* feat[clubstations]: some enhancements and javascript
* fix[clubstations]: Wrong message class for flashmessages
* feat[clubstations]: Added Switch in the Header menu (not functional yet)
* feat[clubstations]: clubswitch modal
* fix[clubstations]: Load encryption library if not already loaded
* fix[clubstations]: Prevent direct login attempts to clubstations and enhance impersonation authorization
* fix[clubstations]: Typo
* feat[clubstations]: Only show the operator dialog if there is something fishy
* fix[user]: little UI bug
* feat[impersonate]: Add source uid to session data
* fix[impersonate]: logic adjustment
* feat[clubstations]: Add manage button in header menu for club officers
* fix[clubstations]: typo in permission level check
* fix[clubstations]: Full rights for the admin
* feat[impersonate]: Custom sessiondata
* feat[impersonate]: Implement stop impersonation feature with modal confirmation; "the way back"
* fix(modal): Fix bug where modal was hidden when mouse leaved the browser content
* docs(config): Adjust config description for special callsigns and clubstations
* feat(club): Add club access check helper
* typo
* fix[impersonation]: Better text
* feat(club): Selectize for a efficient user search
* feat(clubstations): Restrict clubstations based on users permission level part 1/x
* adjustments for dev merge
* Adjusted club right for the advanced logbook
* feat[user]: Refactoring of the Action Buttons in the user table
* fix[club_permissions]: normal button instead small one for club permissions
* remove unnecessary line break in modal body
* feat[clubstations]: Add Club Mode badge to the header
* fix[clubstations]: fix maintenance mode
* allow switch back on http
* feat(simplefle): display operator input based on club_access
* small UI adjustments
* small UI adjustments
* moved api page to a index.php file and added support for clubstations
* removed unused stuff
* typo
* radios and api keys
* missed one binding
* fix qso view, even officers do just see their own radios in QSO logging
* omit the need for a relogin to see the changes as an admin
* Omit the need for relogin after club changes in general. It's a question of UX. It's better to accept a little higher DB load (if clubstations are enabled) then the need of an user to relogin. There is some room for improvement by changing user_model->get_by_id() and adding a join there. This can be done later if we see that the load is too high
* If the user is not the creator of the API key, it's likely a clubstation. In this case the callsign of the clubstation can not be the same as the callsign of the user (operator call provided by the user). If this is the case, we need to use the callsign of the creator of the API key
* remove debug messages
* better UI in header
* found a typo
* full access in clubstations for admins (if accessed via admin usertable)
* adjusted text
* adjusted text
* adjust text
* reduce required chars
* bugfix: missing the correct authentication in case the admin was not member of the club. he wasn't able to switch back
* reduce debug messages
* fixed UI bug related to tooltips
* load js in controller
* upps..
* some UI adjustments
* corrected permissions
* if user gets delete we need to remove data in club_permissions and also api keys which were created by this user
* Notify members about new memberships or changes in permission level
* add spinner to save button
* make login/logout process more bulletproof
* remove the relogin cookie after the attempt
* better strategy
* bug where switch back failed if user is no admin
* make api keys more secure
* mask not owned api keys
* removed annoying link
* if a user gets removed from a club we also should delete the corresponding api keys and cat radios
* adjusted wiki link
* Auto creation of logbook and location when new user is created
* store and display locator in uppercase
* same for callsign
* fixed a bug in user/club creation
* Revert "Auto creation of logbook and location when new user is created"
We found another solution to which will be addressed in a second PR
This reverts commit f05f4b7bf0.
* Optimized SQL for stats at userlist
* Source query for lastop "out", because mysql<9.0 can't handle Windowed functions
* adjust migration
* add new columns to users table to get created_at and modified_at
* added a partial down function
* add operator dropdown for clubstations
* fix mig version
* Add some backend restrictions in case a user wants to try something funny with the club
---------
Co-authored-by: Andreas Kristiansen <6977712+AndreasK79@users.noreply.github.com>
Co-authored-by: int2001 <joerg@dj7nt.de>
741 lines
50 KiB
PHP
741 lines
50 KiB
PHP
<script type="text/javascript">
|
|
/*
|
|
* Custom user settings
|
|
*/
|
|
var custom_date_format = "<?php echo $custom_date_format ?>";
|
|
let user_map_custom = JSON.parse('<?php echo $user_map_custom; ?>');
|
|
|
|
var lang_gen_hamradio_latitude = '<?= __("Latitude"); ?>';
|
|
var lang_gen_hamradio_longitude = '<?= __("Longitude"); ?>';
|
|
var lang_gen_hamradio_gridsquare = '<?= __("Gridsquare"); ?>';
|
|
var lang_gen_hamradio_gridsquares = '<?= _pgettext("Map Options", "Gridsquares"); ?>';
|
|
var lang_gen_hamradio_distance = '<?= __("Distance"); ?>';
|
|
var lang_gen_hamradio_bearing = '<?= __("Bearing"); ?>';
|
|
var lang_gen_hamradio_pathlines = '<?= _pgettext("Map Options", "Path lines"); ?>';
|
|
var lang_gen_hamradio_cq_zones = '<?= _pgettext("Map Options", "CQ Zones"); ?>';
|
|
var lang_gen_hamradio_itu_zones = '<?= _pgettext("Map Options", "ITU Zones"); ?>';
|
|
var lang_gen_hamradio_nightshadow = '<?= _pgettext("Map Options", "Night Shadow"); ?>';
|
|
var lang_gen_hamradio_ituzone = '<?= __("ITU Zone"); ?>';
|
|
var lang_gen_hamradio_cqzone = '<?= __("CQ Zone"); ?>';
|
|
<?php
|
|
echo "var homegrid ='" . strtoupper($homegrid[0]) . "';";
|
|
if (!isset($options)) {
|
|
$options = "{
|
|
\"datetime\":{\"show\":\"true\"},
|
|
\"de\":{\"show\":\"true\"},
|
|
\"dx\":{\"show\":\"true\"},
|
|
\"mode\":{\"show\":\"true\"},
|
|
\"rstr\":{\"show\":\"true\"},
|
|
\"rsts\":{\"show\":\"true\"},
|
|
\"band\":{\"show\":\"true\"},
|
|
\"myrefs\":{\"show\":\"true\"},
|
|
\"name\":{\"show\":\"true\"},
|
|
\"qslvia\":{\"show\":\"true\"},
|
|
\"qsl\":{\"show\":\"true\"},
|
|
\"lotw\":{\"show\":\"true\"},
|
|
\"eqsl\":{\"show\":\"true\"},
|
|
\"clublog\":{\"show\":\"true\"},
|
|
\"qslmsg\":{\"show\":\"true\"},
|
|
\"dxcc\":{\"show\":\"true\"},
|
|
\"state\":{\"show\":\"true\"},
|
|
\"cqzone\":{\"show\":\"true\"},
|
|
\"ituzone\":{\"show\":\"true\"},
|
|
\"iota\":{\"show\":\"true\"},
|
|
\"pota\":{\"show\":\"true\"},
|
|
\"operator\":{\"show\":\"true\"},
|
|
\"comment\":{\"show\":\"true\"},
|
|
\"propagation\":{\"show\":\"true\"},
|
|
\"contest\":{\"show\":\"true\"},
|
|
\"gridsquare\":{\"show\":\"true\"},
|
|
\"sota\":{\"show\":\"true\"},
|
|
\"dok\":{\"show\":\"true\"},
|
|
\"wwff\":{\"show\":\"true\"},
|
|
\"sig\":{\"show\":\"true\"},
|
|
\"continent\":{\"show\":\"true\"},
|
|
\"qrz\":{\"show\":\"true\"},
|
|
\"profilename\":{\"show\":\"true\"},
|
|
\"stationpower\":{\"show\":\"true\"},
|
|
\"distance\":{\"show\":\"true\"},
|
|
\"region\":{\"show\":\"true\"}
|
|
}";
|
|
}
|
|
$current_opts = json_decode($options);
|
|
echo "var user_options = $options;";
|
|
if (!isset($current_opts->pota)) {
|
|
echo "\nvar o_template = { pota: {show: 'true'}};";
|
|
echo "\nuser_options={...user_options, ...o_template};";
|
|
}
|
|
if (!isset($current_opts->operator)) {
|
|
echo "\nvar o_template = { operator: {show: 'true'}};";
|
|
echo "\nuser_options={...user_options, ...o_template};";
|
|
}
|
|
if (!isset($current_opts->comment)) {
|
|
echo "\nvar o_template = { comment: {show: 'true'}};";
|
|
echo "\nuser_options={...user_options, ...o_template};";
|
|
}
|
|
if (!isset($current_opts->ituzone)) {
|
|
echo "\nvar o_template = { ituzone: {show: 'true'}};";
|
|
echo "\nuser_options={...user_options, ...o_template};";
|
|
}
|
|
if (!isset($current_opts->propagation)) {
|
|
echo "\nvar o_template = { propagation: {show: 'true'}};";
|
|
echo "\nuser_options={...user_options, ...o_template};";
|
|
}
|
|
if (!isset($current_opts->contest)) {
|
|
echo "\nvar o_template = { contest: {show: 'true'}};";
|
|
echo "\nuser_options={...user_options, ...o_template};";
|
|
}
|
|
if (!isset($current_opts->gridsquare)) {
|
|
echo "\nvar o_template = { gridsquare: {show: 'true'}};";
|
|
echo "\nuser_options={...user_options, ...o_template};";
|
|
}
|
|
if (!isset($current_opts->sota)) {
|
|
echo "\nvar o_template = { sota: {show: 'true'}};";
|
|
echo "\nuser_options={...user_options, ...o_template};";
|
|
}
|
|
if (!isset($current_opts->dok)) {
|
|
echo "\nvar o_template = { dok: {show: 'true'}};";
|
|
echo "\nuser_options={...user_options, ...o_template};";
|
|
}
|
|
if (!isset($current_opts->wwff)) {
|
|
echo "\nvar o_template = { wwff: {show: 'true'}};";
|
|
echo "\nuser_options={...user_options, ...o_template};";
|
|
}
|
|
if (!isset($current_opts->clublog)) {
|
|
echo "\nvar o_template = { clublog: {show: 'true'}};";
|
|
echo "\nuser_options={...user_options, ...o_template};";
|
|
}
|
|
if (!isset($current_opts->sig)) {
|
|
echo "\nvar o_template = { sig: {show: 'true'}};";
|
|
echo "\nuser_options={...user_options, ...o_template};";
|
|
}
|
|
if (!isset($current_opts->continent)) {
|
|
echo "\nvar o_template = { continent: {show: 'true'}};";
|
|
echo "\nuser_options={...user_options, ...o_template};";
|
|
}
|
|
if (!isset($current_opts->qrz)) {
|
|
echo "\nvar o_template = { qrz: {show: 'true'}};";
|
|
echo "\nuser_options={...user_options, ...o_template};";
|
|
}
|
|
if (!isset($current_opts->profilename)) {
|
|
echo "\nvar o_template = { profilename: {show: 'true'}};";
|
|
echo "\nuser_options={...user_options, ...o_template};";
|
|
}
|
|
if (!isset($current_opts->stationpower)) {
|
|
echo "\nvar o_template = { stationpower: {show: 'true'}};";
|
|
echo "\nuser_options={...user_options, ...o_template};";
|
|
}
|
|
if (!isset($current_opts->distance)) {
|
|
echo "\nvar o_template = { distance: {show: 'true'}};";
|
|
echo "\nuser_options={...user_options, ...o_template};";
|
|
}
|
|
if (!isset($current_opts->region)) {
|
|
echo "\nvar o_template = { region: {show: 'true'}};";
|
|
echo "\nuser_options={...user_options, ...o_template};";
|
|
}
|
|
|
|
|
|
foreach ($mapoptions as $mo) {
|
|
if ($mo != null) {
|
|
echo "var " . $mo->option_name . "=" . $mo->option_value . ";";
|
|
}
|
|
}
|
|
?>
|
|
var tileUrl = "<?php echo $this->optionslib->get_option('option_map_tile_server'); ?>"
|
|
</script>
|
|
<style>
|
|
.row>[class*="col-"] {
|
|
padding-right: 5px;
|
|
padding-left: 5px;
|
|
}
|
|
</style>
|
|
<?php
|
|
$options = json_decode($options);
|
|
?>
|
|
<div id="lba_div">
|
|
<div class="container-fluid qso_manager pt-3 ps-4 pe-4">
|
|
<?php if ($this->session->flashdata('message')) { ?>
|
|
<!-- Display Message -->
|
|
<div class="alert-message error">
|
|
<p><?php echo $this->session->flashdata('message'); ?></p>
|
|
</div>
|
|
<?php } ?>
|
|
<div class="row">
|
|
|
|
<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-control form-control-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"); ?></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"); ?></option>
|
|
<?php
|
|
for ($i = 1; $i <= 90; $i++) {
|
|
echo '<option value="' . $i . '">' . $i . '</option>';
|
|
}
|
|
?>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<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>
|
|
</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->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 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)?"); ?>';
|
|
</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>
|
|
</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>
|
|
<?php if(clubaccess_check(9)) { ?>
|
|
<button type="button" class="btn btn-sm btn-success me-1 lba_buttons 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>
|
|
<?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">
|
|
<option value="250">250</option>
|
|
<option value="1000">1000</option>
|
|
<option value="2500">2500</option>
|
|
<option value="5000">5000</option>
|
|
</select>
|
|
<label class="me-2" for="de"><?= __("Location"); ?></label>
|
|
<select class="form-control form-control-sm w-auto me-2" id="de" name="de" multiple="multiple">
|
|
<?php foreach ($station_profile->result() as $station) { ?>
|
|
<option value="<?php echo $station->station_id; ?>" <?php if ($station->station_id == $active_station_id) {
|
|
echo " selected =\"selected\""; } ?>>
|
|
<?= __("Callsign: ") . " " ?>
|
|
<?php echo str_replace("0", "Ø", strtoupper($station->station_callsign)); ?> (<?php echo $station->station_profile_name; ?>)
|
|
</option>
|
|
<?php } ?>
|
|
</select>
|
|
<button type="submit" class="btn btn-sm btn-success me-1 ld-ext-right flex-grow-0 mb-2" aria-label="<?= __("Search"); ?>" id="searchButton" style="white-space: nowrap;" data-bs-toggle="tooltip" data-bs-placement="top" title="<?= __("Search"); ?>">
|
|
<i class="fas fa-search"></i><div class="ld ld-ring ld-spin"></div>
|
|
</button>
|
|
<button type="button" class="btn btn-sm btn-primary me-1 ld-ext-right flex-grow-0 mb-2" id="dupeButton" style="white-space: nowrap;">
|
|
<i class="fa fa-clone"></i> <?= __("Dupes"); ?><div class="ld ld-ring ld-spin"></div>
|
|
</button>
|
|
<button type="button" class="btn btn-sm btn-primary me-1 ld-ext-right flex-grow-0 mb-2" id="invalidButton" style="white-space: nowrap;">
|
|
<i class="fa fa-exclamation-triangle"></i> <?= __("Invalid"); ?><div class="ld ld-ring ld-spin"></div>
|
|
</button>
|
|
<?php if(clubaccess_check(9)) { ?>
|
|
<button type="button" class="btn btn-sm btn-primary me-1 ld-ext-right flex-grow-0 mb-2" id="editButton" style="white-space: nowrap;">
|
|
<i class="fas fa-edit"></i> <?= __("Edit"); ?><div class="ld ld-ring ld-spin"></div>
|
|
</button>
|
|
<?php } ?>
|
|
<div class="btn-group me-1" role="group">
|
|
<button type="button" class="btn btn-sm btn-primary ld-ext-right flex-grow-0 mb-2" id="mapButton" onclick="mapQsos(this.form);" style="white-space: nowrap;">
|
|
<i class="fas fa-globe-europe"></i> <?= __("Map"); ?><div class="ld ld-ring ld-spin"></div>
|
|
</button>
|
|
<button id="btnGroupDrop1" type="button" class="btn btn-sm btn-primary dropdown-toggle flex-grow-0 mb-2" data-bs-toggle="dropdown" aria-expanded="false"></button>
|
|
<ul class="dropdown-menu" aria-labelledby="btnGroupDrop1">
|
|
<li><button type="button" class="dropdown-item" onclick="mapGlobeQsos(this.form);" id="mapGlobeButton"><?= __("Globe map"); ?></button></li>
|
|
</ul>
|
|
</div>
|
|
<?php if(clubaccess_check(9)) { ?>
|
|
<button type="options" class="btn btn-sm btn-primary me-1 flex-grow-0 mb-2" id="optionButton" aria-label="<?= __("Options"); ?>" style="white-space: nowrap;" data-bs-toggle="tooltip" data-bs-placement="top" title="<?= __("Options"); ?>">
|
|
<i class="fas fa-cog"></i>
|
|
</button>
|
|
<button type="button" class="btn btn-sm btn-danger me-1 flex-grow-0 mb-2" id="deleteQsos" style="white-space: nowrap;" aria-label="<?= __("Delete"); ?>" data-bs-toggle="tooltip" data-bs-placement="top" title="<?= __("Delete"); ?>">
|
|
<i class="fas fa-trash-alt"></i>
|
|
</button>
|
|
<?php } ?>
|
|
<button type="reset" class="btn btn-sm btn-danger me-1 flex-grow-0 mb-2" id="resetButton" style="white-space: nowrap;">
|
|
<i class="fas fa-undo"></i> <?= __("Reset"); ?>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
|
|
</form>
|
|
<table style="width:100%" class="table-sm table table-bordered table-hover table-striped table-condensed text-center" id="qsoList">
|
|
<thead>
|
|
<tr>
|
|
<th>
|
|
<div class="form-check" style="margin-top: -1.5em"><input class="form-check-input" type="checkbox" id="checkBoxAll" /></div>
|
|
</th>
|
|
<?php if (($options->datetime->show ?? "true") == "true") {
|
|
echo '<th>' . __("Date/Time") . '</th>';
|
|
} ?>
|
|
<?php if (($options->de->show ?? "true") == "true") {
|
|
echo '<th>' . __("De") . '</th>';
|
|
} ?>
|
|
<?php if (($options->dx->show ?? "true") == "true") {
|
|
echo '<th>' . __("Dx") . '</th>';
|
|
} ?>
|
|
<?php if (($options->mode->show ?? "true") == "true") {
|
|
echo '<th>' . __("Mode") . '</th>';
|
|
} ?>
|
|
<?php if (($options->rsts->show ?? "true") == "true") {
|
|
echo '<th>' . __("RST (S)") . '</th>';
|
|
} ?>
|
|
<?php if (($options->rstr->show ?? "true") == "true") {
|
|
echo '<th>' . __("RST (R)") . '</th>';
|
|
} ?>
|
|
<?php if (($options->band->show ?? "true") == "true") {
|
|
echo '<th>' . __("Band") . '</th>';
|
|
} ?>
|
|
<?php if (($options->gridsquare->show ?? "true") == "true") {
|
|
echo '<th>' . __("Gridsquare") . '</th>';
|
|
} ?>
|
|
<?php if (($options->name->show ?? "true") == "true") {
|
|
echo '<th>' . __("Name") . '</th>';
|
|
} ?>
|
|
<?php if (($options->qslvia->show ?? "true") == "true") {
|
|
echo '<th>' . __("QSL via") . '</th>';
|
|
} ?>
|
|
<?php if (($options->clublog->show ?? "true") == "true") {
|
|
echo '<th class="clublogconfirmation">Clublog</th>';
|
|
} ?>
|
|
<?php if (($options->qsl->show ?? "true") == "true") {
|
|
echo '<th>' . __("QSL") . '</th>';
|
|
} ?>
|
|
<?php if ($this->session->userdata('user_eqsl_name') != "" && ($options->eqsl->show ?? "true") == "true") {
|
|
echo '<th class="eqslconfirmation">eQSL</th>';
|
|
} ?>
|
|
<?php if ($this->session->userdata('user_lotw_name') != "" && ($options->lotw->show ?? "true") == "true") {
|
|
echo '<th class="lotwconfirmation">LoTW</th>';
|
|
} ?>
|
|
<?php if (($options->qrz->show ?? "true") == "true") {
|
|
echo '<th class="qrz">' . __("QRZ") . '</th>';
|
|
} ?>
|
|
<?php if (($options->qslmsg->show ?? "true") == "true") {
|
|
echo '<th>' . __("QSL Msg") . '</th>';
|
|
} ?>
|
|
<?php if (($options->dxcc->show ?? "true") == "true") {
|
|
echo '<th>' . __("DXCC") . '</th>';
|
|
} ?>
|
|
<?php if (($options->state->show ?? "true") == "true") {
|
|
echo '<th>' . __("State") . '</th>';
|
|
} ?>
|
|
<?php if (($options->cqzone->show ?? "true") == "true") {
|
|
echo '<th>' . __("CQ Zone") . '</th>';
|
|
} ?>
|
|
<?php if (($options->ituzone->show ?? "true") == "true") {
|
|
echo '<th>' . __("ITU Zone") . '</th>';
|
|
} ?>
|
|
<?php if (($options->iota->show ?? "true") == "true") {
|
|
echo '<th>' . __("IOTA") . '</th>';
|
|
} ?>
|
|
<?php if (($options->pota->show ?? "true") == "true") {
|
|
echo '<th>' . __("POTA") . '</th>';
|
|
} ?>
|
|
<?php if (($options->sota->show ?? "true") == "true") {
|
|
echo '<th>SOTA</th>';
|
|
} ?>
|
|
<?php if (($options->dok->show ?? "true") == "true") {
|
|
echo '<th>' . __("DOK") . '</th>';
|
|
} ?>
|
|
<?php if (($options->wwff->show ?? "true") == "true") {
|
|
echo '<th>WWFF</th>';
|
|
} ?>
|
|
<?php if (($options->sig->show ?? "true") == "true") {
|
|
echo '<th>SIG</th>';
|
|
} ?>
|
|
<?php if (($options->region->show ?? "true") == "true") {
|
|
echo '<th>' . __("Region") . '</th>';
|
|
} ?>
|
|
<?php if (($options->operator->show ?? "true") == "true") {
|
|
echo '<th>' . __("Operator") . '</th>';
|
|
} ?>
|
|
<?php if (($options->comment->show ?? "true") == "true") {
|
|
echo '<th>' . __("Comment") . '</th>';
|
|
} ?>
|
|
<?php if (($options->propagation->show ?? "true") == "true") {
|
|
echo '<th>' . __("Propagation") . '</th>';
|
|
} ?>
|
|
<?php if (($options->contest->show ?? "true") == "true") {
|
|
echo '<th>' . __("Contest") . '</th>';
|
|
} ?>
|
|
<?php if (($options->myrefs->show ?? "true") == "true") {
|
|
echo '<th>' . __("My Refs") . '</th>';
|
|
} ?>
|
|
<?php if (($options->continent->show ?? "true") == "true") {
|
|
echo '<th>' . __("Continent") . '</th>';
|
|
} ?>
|
|
<?php if (($options->distance->show ?? "true") == "true") {
|
|
echo '<th class="distance-column-sort">' . __("Distance") . '</th>';
|
|
} ?>
|
|
<?php if (($options->profilename->show ?? "true") == "true") {
|
|
echo '<th>' . __("Profile name") . '</th>';
|
|
} ?>
|
|
<?php if (($options->stationpower->show ?? "true") == "true") {
|
|
echo '<th>' . __("Station power") . '</th>';
|
|
} ?>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|