47 lines
1.4 KiB
JavaScript
47 lines
1.4 KiB
JavaScript
import '../utils/indeterminate';
|
|
import './panel';
|
|
import { ReLoad } from '../columns';
|
|
import throttle from 'lodash/throttle';
|
|
|
|
document.addEventListener('click', (event) => {
|
|
const filterType = event.target && event.target.dataset.filters;
|
|
|
|
if (filterType === 'reset') {
|
|
const filters = event.target.closest('#pages-filters');
|
|
(filters.querySelectorAll('input[type="text"]') || []).forEach((input) => {
|
|
input.value = '';
|
|
});
|
|
|
|
(filters.querySelectorAll('input[type="checkbox"]') || []).forEach((input) => {
|
|
const wrapper = input.closest('.checkboxes');
|
|
if (wrapper) {
|
|
wrapper.classList.remove('status-checked', 'status-unchecked', 'status-indeterminate');
|
|
wrapper.dataset._checkStatus = '0';
|
|
wrapper.classList.add('status-unchecked');
|
|
}
|
|
|
|
input.indeterminate = false;
|
|
input.checked = false;
|
|
input.value = '';
|
|
});
|
|
|
|
return false;
|
|
}
|
|
|
|
if (filterType === 'apply') {
|
|
ReLoad();
|
|
return false;
|
|
}
|
|
});
|
|
|
|
const throttledReload = throttle(() => {
|
|
ReLoad();
|
|
}, 350, { leading: false });
|
|
|
|
document.addEventListener('input', (event) => {
|
|
if (event.target.getAttribute && event.target.getAttribute('name') === 'filters[search]') {
|
|
throttledReload.cancel();
|
|
throttledReload();
|
|
}
|
|
});
|