mirror of
https://github.com/wavelog/wavelog.git
synced 2026-03-22 10:24:14 +00:00
[DXCC Award] Added date presets
This commit is contained in:
@@ -6,6 +6,17 @@
|
||||
height: calc(100vh - 300px) !important;
|
||||
max-height: 900px !important;
|
||||
}
|
||||
|
||||
.dropdown-filters-responsive {
|
||||
width: 800px;
|
||||
}
|
||||
|
||||
@media (max-width: 900px) {
|
||||
.dropdown-filters-responsive {
|
||||
width: 90vw;
|
||||
max-width: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<div class="container">
|
||||
<!-- Award Info Box -->
|
||||
@@ -26,16 +37,30 @@
|
||||
|
||||
<form class="form" action="<?php echo site_url('awards/dxcc'); ?>" method="post" enctype="multipart/form-data">
|
||||
<div class="mb-4 text-center">
|
||||
<div class="dropdown" data-bs-auto-close="outside">
|
||||
<button class="btn btn-sm btn-primary dropdown-toggle" type="button" id="filterDropdown" data-bs-toggle="dropdown" aria-expanded="false"><?= __("Filters") ?></button>
|
||||
<button id="button1id" type="submit" name="button1id" class="btn btn-sm btn-primary"><?= __("Show"); ?></button>
|
||||
<div class="dropdown" data-bs-auto-close="outside">
|
||||
<button class="btn btn-sm btn-primary dropdown-toggle" type="button" id="filterDropdown" data-bs-toggle="dropdown" aria-expanded="false"><?= __("Filters") ?></button>
|
||||
<button id="button1id" type="submit" name="button1id" class="btn btn-sm btn-primary"><?= __("Show"); ?></button>
|
||||
<?php if ($dxcc_array) {
|
||||
?><button type="button" onclick="load_dxcc_map();" class="btn btn-info btn-sm"><i class="fas fa-globe-americas"></i> <?= __("Show DXCC Map"); ?></button>
|
||||
<?php }?>
|
||||
|
||||
<!-- Dropdown Menu with Filter Content -->
|
||||
<div class="dropdown-menu start-50 translate-middle-x p-3 mt-5" aria-labelledby="filterDropdown" style="min-width: 250px;">
|
||||
<div class="dropdown-menu start-50 translate-middle-x p-3 mt-5 dropdown-filters-responsive" aria-labelledby="filterDropdown" style="max-width: 800px;">
|
||||
<div class="card-body filterbody">
|
||||
<div class="row mb-3">
|
||||
<label class="form-label" for="checkboxes"><?= __("Date Presets") . ": " ?></label>
|
||||
<div class="d-flex gap-1 d-flex flex-wrap">
|
||||
<button type="button" class="btn btn-primary btn-sm flex-shrink-0" onclick="applyPreset('today')"><?= __("Today") ?></button>
|
||||
<button type="button" class="btn btn-primary btn-sm flex-shrink-0" onclick="applyPreset('yesterday')"><?= __("Yesterday") ?></button>
|
||||
<button type="button" class="btn btn-primary btn-sm flex-shrink-0" onclick="applyPreset('last7days')"><?= __("Last 7 Days") ?></button>
|
||||
<button type="button" class="btn btn-primary btn-sm flex-shrink-0" onclick="applyPreset('last30days')"><?= __("Last 30 Days") ?></button>
|
||||
<button type="button" class="btn btn-primary btn-sm flex-shrink-0" onclick="applyPreset('thismonth')"><?= __("This Month") ?></button>
|
||||
<button type="button" class="btn btn-primary btn-sm flex-shrink-0" onclick="applyPreset('lastmonth')"><?= __("Last Month") ?></button>
|
||||
<button type="button" class="btn btn-primary btn-sm flex-shrink-0" onclick="applyPreset('thisyear')"><?= __("This Year") ?></button>
|
||||
<button type="button" class="btn btn-primary btn-sm flex-shrink-0" onclick="applyPreset('lastyear')"><?= __("Last Year") ?></button>
|
||||
<button type="button" class="btn btn-danger btn-sm flex-shrink-0" onclick="resetDates()"><i class="fas fa-times"></i> <?= __("Clear") ?></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3 row">
|
||||
<div class="col-md-2 control-label" for="checkboxes"><?= __("Date from"); ?></div>
|
||||
|
||||
@@ -208,3 +208,86 @@ function onClick(e) {
|
||||
var marker = e.target;
|
||||
displayContactsOnMap($("#dxccmap"),marker.options.adif, $('#band2').val(), $('#sats').val(), $('#orbits').val(), $('#mode').val(), 'DXCC2', '', $('#dateFrom').val(), $('#dateTo').val());
|
||||
}
|
||||
|
||||
// Preset functionality
|
||||
function applyPreset(preset) {
|
||||
const dateFrom = document.getElementById('dateFrom');
|
||||
const dateTo = document.getElementById('dateTo');
|
||||
const today = new Date();
|
||||
|
||||
// Format date as YYYY-MM-DD
|
||||
function formatDate(date) {
|
||||
const year = date.getFullYear();
|
||||
const month = String(date.getMonth() + 1).padStart(2, '0');
|
||||
const day = String(date.getDate()).padStart(2, '0');
|
||||
return `${year}-${month}-${day}`;
|
||||
}
|
||||
|
||||
switch(preset) {
|
||||
case 'today':
|
||||
dateFrom.value = formatDate(today);
|
||||
dateTo.value = formatDate(today);
|
||||
break;
|
||||
|
||||
case 'yesterday':
|
||||
const yesterday = new Date(today);
|
||||
yesterday.setDate(yesterday.getDate() - 1);
|
||||
dateFrom.value = formatDate(yesterday);
|
||||
dateTo.value = formatDate(yesterday);
|
||||
break;
|
||||
|
||||
case 'last7days':
|
||||
const sevenDaysAgo = new Date(today);
|
||||
sevenDaysAgo.setDate(sevenDaysAgo.getDate() - 7);
|
||||
dateFrom.value = formatDate(sevenDaysAgo);
|
||||
dateTo.value = formatDate(today);
|
||||
break;
|
||||
|
||||
case 'last30days':
|
||||
const thirtyDaysAgo = new Date(today);
|
||||
thirtyDaysAgo.setDate(thirtyDaysAgo.getDate() - 30);
|
||||
dateFrom.value = formatDate(thirtyDaysAgo);
|
||||
dateTo.value = formatDate(today);
|
||||
break;
|
||||
|
||||
case 'thismonth':
|
||||
const firstDayOfMonth = new Date(today.getFullYear(), today.getMonth(), 1);
|
||||
dateFrom.value = formatDate(firstDayOfMonth);
|
||||
dateTo.value = formatDate(today);
|
||||
break;
|
||||
|
||||
case 'lastmonth':
|
||||
const firstDayOfLastMonth = new Date(today.getFullYear(), today.getMonth() - 1, 1);
|
||||
const lastDayOfLastMonth = new Date(today.getFullYear(), today.getMonth(), 0);
|
||||
dateFrom.value = formatDate(firstDayOfLastMonth);
|
||||
dateTo.value = formatDate(lastDayOfLastMonth);
|
||||
break;
|
||||
|
||||
case 'thisyear':
|
||||
const firstDayOfYear = new Date(today.getFullYear(), 0, 1);
|
||||
dateFrom.value = formatDate(firstDayOfYear);
|
||||
dateTo.value = formatDate(today);
|
||||
break;
|
||||
|
||||
case 'lastyear':
|
||||
const lastYear = today.getFullYear() - 1;
|
||||
const firstDayOfLastYear = new Date(lastYear, 0, 1);
|
||||
const lastDayOfLastYear = new Date(lastYear, 11, 31);
|
||||
dateFrom.value = formatDate(firstDayOfLastYear);
|
||||
dateTo.value = formatDate(lastDayOfLastYear);
|
||||
break;
|
||||
|
||||
case 'alltime':
|
||||
dateFrom.value = '';
|
||||
dateTo.value = '';
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Reset dates function
|
||||
function resetDates() {
|
||||
const dateFrom = document.getElementById('dateFrom');
|
||||
const dateTo = document.getElementById('dateTo');
|
||||
dateFrom.value = '';
|
||||
dateTo.value = '';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user