diff --git a/app/Services/DummyDataService.php b/app/Services/DummyDataService.php
index a326a07..0e65daa 100644
--- a/app/Services/DummyDataService.php
+++ b/app/Services/DummyDataService.php
@@ -483,150 +483,158 @@ public static function getStatistikBulanan(): array
* @return \Illuminate\Support\Collection
*/
public static function getAllBooks()
- {
- return collect([
- [
- 'id' => 1,
- 'judul' => 'Modul Ajar IPAS',
- 'penulis' => 'Tim Kemdikbud Ristek',
- 'cover' => 'images/covers/ipas.jpg',
- 'kategori' => 'Sains',
- 'tahun' => 2022,
- 'status' => 'Tersedia',
- 'is_new' => true,
- 'tipe_akses' => ['online', 'offline'],
- 'file_pdf' => 'ipas.pdf',
- 'progress' => 75,
- 'sisa_hari' => 14,
- 'user_id' => 1,
- ],
- [
- 'id' => 2,
- 'judul' => 'Modul Ajar Pendidikan Pancasila',
- 'penulis' => 'Tim Guru Pancasila',
- 'cover' => 'images/covers/pancasila.jpg',
- 'kategori' => 'Pendidikan',
- 'tahun' => 2023,
- 'status' => 'Tersedia',
- 'is_new' => false,
- 'tipe_akses' => 'offline',
- 'sisa_hari' => 3,
- 'progress' => 100,
- 'user_id' => [3, 1],
- ],
- [
- 'id' => 3,
- 'judul' => 'Modul Belajar Sosiologi',
- 'penulis' => 'Tim Cendekia',
- 'cover' => 'images/covers/sosiologi.jpg',
- 'kategori' => 'Sosial',
- 'tahun' => 2021,
- 'status' => 'Dipinjam',
- 'is_new' => false,
- 'tipe_akses' => 'offline',
- 'sisa_hari' => 8,
- 'user_id' => 3,
- ],
- [
- 'id' => 4,
- 'judul' => 'Modul Pembelajaran Seni Budaya',
- 'penulis' => 'Cahya Wulan, S.Pd.',
- 'cover' => 'images/covers/senbud.jpg',
- 'kategori' => 'Seni',
- 'tahun' => 2022,
- 'status' => 'Dipinjam',
- 'is_new' => false,
- 'tipe_akses' => 'offline',
- 'sisa_hari' => 14,
- 'user_id' => [1, 3],
- ],
- [
- 'id' => 5,
- 'judul' => 'Si Anak Pintar',
- 'penulis' => 'Tere Liye',
- 'cover' => 'images/covers/sianakpintar.jpg',
- 'kategori' => 'Fiksi',
- 'tahun' => 2018,
- 'status' => 'Dipinjam',
- 'is_new' => true,
- 'tipe_akses' => 'offline',
- 'sisa_hari' => 5,
- 'user_id' => 1,
- ],
- [
- 'id' => 6,
- 'judul' => 'Matematika Dasar',
- 'penulis' => 'Prof. Dr. Matematikus',
- 'cover' => 'images/covers/mtk.jpg',
- 'kategori' => 'Pendidikan',
- 'tahun' => 2023,
- 'status' => 'Tersedia',
- 'is_new' => true,
- 'tipe_akses' => ['online', 'offline'],
- 'file_pdf' => 'mtk.pdf',
- 'sisa_hari' => 7,
- 'progress' => 40,
- 'user_id' => [1, 4, 5],
- ],
- [
- 'id' => 7,
- 'judul' => 'The Last Spell Breather',
- 'penulis' => 'Julie Pike',
- 'cover' => 'images/covers/thelastspellbreather.jpg',
- 'kategori' => 'Fantasi',
- 'tahun' => 2024,
- 'status' => 'Tersedia',
- 'is_new' => true,
- 'tipe_akses' => 'offline',
- 'sisa_hari' => 4,
- 'progress' => 0,
- 'user_id' => [3, 1]
- ],
- [
- 'id' => 8,
- 'judul' => 'Ayah',
- 'penulis' => 'Andrea Hirata',
- 'cover' => 'images/covers/ayah.png',
- 'kategori' => 'Novel',
- 'tahun' => 2015,
- 'status' => 'Tersedia',
- 'is_new' => true,
- 'tipe_akses' => 'online',
- 'file_pdf' => 'ayah.pdf',
- 'progress' => 0,
- 'user_id' => [1, 2, 3],
- ],
- [
- 'id' => 9,
- 'judul' => 'Senja, Hujan, & Cerita yang Telah Usai',
- 'penulis' => 'Boy Candra',
- 'cover' => 'images/covers/senja.png',
- 'kategori' => 'Novel',
- 'tahun' => 2015,
- 'status' => 'Tersedia',
- 'is_new' => true,
- 'tipe_akses' => ['online', 'offline'],
- 'file_pdf' => 'senja.pdf',
- 'progress' => 0,
- 'sisa_hari' => 14,
- 'user_id' => [1, 3],
- ],
- [
- 'id' => 10,
- 'judul' => 'Hijrah itu Cinta',
- 'penulis' => 'Abay Adhitya',
- 'cover' => 'images/covers/hijrah.png',
- 'kategori' => 'Religi',
- 'tahun' => 2018,
- 'status' => 'Tersedia',
- 'is_new' => true,
- 'tipe_akses' => 'online',
- 'file_pdf' => 'hijrah.pdf',
- 'progress' => 0,
- 'user_id' => [2, 3],
- ]
- ]);
- }
+{
+ return collect([
+ [
+ 'id' => 1,
+ 'judul' => 'Modul Ajar IPAS',
+ 'penulis' => 'Tim Kemdikbud Ristek',
+ 'cover' => 'images/covers/ipas.jpg',
+ 'kode_buku' => '510', // 500 (Sains)
+ 'kategori' => 'Sains',
+ 'tahun' => 2022,
+ 'status' => 'Tersedia',
+ 'is_new' => true,
+ 'tipe_akses' => ['online', 'offline'],
+ 'file_pdf' => 'ipas.pdf',
+ 'progress' => 75,
+ 'sisa_hari' => 14,
+ 'user_id' => 1,
+ ],
+ [
+ 'id' => 2,
+ 'judul' => 'Modul Ajar Pendidikan Pancasila',
+ 'penulis' => 'Tim Guru Pancasila',
+ 'cover' => 'images/covers/pancasila.jpg',
+ 'kode_buku'=> '370', // 370 (Pendidikan, bagian dari 300-Sosial)
+ 'kategori' => 'Pendidikan',
+ 'tahun' => 2023,
+ 'status' => 'Tersedia',
+ 'is_new' => false,
+ 'tipe_akses' => 'offline',
+ 'sisa_hari' => 3,
+ 'progress' => 100,
+ 'user_id' => [3, 1],
+ ],
+ [
+ 'id' => 3,
+ 'judul' => 'Modul Belajar Sosiologi',
+ 'penulis' => 'Tim Cendekia',
+ 'cover' => 'images/covers/sosiologi.jpg',
+ 'kode_buku' => '340', // 300 (Ilmu Sosial)
+ 'kategori' => 'Sosial',
+ 'tahun' => 2021,
+ 'status' => 'Dipinjam',
+ 'is_new' => false,
+ 'tipe_akses' => 'offline',
+ 'sisa_hari' => 8,
+ 'user_id' => 3,
+ ],
+ [
+ 'id' => 4,
+ 'judul' => 'Modul Pembelajaran Seni Budaya',
+ 'penulis' => 'Cahya Wulan, S.Pd.',
+ 'cover' => 'images/covers/senbud.jpg',
+ 'kode_buku' => '752', // 700 (Seni)
+ 'kategori' => 'Seni',
+ 'tahun' => 2022,
+ 'status' => 'Dipinjam',
+ 'is_new' => false,
+ 'tipe_akses' => 'offline',
+ 'sisa_hari' => 14,
+ 'user_id' => [1, 3],
+ ],
+ [
+ 'id' => 5,
+ 'judul' => 'Si Anak Pintar',
+ 'penulis' => 'Tere Liye',
+ 'cover' => 'images/covers/sianakpintar.jpg',
+ 'kode_buku' => '843', // 800 (Fiksi/Sastra)
+ 'kategori' => 'Fiksi',
+ 'tahun' => 2018,
+ 'status' => 'Dipinjam',
+ 'is_new' => true,
+ 'tipe_akses' => 'offline',
+ 'sisa_hari' => 5,
+ 'user_id' => 1,
+ ],
+ [
+ 'id' => 6,
+ 'judul' => 'Matematika Dasar',
+ 'penulis' => 'Prof. Dr. Matematikus',
+ 'cover' => 'images/covers/mtk.jpg',
+ 'kode_buku' => '374', // 370 (Pendidikan)
+ 'kategori' => 'Pendidikan',
+ 'tahun' => 2023,
+ 'status' => 'Tersedia',
+ 'is_new' => true,
+ 'tipe_akses' => ['online', 'offline'],
+ 'file_pdf' => 'mtk.pdf',
+ 'sisa_hari' => 7,
+ 'progress' => 40,
+ 'user_id' => [1, 4, 5],
+ ],
+ [
+ 'id' => 7,
+ 'judul' => 'The Last Spell Breather',
+ 'penulis' => 'Julie Pike',
+ 'cover' => 'images/covers/thelastspellbreather.jpg',
+ 'kode_buku' => '834', // 800 (Fantasi/Sastra)
+ 'kategori' => 'Fantasi',
+ 'tahun' => 2024,
+ 'status' => 'Tersedia',
+ 'is_new' => true,
+ 'tipe_akses' => 'offline',
+ 'sisa_hari' => 4,
+ 'progress' => 0,
+ 'user_id' => [3, 1]
+ ],
+ [
+ 'id' => 8,
+ 'judul' => 'Ayah',
+ 'penulis' => 'Andrea Hirata',
+ 'cover' => 'images/covers/ayah.png',
+ 'kategori' => 'Novel',
+ 'tahun' => 2015,
+ 'status' => 'Tersedia',
+ 'is_new' => true,
+ 'tipe_akses' => 'online',
+ 'file_pdf' => 'ayah.pdf',
+ 'progress' => 0,
+ 'user_id' => [1, 2, 3],
+ ],
+ [
+ 'id' => 9,
+ 'judul' => 'Senja, Hujan, & Cerita yang Telah Usai',
+ 'penulis' => 'Boy Candra',
+ 'cover' => 'images/covers/senja.png',
+ 'kode_buku' => '845', // 800 (Novel/Sastra)
+ 'kategori' => 'Novel',
+ 'tahun' => 2015,
+ 'status' => 'Tersedia',
+ 'is_new' => true,
+ 'tipe_akses' => ['online', 'offline'],
+ 'file_pdf' => 'senja.pdf',
+ 'progress' => 0,
+ 'sisa_hari' => 14,
+ 'user_id' => [1, 3],
+ ],
+ [
+ 'id' => 10,
+ 'judul' => 'Hijrah itu Cinta',
+ 'penulis' => 'Abay Adhitya',
+ 'cover' => 'images/covers/hijrah.png',
+ 'kategori' => 'Religi',
+ 'tahun' => 2018,
+ 'status' => 'Tersedia',
+ 'is_new' => true,
+ 'tipe_akses' => 'online',
+ 'file_pdf' => 'hijrah.pdf',
+ 'progress' => 0,
+ 'user_id' => [2, 3],
+ ]
+ ]);
+}
/**
* Data untuk buku pinjam offline
@@ -736,14 +744,16 @@ public static function getRiwayatOffline(): array
[
'id' => 1,
'id_peminjaman' => 'PIN-20240520-001',
- 'judul_utama' => 'Yuk, Mari Sekolah',
+ 'kode_buku' => '510',
+ 'judul_utama' => 'Modul Ajar IPAS',
'tanggal_pinjam' => '20/05/2024',
'tanggal_kembali' => '27/05/2024',
'status' => 'Dikembalikan',
'books' => [
[
'id' => 1,
- 'judul' => 'Yuk, Mari Sekolah',
+ 'judul' => 'Modul Ajar IPAS',
+ 'kode_buku' => '510',
'cover' => 'images/covers/ipas.jpg',
'deskripsi' => 'Buku ini berisi ajakan kepada anak-anak untuk semangat pergi ke sekolah dan menuntut ilmu.',
'kategori' => 'Pendidikan',
@@ -755,7 +765,8 @@ public static function getRiwayatOffline(): array
[
'id' => 2,
'id_peminjaman' => 'PIN-20240527-002',
- 'judul_utama' => 'Perahu Kertas & 1 lainnya',
+ 'kode_buku' => '844',
+ 'judul_utama' => 'Perahu Kertas',
'tanggal_pinjam' => '27/05/2024',
'tanggal_kembali' => '04/06/2024',
'status' => 'Dipinjam',
@@ -763,21 +774,13 @@ public static function getRiwayatOffline(): array
[
'id' => 8,
'judul' => 'Perahu Kertas',
+ 'kode_buku' => '844',
'cover' => 'images/covers/ayah.png',
'deskripsi' => 'Cerita penggambaran pasang surut hubungan dua anak manusia, yaitu Kugy dan Keenan.',
'kategori' => 'Fiksi',
'tahun' => 2022,
'keterangan' => null,
],
- [
- 'id' => 7,
- 'judul' => 'The Last Spell Breather',
- 'cover' => 'images/covers/thelastspellbreather.jpg',
- 'deskripsi' => 'Sebuah petualangan fantasi di dunia sihir yang menakjubkan.',
- 'kategori' => 'Fantasi',
- 'tahun' => 2024,
- 'keterangan' => null,
- ]
]
],
];
diff --git a/public/images/assets/hero-image.svg b/public/images/assets/hero-image.svg
new file mode 100644
index 0000000..c121c44
--- /dev/null
+++ b/public/images/assets/hero-image.svg
@@ -0,0 +1,455 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/images/assets/logo-smp.png b/public/images/assets/logo-smp.png
new file mode 100644
index 0000000..af26c5d
Binary files /dev/null and b/public/images/assets/logo-smp.png differ
diff --git a/resources/scss/_custom.scss b/resources/scss/_custom.scss
index 9a069a4..2b46a15 100644
--- a/resources/scss/_custom.scss
+++ b/resources/scss/_custom.scss
@@ -4,14 +4,17 @@
// UTILITIES (GENERATED FROM MAPS)
// ===================================
// Generator otomatis untuk variant warna (background light, soft, alert)
-@each $color, $value in $theme-colors {
+@each $color,
+$value in $theme-colors {
.bg-#{$color}-light {
background-color: rgba($value, 0.25) !important;
}
+
.bg-#{$color}-soft {
background-color: rgba($value, 0.25);
color: $value;
}
+
.alert-#{$color} {
background-color: rgba($value, 0.2);
color: color.adjust($value, $lightness: -25%);
@@ -35,43 +38,49 @@ html {
.navbar-brand {
font-size: 1.25rem;
-
+
i {
font-size: 1.5rem;
}
-
+
@media (max-width: 575.98px) {
font-size: 1.1rem;
-
+
i {
font-size: 1.25rem;
}
}
}
-
+
.navbar-toggler {
padding: 0.25rem 0.5rem;
-
+
&:focus {
box-shadow: none;
}
}
-
+
.navbar-nav {
- .nav-link {
+ .nav-link-landing {
padding: 0.5rem 1rem;
- color: #49769F;
-
- &:hover, &.active {
- color: #0C5495;
+ color: #49769F;
+ text-decoration: none;
+ display: block;
+ transition: color 0.3s ease;
+
+ &:hover,
+ &.active {
+ color: #0C5495;
+ font-weight: 500;
+ transition: all 0.3s ease-in;
}
-
+
@media (max-width: 991.98px) {
padding: 0.5rem 0;
}
}
}
-
+
@media (max-width: 991.98px) {
.navbar-collapse {
margin-top: 1rem;
@@ -79,19 +88,19 @@ html {
border-top: 1px solid rgba(0, 0, 0, 0.1);
.navbar-nav {
- text-align: left !important;
- width: 100%;
+ text-align: left !important;
+ width: 100%;
}
.nav-item {
margin: 0 !important;
- text-align: left !important;
+ text-align: left !important;
}
-
+
.nav-link {
- width: 100%;
+ width: 100%;
justify-content: start;
- padding-left: 0.75rem;
+ padding-left: 0.75rem;
padding-right: 0.75rem;
}
}
@@ -100,13 +109,11 @@ html {
// Hero Section
.landing-hero-section {
- background: linear-gradient(
- 135deg,
- #0C5495 0%,
- color.adjust(#0C5495, $lightness: 10%) 100%
- );
+ background: linear-gradient(135deg,
+ #0C5495 0%,
+ color.adjust(#0C5495, $lightness: 10%) 100%);
padding: 60px 0;
-
+
@media (min-width: 992px) {
padding: 100px 0;
}
@@ -114,10 +121,12 @@ html {
.btn-hero-solid {
background-color: #fff !important;
border-color: #fff !important;
- color: $primary !important; /* Menggunakan warna primary Anda #0C5495 */
-
+ color: $primary !important;
+ /* Menggunakan warna primary Anda #0C5495 */
+
&:hover {
- background-color: lighten($primary, 70%) !important; /* Sedikit keabu-abuan saat hover */
+ background-color: lighten($primary, 70%) !important;
+ /* Sedikit keabu-abuan saat hover */
border-color: lighten($primary, 70%) !important;
color: $primary !important;
}
@@ -125,26 +134,16 @@ html {
}
.landing-hero-illustration {
- width: 180px;
- height: 180px;
background: rgba(255, 255, 255, 0.1);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
-
+
i {
font-size: 5rem;
}
-
- @media (min-width: 1200px) {
- width: 220px;
- height: 220px;
-
- i {
- font-size: 6rem;
- }
- }
+
}
.card-img-top {
@@ -160,7 +159,7 @@ html {
line-height: 1.4;
min-height: 2.8rem;
font-size: 0.9rem;
-
+
@media (max-width: 575.98px) {
font-size: 0.85rem;
min-height: 2.4rem;
@@ -170,15 +169,15 @@ html {
// Stat Card
.landing-stat-card {
transition: all 0.3s ease;
-
+
&:hover {
transform: translateY(-3px);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12) !important;
}
-
+
h2 {
font-size: 2rem;
-
+
@media (min-width: 768px) {
font-size: 2.5rem;
}
@@ -187,13 +186,11 @@ html {
// CTA Section
.landing-cta-section {
- background: linear-gradient(
- 135deg,
- #0C5495 0%,
- color.adjust(#0C5495, $lightness: 10%) 100%
- );
+ background: linear-gradient(135deg,
+ #0C5495 0%,
+ color.adjust(#0C5495, $lightness: 10%) 100%);
border-radius: 1rem;
-
+
@media (min-width: 768px) {
border-radius: 1.5rem;
}
@@ -207,6 +204,7 @@ html {
.card {
box-shadow: $card-box-shadow;
+
.card-header {
background-color: #fff;
border-bottom: 1px solid rgba(map-get($grays, "dark"), 0.1);
@@ -216,6 +214,7 @@ html {
.alert {
border-radius: $border-radius;
box-shadow: $shadow-sm;
+
.alert-icon {
width: 24px;
display: flex;
@@ -229,11 +228,13 @@ html {
border: none;
border-radius: $border-radius-lg;
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
+
.modal-header,
.modal-footer {
border-color: rgba(map-get($grays, "dark"), 0.1);
padding: 1.5rem;
}
+
.modal-title {
color: map-get($grays, "dark");
font-weight: 700;
@@ -375,10 +376,13 @@ body {
.sidebar.bg-primary {
.nav-link {
color: rgba(255, 255, 255, 0.85);
- i { color: rgba(255, 255, 255, 0.85); }
+
+ i {
+ color: rgba(255, 255, 255, 0.85);
+ }
&.py-1 {
- color: rgba(255, 255, 255, 0.7);
+ color: rgba(255, 255, 255, 0.7);
}
}
@@ -386,14 +390,20 @@ body {
.nav-link.py-1:hover {
background: rgba(255, 255, 255, 0.05);
color: #fff;
- i { color: #fff; }
+
+ i {
+ color: #fff;
+ }
}
.nav-link.active {
- background: rgba(255, 255, 255, 0.1);
+ background: rgba(255, 255, 255, 0.1);
color: #fff;
font-weight: 600;
- i { color: #fff; }
+
+ i {
+ color: #fff;
+ }
}
}
@@ -607,6 +617,7 @@ nav {
width: 40px;
height: 40px;
border-radius: 10px;
+
i {
font-size: 1.2rem;
}
@@ -621,12 +632,11 @@ nav {
.book-cover {
transition: $transition;
border-radius: $border-radius-sm;
+
&-container {
- background: linear-gradient(
- 135deg,
- rgba(map-get($grays, "light"), 0.5) 0%,
- rgba(map-get($grays, "light"), 0.8) 100%
- );
+ background: linear-gradient(135deg,
+ rgba(map-get($grays, "light"), 0.5) 0%,
+ rgba(map-get($grays, "light"), 0.8) 100%);
border-radius: $border-radius-sm 0 0 $border-radius-sm;
}
}
@@ -635,6 +645,7 @@ nav {
.section-header {
padding-bottom: 15px;
border-bottom: 2px solid map-get($grays, "light");
+
h5 {
color: map-get($grays, "dark");
font-weight: 700;
@@ -645,12 +656,14 @@ nav {
.empty-state {
text-align: center;
padding: 3rem 1rem;
+
i {
font-size: 4rem;
color: map-get($grays, "dark");
margin-bottom: 1rem;
opacity: 0.25;
}
+
p {
color: map-get($grays, "dark");
opacity: 0.7;
@@ -666,13 +679,17 @@ nav {
--bs-btn-border-color: #{map-get($theme-colors, "primary")};
--bs-btn-hover-color: #{map-get($grays, "dark")};
--bs-btn-hover-bg: #{color.adjust(
- map-get($theme-colors, "primary"),
- $lightness: -5%
- )};
- --bs-btn-hover-border-color: #{color.adjust(
- map-get($theme-colors, "primary"),
- $lightness: -7.5%
- )};
+ map-get($theme-colors, "primary"),
+ $lightness: -5%)
+}
+
+;
+--bs-btn-hover-border-color: #{color.adjust(
+ map-get($theme-colors, "primary"),
+$lightness: -7.5%)
+}
+
+;
}
// Text clamp untuk truncate multi line
@@ -683,9 +700,11 @@ nav {
overflow: hidden;
line-height: 1.4;
}
+
.line-clamp-2 {
-webkit-line-clamp: 2;
}
+
.line-clamp-3 {
-webkit-line-clamp: 3;
}
@@ -694,13 +713,16 @@ nav {
::-webkit-scrollbar {
width: 6px;
}
+
::-webkit-scrollbar-track {
background: map-get($grays, "light");
border-radius: 3px;
}
+
::-webkit-scrollbar-thumb {
background: rgba(map-get($grays, "dark"), 0.25);
border-radius: 3px;
+
&:hover {
background: rgba(map-get($grays, "dark"), 0.4);
}
@@ -774,6 +796,7 @@ nav {
transform: translateY(-2px);
border-color: map-get($theme-colors, "primary");
box-shadow: $shadow-md;
+
.book-cover {
transform: scale(1.03);
}
@@ -806,11 +829,9 @@ nav {
// Background gradient hero section
.hero-gradient {
- background: linear-gradient(
- 135deg,
- map-get($theme-colors, "primary") 0%,
- color.adjust(map-get($theme-colors, "primary"), $lightness: 10%) 100%
- );
+ background: linear-gradient(135deg,
+ map-get($theme-colors, "primary") 0%,
+ color.adjust(map-get($theme-colors, "primary"), $lightness: 10%) 100%);
}
// Card untuk pilih role (admin/user)
@@ -830,11 +851,9 @@ nav {
// Panel info di halaman auth
.info-panel {
- background: linear-gradient(
- 135deg,
- map-get($theme-colors, "primary") 0%,
- color.adjust(map-get($theme-colors, "primary"), $lightness: 10%) 100%
- );
+ background: linear-gradient(135deg,
+ map-get($theme-colors, "primary") 0%,
+ color.adjust(map-get($theme-colors, "primary"), $lightness: 10%) 100%);
}
// Panel kiri auth (logo dan branding)
@@ -891,9 +910,11 @@ nav {
position: absolute !important;
min-height: 40vh;
}
+
.d-lg-none {
- top: 5vh !important ;
+ top: 5vh !important;
}
+
.auth-branding {
.auth-logo {
.icon-circle {
@@ -901,6 +922,7 @@ nav {
height: 80px !important;
border-radius: 20px !important;
}
+
h1 {
font-size: 2.5rem;
}
@@ -914,6 +936,7 @@ nav {
// Override styling DataTables
.dataTables_wrapper {
+
.dataTables_length,
.dataTables_filter,
.dataTables_info,
@@ -930,8 +953,7 @@ nav {
&:focus {
outline: none;
border-color: map-get($theme-colors, "primary");
- box-shadow: 0 0 0 0.2rem
- rgba(map-get($theme-colors, "primary"), 0.25);
+ box-shadow: 0 0 0 0.2rem rgba(map-get($theme-colors, "primary"), 0.25);
}
}
@@ -946,6 +968,7 @@ nav {
// Responsive DataTables untuk mobile
@media screen and (max-width: 576px) {
.dataTables_wrapper {
+
.dataTables_length,
.dataTables_filter {
text-align: center;
@@ -958,6 +981,7 @@ nav {
margin-top: 1rem;
}
}
+
table.dataTable td {
white-space: normal !important;
}
@@ -1016,4 +1040,4 @@ nav {
gap: 0.25rem;
}
}
-}
\ No newline at end of file
+}
diff --git a/resources/views/admin/buku/create.blade.php b/resources/views/admin/buku/create.blade.php
index ff63fb7..24c5b13 100644
--- a/resources/views/admin/buku/create.blade.php
+++ b/resources/views/admin/buku/create.blade.php
@@ -9,7 +9,7 @@
-
+
@@ -28,16 +28,21 @@
placeholder="Masukkan nama penulis">
-
+
Kategori
-
Tipe Akses
diff --git a/resources/views/admin/buku/edit.blade.php b/resources/views/admin/buku/edit.blade.php
index 547dbb7..ffaa238 100644
--- a/resources/views/admin/buku/edit.blade.php
+++ b/resources/views/admin/buku/edit.blade.php
@@ -9,7 +9,7 @@
-
+
@@ -39,13 +39,25 @@
value="{{ $buku['tahun'] }}">
+
+ @php
+ $tipe_akses = is_array($buku['tipe_akses'])
+ ? $buku['tipe_akses']
+ : [$buku['tipe_akses']];
+ $isOffline = in_array('offline', $tipe_akses);
+ @endphp
+
+ {{-- Field Kode Buku - Hanya untuk Buku Offline --}}
+ @if($isOffline)
+
+ Kode Buku
+
+
+ @endif
+
-
+
\ No newline at end of file
diff --git a/resources/views/admin/buku/index.blade.php b/resources/views/admin/buku/index.blade.php
index f1e6682..625544a 100644
--- a/resources/views/admin/buku/index.blade.php
+++ b/resources/views/admin/buku/index.blade.php
@@ -11,10 +11,13 @@
- Peminjaman Offline ({{ $bukuOffline->count() }})
+ Peminjaman Offline
+ ({{ $bukuOffline->count() }})
- Baca Online ({{ $bukuOnline->count() }})
+ Baca Online ({{ $bukuOnline->count() }})
@@ -24,37 +27,51 @@
- No Cover Judul Penulis Status Aksi
+
+ No
+ Cover
+ Judul
+ Kode Buku
+ Penulis
+ Status
+ Aksi
+
@forelse($bukuOffline as $buku)
-
- {{ $loop->iteration }}
-
- {{ $buku['judul'] }}
- {{ $buku['penulis'] }}
-
- @if($buku['status'] == 'Tersedia')
- Tersedia
- @else
- Dipinjam
- @endif
-
-
-
- Detail
-
-
-
+
+ {{ $loop->iteration }}
+
+ {{ $buku['judul'] }}
+ {{ $buku['kode_buku'] }}
+ {{ $buku['penulis'] }}
+
+ @if ($buku['status'] == 'Tersedia')
+ Tersedia
+ @else
+ Dipinjam
+ @endif
+
+
+
+ Detail
+
+
+
@empty
- Tidak ada data buku offline.
+
+ Tidak ada data buku offline.
+
@endforelse
@@ -66,31 +83,42 @@
- No Cover Judul Penulis File PDF Aksi
+
+ No
+ Cover
+ Judul
+ Penulis
+ File PDF
+ Aksi
+
@forelse($bukuOnline as $buku)
-
- {{ $loop->iteration }}
-
- {{ $buku['judul'] }}
- {{ $buku['penulis'] }}
- {{ $buku['file_pdf'] ?? 'N/A' }}
-
-
- Detail
-
-
-
+
+ {{ $loop->iteration }}
+
+ {{ $buku['judul'] }}
+ {{ $buku['penulis'] }}
+ {{ $buku['file_pdf'] ?? 'N/A' }}
+
+
+
+ Detail
+
+
+
@empty
- Tidak ada data buku online.
+
+ Tidak ada data buku online.
+
@endforelse
@@ -116,65 +144,90 @@
- Kategori
- Tahun
- Status
+
+ Kategori
+
+
+
+ Kode Buku
+
+
+
+ Tahun
+
+
+
+ Status
+
+
@push('scripts')
-
+ modalJudul.textContent = judul;
+ modalCover.src = cover;
+ modalJudulContent.textContent = judul;
+ modalPenulis.textContent = `oleh ${penulis}`;
+ modalKategori.textContent = `: ${kategori}`;
+ modalTahun.textContent = `: ${tahun}`;
+ modalStatus.textContent = status;
+ modalEditButton.href = editUrl;
+
+ // Tampilkan/sembunyikan kode buku berdasarkan ada tidaknya data
+ if (kode_buku && kode_buku !== 'null' && kode_buku !== '') {
+ rowKodeBuku.style.display = '';
+ modalKode_buku.textContent = `: ${kode_buku}`;
+ } else {
+ rowKodeBuku.style.display = 'none';
+ }
+
+ if (status === 'Tersedia' || status === 'Dapat Dibaca Online') {
+ modalStatus.className = 'badge bg-success-subtle text-success-emphasis';
+ } else {
+ modalStatus.className = 'badge bg-warning-subtle text-warning-emphasis';
+ }
+ });
+ }
+ });
+
@endpush
-
\ No newline at end of file
+
diff --git a/resources/views/rekomendasiShow.blade.php b/resources/views/rekomendasiShow.blade.php
index 58d54bb..d395416 100644
--- a/resources/views/rekomendasiShow.blade.php
+++ b/resources/views/rekomendasiShow.blade.php
@@ -6,7 +6,6 @@
-
Kembali
diff --git a/resources/views/riwayat/offline.blade.php b/resources/views/riwayat/offline.blade.php
index 2c06be4..5c58e6c 100644
--- a/resources/views/riwayat/offline.blade.php
+++ b/resources/views/riwayat/offline.blade.php
@@ -11,6 +11,7 @@
NO
ID PEMINJAMAN
+ KODE BUKU
JUDUL BUKU
TANGGAL PINJAM
TANGGAL KEMBALI
@@ -25,6 +26,7 @@
{{ $counter++ }}
{{ $transaksi['id_peminjaman'] }}
+ {{ $buku['kode_buku'] }}
{{ $buku['judul'] }}
{{ $transaksi['tanggal_pinjam'] }}
{{ $transaksi['tanggal_kembali'] }}
@@ -151,6 +153,11 @@ class="bi bi-book-half me-2 text-primary">Detail Riwayat
:
${transaksiItem.id_peminjaman}
+
+ Kode Buku
+ :
+ ${buku.kode_buku}
+
Kategori Buku
:
diff --git a/resources/views/welcome.blade.php b/resources/views/welcome.blade.php
index 71c2cd0..81d5d3d 100644
--- a/resources/views/welcome.blade.php
+++ b/resources/views/welcome.blade.php
@@ -30,62 +30,74 @@
DIGIPUS.GO
-
+