kopia lustrzana https://github.com/magicbug/Cloudlog
132 wiersze
8.8 KiB
PHP
132 wiersze
8.8 KiB
PHP
<div class="container" style="padding-top: 10px;">
|
|
<div class="row">
|
|
<div class="col-sm-12">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h2 class="card-title">Most Worked Callsigns</h2>
|
|
<p class="card-text">Callsigns worked multiple times from your active logbook, showing contact frequency and other details.</p>
|
|
</div>
|
|
<div class="card-body">
|
|
<!-- Filter Form -->
|
|
<form method="post" id="mostworked_filter_form">
|
|
<div class="row mb-3">
|
|
<div class="col-md-2">
|
|
<label for="band" class="form-label">Band:</label>
|
|
<select class="form-select form-select-sm" name="band" id="band">
|
|
<option value="all" <?php echo ($filters['band'] == 'all') ? 'selected' : ''; ?>>All Bands</option>
|
|
<option value="SAT" <?php echo ($filters['band'] == 'SAT') ? 'selected' : ''; ?>>Satellites</option>
|
|
<?php foreach($bands as $band) { ?>
|
|
<option value="<?php echo $band; ?>" <?php echo ($filters['band'] == $band) ? 'selected' : ''; ?>><?php echo $band; ?></option>
|
|
<?php } ?>
|
|
</select>
|
|
</div>
|
|
<div class="col-md-2">
|
|
<label for="mode" class="form-label">Mode:</label>
|
|
<select class="form-select form-select-sm" name="mode" id="mode">
|
|
<option value="all" <?php echo ($filters['mode'] == 'all') ? 'selected' : ''; ?>>All Modes</option>
|
|
<?php foreach($modes as $mode) { ?>
|
|
<option value="<?php echo $mode->mode; ?>" <?php echo ($filters['mode'] == $mode->mode) ? 'selected' : ''; ?>><?php echo $mode->mode; ?></option>
|
|
<?php } ?>
|
|
</select>
|
|
</div>
|
|
<div class="col-md-2">
|
|
<label for="satellite" class="form-label">Satellite:</label>
|
|
<select class="form-select form-select-sm" name="satellite" id="satellite">
|
|
<option value="all" <?php echo ($filters['satellite'] == 'all') ? 'selected' : ''; ?>>All Satellites</option>
|
|
<?php foreach($satellites as $sat) { ?>
|
|
<option value="<?php echo $sat->satellite; ?>" <?php echo ($filters['satellite'] == $sat->satellite) ? 'selected' : ''; ?>><?php echo $sat->satellite; ?></option>
|
|
<?php } ?>
|
|
</select>
|
|
</div>
|
|
<div class="col-md-2">
|
|
<label for="fromdate" class="form-label">From Date:</label>
|
|
<input type="date" class="form-control form-control-sm" name="fromdate" id="fromdate" value="<?php echo $filters['fromdate']; ?>">
|
|
</div>
|
|
<div class="col-md-2">
|
|
<label for="todate" class="form-label">To Date:</label>
|
|
<input type="date" class="form-control form-control-sm" name="todate" id="todate" value="<?php echo $filters['todate']; ?>">
|
|
</div>
|
|
<div class="col-md-2">
|
|
<label for="min_qsos" class="form-label">Min QSOs:</label>
|
|
<select class="form-select form-select-sm" name="min_qsos" id="min_qsos">
|
|
<option value="2" <?php echo ($filters['min_qsos'] == 2) ? 'selected' : ''; ?>>2+</option>
|
|
<option value="3" <?php echo ($filters['min_qsos'] == 3) ? 'selected' : ''; ?>>3+</option>
|
|
<option value="5" <?php echo ($filters['min_qsos'] == 5) ? 'selected' : ''; ?>>5+</option>
|
|
<option value="10" <?php echo ($filters['min_qsos'] == 10) ? 'selected' : ''; ?>>10+</option>
|
|
<option value="20" <?php echo ($filters['min_qsos'] == 20) ? 'selected' : ''; ?>>20+</option>
|
|
<option value="50" <?php echo ($filters['min_qsos'] == 50) ? 'selected' : ''; ?>>50+</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="row mb-3">
|
|
<div class="col-md-12">
|
|
<button type="submit" class="btn btn-primary btn-sm">Apply Filters</button>
|
|
<button type="button" class="btn btn-secondary btn-sm" id="clear_filters">Clear Filters</button>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
|
|
<?php if (empty($mostworked_callsigns)) { ?>
|
|
<div class="alert alert-warning" role="alert">
|
|
<strong>No QSOs found!</strong> Make sure you have an active logbook selected and QSOs logged, or try adjusting your filters.
|
|
</div>
|
|
<?php } else { ?>
|
|
<div class="alert alert-info" role="alert">
|
|
<strong><?php echo count($mostworked_callsigns); ?> callsigns</strong> worked <?php echo $filters['min_qsos']; ?>+ times with current filters.
|
|
</div>
|
|
<div class="table-responsive">
|
|
<table id="mostworked_table" class="table table-striped table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th>Rank</th>
|
|
<th>Callsign</th>
|
|
<th>Contacts</th>
|
|
<th>First QSO</th>
|
|
<th>Last QSO</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<?php $rank = 1; ?>
|
|
<?php
|
|
// Get Date format
|
|
if($this->session->userdata('user_date_format')) {
|
|
// If Logged in and session exists
|
|
$custom_date_format = $this->session->userdata('user_date_format');
|
|
} else {
|
|
// Get Default date format from /config/cloudlog.php
|
|
$custom_date_format = $this->config->item('qso_date_format');
|
|
}
|
|
|
|
foreach ($mostworked_callsigns as $row) { ?>
|
|
<tr>
|
|
<td><?php echo $rank++; ?></td>
|
|
<td>
|
|
<strong><?php echo str_replace("0","Ø",strtoupper($row->callsign)); ?></strong>
|
|
</td>
|
|
<td>
|
|
<span class="badge bg-primary"><?php echo $row->contact_count; ?></span>
|
|
</td>
|
|
<td>
|
|
<?php
|
|
$timestamp = strtotime($row->first_qso);
|
|
echo date($custom_date_format, $timestamp);
|
|
?>
|
|
</td>
|
|
<td>
|
|
<?php
|
|
$timestamp = strtotime($row->last_qso);
|
|
echo date($custom_date_format, $timestamp);
|
|
?>
|
|
</td>
|
|
</tr>
|
|
<?php } ?>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<?php } ?>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|