+
+
+ # {{ $item->category->name }}
+
@@ -161,8 +250,6 @@
-
- # {{ $item->category->name }}
@auth
@if (auth()->user()->hasRole(['administrator', 'admin']))
@@ -277,14 +364,18 @@
function filterSearch() {
const search = document.getElementById('search')?.value || '';
- const select = document.getElementById('category_id');
- const selectedCategories = Array.from(select.selectedOptions).map(option => option.value);
+ const params = new URLSearchParams(window.location.search);
- const categoryParam = selectedCategories.join(',');
+ if (search) {
+ params.set('search', search);
+ } else {
+ params.delete('search');
+ }
- const url = "{{ route('daftar-pustaka.index') }}?search=" + encodeURIComponent(search) + "&category=" +
- encodeURIComponent(categoryParam);
- window.location.href = url;
+ // Reset to first page when searching
+ params.set('page', '1');
+
+ window.location.href = `{{ route('daftar-pustaka.index') }}?${params.toString()}`;
}
@@ -292,5 +383,37 @@
const url = "{{ route('daftar-pustaka.index') }}";
window.location.href = url;
}
+
+ function filterByCategory(categoryId, categoryName) {
+ // Add loading state
+ document.body.classList.add('loading');
+
+ // Update active state
+ document.querySelectorAll('.category-item').forEach(item => {
+ item.classList.remove('active');
+ });
+ event.currentTarget.classList.add('active');
+
+ // Get current search parameter
+ const search = document.getElementById('search')?.value || '';
+
+ // Build URL with category parameter
+ const params = new URLSearchParams(window.location.search);
+
+ if (search) {
+ params.set('search', search);
+ }
+
+ if (categoryId) {
+ params.set('category', categoryId);
+ } else {
+ params.delete('category');
+ }
+
+ // Reset to first page when filtering
+ params.set('page', '1');
+
+ window.location.href = `{{ route('daftar-pustaka.index') }}?${params.toString()}`;
+ }
@endpush