64 lines
2.1 KiB
JavaScript
64 lines
2.1 KiB
JavaScript
(function(){
|
|
var search = document.getElementById('isc-search');
|
|
var dateFrom = document.getElementById('filter-date-from');
|
|
var dateTo = document.getElementById('filter-date-to');
|
|
var filterBtn = document.getElementById('filter-date-btn');
|
|
|
|
var STORAGE_KEY = 'api_isc_date_filter';
|
|
var STORAGE_KEY_ACTIVE = 'api_isc_date_active';
|
|
|
|
function toIsoDate(d) { return d.toISOString().slice(0, 10); }
|
|
|
|
function loadSavedDates() {
|
|
try { return JSON.parse(sessionStorage.getItem(STORAGE_KEY) || 'null'); } catch(e) { return null; }
|
|
}
|
|
function saveDates() {
|
|
try {
|
|
sessionStorage.setItem(STORAGE_KEY, JSON.stringify({
|
|
from: dateFrom ? dateFrom.value : '',
|
|
to: dateTo ? dateTo.value : '',
|
|
}));
|
|
sessionStorage.setItem(STORAGE_KEY_ACTIVE, '1');
|
|
} catch(e) {}
|
|
}
|
|
|
|
var dateActive = (function() {
|
|
try { return sessionStorage.getItem(STORAGE_KEY_ACTIVE) === '1'; } catch(e) { return false; }
|
|
})();
|
|
|
|
var savedDates = loadSavedDates();
|
|
if (savedDates) {
|
|
if (dateFrom) dateFrom.value = savedDates.from || '';
|
|
if (dateTo) dateTo.value = savedDates.to || '';
|
|
} else {
|
|
var today = new Date();
|
|
var twoWeeksAgo = new Date(today); twoWeeksAgo.setDate(today.getDate() - 14);
|
|
if (dateFrom) dateFrom.value = toIsoDate(twoWeeksAgo);
|
|
if (dateTo) dateTo.value = toIsoDate(today);
|
|
}
|
|
|
|
function applyFilter() {
|
|
var q = search ? search.value.toLowerCase() : '';
|
|
var from = dateActive && dateFrom ? dateFrom.value : '';
|
|
var to = dateActive && dateTo ? dateTo.value : '';
|
|
document.querySelectorAll('tbody tr').forEach(function(tr) {
|
|
var date = tr.getAttribute('data-date') || '';
|
|
var dateOk = (!from || date >= from) && (!to || date <= to);
|
|
var text = tr.textContent.toLowerCase();
|
|
tr.style.display = (dateOk && (!q || text.indexOf(q) >= 0)) ? '' : 'none';
|
|
});
|
|
}
|
|
|
|
if (filterBtn) {
|
|
filterBtn.addEventListener('click', function() {
|
|
dateActive = true;
|
|
saveDates();
|
|
applyFilter();
|
|
});
|
|
}
|
|
|
|
if (search) search.addEventListener('input', applyFilter);
|
|
|
|
applyFilter();
|
|
})();
|