@php
$filterFormId = 'filterForm' . mt_rand();
@endphp
@if($filters->activeCount() > 0)
{!! icon('filters', null, ['class' => 'btn']) !!}
{{ $filters->activeCount() }}
@else
{!! icon('filters', null, [
'class' => 'btn',
'data-toggle' => 'dropdown',
'aria-haspopup' => 'true',
'aria-expanded' => 'false',
'title' => __('Filters'),
])
!!}
@endif
@once
@push('onload-scripts')
/* Removes unused fields from query string */
function submitAppShellFilter(event) {
event.preventDefault();
const form = event.target;
let url = new URL(form.action);
Array.from(form.elements).forEach((field) => {
if ('' != field.name && '' != field.value) {
if ("selectedOptions" in field && field.selectedOptions.length > 1) {
Array.from(field.selectedOptions).forEach((option) => {
url.searchParams.append(field.name, option.value);
});
} else {
url.searchParams.append(field.name, field.value);
}
}
});
window.location = url.toString();
}
@endpush
@endonce
@push('onload-scripts')
document.getElementById("{{ $filterFormId }}").addEventListener("submit", submitAppShellFilter);
@endpush