From 58b53a0284d07654edbc79c1fdadef53ab644447 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 18 Dec 2025 17:46:38 +0700 Subject: [PATCH] =?UTF-8?q?feat(daftar-pustaka):=20=F0=9F=92=84=20Tingkatk?= =?UTF-8?q?an=20Tampilan=20Tombol=20dan=20Kartu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Perubahan ini mencakup beberapa penyesuaian pada tata letak dan gaya untuk meningkatkan pengalaman pengguna di halaman daftar pustaka. - **Tombol Lebar Penuh**: Tombol "Hapus" dan "Edit" sekarang memiliki lebar penuh (`w-full`) untuk konsistensi dan kemudahan penggunaan. - **Tata Letak Tombol**: Tombol-tombol diatur dalam tata letak kolom (`flex-col`) dengan jarak (`gap-2`) untuk tampilan yang lebih rapi. - **Posisi Tombol**: Tombol-tombol sekarang selalu berada di bagian bawah kartu, terlepas dari panjang konten, dengan menggunakan `mt-auto`. - **Struktur Kartu**: Struktur kartu diubah menjadi `flex flex-col` untuk memungkinkan penataan posisi tombol yang lebih baik. --- module.json | 1 + .../views/daftar-pustaka/index.blade.php | 227 ++++++++++++++---- 2 files changed, 176 insertions(+), 52 deletions(-) diff --git a/module.json b/module.json index 8185608..b437699 100644 --- a/module.json +++ b/module.json @@ -22,6 +22,7 @@ "permission": "", "roles": [ "administrator", + "admin", "pemohon-ao", "pemohon-eo", "DD Appraisal", diff --git a/resources/views/daftar-pustaka/index.blade.php b/resources/views/daftar-pustaka/index.blade.php index a745857..433d618 100644 --- a/resources/views/daftar-pustaka/index.blade.php +++ b/resources/views/daftar-pustaka/index.blade.php @@ -6,6 +6,78 @@ @section('content') -
+
+ +
+
+ + + +
+ Semua Kategori + {{ $total ?? 0 }} +
+ + + @foreach ($categories as $category) +
+ {{ $category->name }} + {{ $category->daftarPustaka_count ?? 0 }} +
+ @endforeach +
+
+ + +
+
@@ -43,12 +142,6 @@ {{ $total }} items.
-
@@ -74,8 +167,8 @@
@if (isset($daftar_pustaka)) @foreach ($daftar_pustaka as $item) -
- +
@@ -84,39 +177,33 @@
-
- - -

- {{ $item->judul }}

-

- {{-- batasi panjang deskripsi 50 --}} - {{ substr($item->deskripsi, 0, 50) }} -

-
-
-

- # {{ $item->category->name }}

- - @auth - @if (auth()->user()->hasRole(['administrator', 'admin'])) - - @endif - @endauth - +
+
+

+ # {{ $item->category->name }}

+ + @if (auth()->user()->hasRole(['administrator', 'admin'])) + + @endif
@endforeach @@ -143,9 +230,11 @@
-
-
- +
-

- # {{ $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