Undangan/backend/resources/views/layouts/app.blade.php
2025-09-02 13:47:29 +07:00

256 lines
7.7 KiB
PHP

<!doctype html>
<html lang="id">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>@yield('title', 'Admin Panel')</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons/font/bootstrap-icons.css">
<style>
body {
background-color: #f1f5f9;
font-family: 'Poppins', sans-serif;
}
/* SIDEBAR */
.sidebar {
width: 250px;
height: 100vh;
background: #fff;
box-shadow: 2px 0 8px rgba(0, 0, 0, 0.05);
position: fixed;
top: 0;
left: 0;
display: flex;
flex-direction: column;
justify-content: space-between;
transition: all 0.3s ease;
}
.sidebar .logo {
text-align: center;
padding: 20px 0;
border-bottom: 1px solid #eee;
}
.sidebar .logo img {
width: 130px;
}
.sidebar .menu-title {
font-size: 11px;
font-weight: 600;
padding: 15px 20px 5px;
color: #6c757d;
text-transform: uppercase;
letter-spacing: .5px;
}
.sidebar ul {
list-style: none;
padding: 0;
margin: 0;
}
.sidebar ul li a {
display: flex;
align-items: center;
padding: 12px 20px;
color: #495057;
text-decoration: none;
font-weight: 500;
font-size: 14px;
border-left: 3px solid transparent;
transition: all 0.25s ease-in-out;
}
.sidebar ul li a:hover {
background-color: #f1f5ff;
color: #0d6efd;
border-left: 3px solid #0d6efd;
}
.sidebar ul li a.active {
background-color: #eef4ff;
color: #0d6efd;
border-left: 3px solid #0d6efd;
}
.sidebar ul li a i {
font-size: 18px;
margin-right: 10px;
}
/* Submenu */
.submenu {
padding-left: 55px;
}
.submenu a {
font-size: 13px;
padding: 8px 20px;
color: #6c757d;
}
.submenu a:hover {
color: #0d6efd;
background: transparent;
border-left: none;
}
/* BOTTOM PROFILE */
.sidebar-bottom {
padding: 15px 20px;
border-top: 1px solid #eee;
background: #fafafa;
}
.sidebar-bottom .logout {
color: #dc3545;
display: flex;
align-items: center;
font-weight: 600;
text-decoration: none;
font-size: 14px;
}
.sidebar-bottom .logout i {
margin-right: 8px;
}
.sidebar-bottom .profile {
margin-top: 15px;
display: flex;
align-items: center;
gap: 10px;
}
.sidebar-bottom .profile img {
width: 38px;
height: 38px;
border-radius: 50%;
object-fit: cover;
border: 2px solid #ddd;
}
.sidebar-bottom .profile p {
margin: 0;
font-size: 14px;
font-weight: 600;
color: #333;
}
.sidebar-bottom .profile small {
font-size: 12px;
color: #6c757d;
}
/* MAIN CONTENT */
.main-content {
margin-left: 250px;
padding: 25px;
min-height: 100vh;
}
</style>
</head>
<body>
<!-- Sidebar -->
<div id="sidebar" class="sidebar bg-white d-flex flex-column">
<!-- LOGO -->
<div class="sidebar-header text-center py-4">
<img src="{{ asset('images/logo.png') }}" alt="Logo" class="img-fluid mb-2" style="max-height: 80px;">
</div>
<!-- MENU -->
<div class="sidebar-menu flex-grow-1">
<p class="menu-title text-muted px-3 mb-2">Menu Utama</p>
<ul class="list-unstyled px-2">
<li>
<a href="{{ route('admin.dashboard') }}"
class="d-flex align-items-center py-2 px-3 {{ request()->is('admin/dashboard') ? 'active' : '' }}">
<i class="bi bi-house-door me-2"></i> Dasbor
</a>
</li>
<li>
<a href="{{ route('admin.kategori.index') }}"
class="d-flex align-items-center py-2 px-3 {{ request()->is('admin/kategori*') ? 'active' : '' }}">
<i class="bi bi-diagram-3 me-2"></i> Kategori
</a>
</li>
<li>
<a href="{{ route('admin.fitur.index') }}"
class="d-flex align-items-center py-2 px-3 {{ request()->is('admin/fitur*') ? 'active' : '' }}">
<i class="bi bi-grid me-2"></i> Fitur
</a>
</li>
<!-- Dropdown Templat -->
<li>
<a href="#templatSubmenu" data-bs-toggle="collapse" aria-expanded="false"
class="d-flex align-items-center py-2 px-3">
<i class="bi bi-card-list me-2"></i> Templat
<i class="bi bi-chevron-down ms-auto"></i>
</a>
<ul id="templatSubmenu" class="submenu collapse list-unstyled ms-4">
<li><a href="javascript:void(0)" class="d-block py-2">Pernikahan</a></li>
<li><a href="javascript:void(0)" class="d-block py-2">Ulang Tahun</a></li>
<li><a href="javascript:void(0)" class="d-block py-2">Khitan</a></li>
</ul>
</li>
<li>
<a href="javascript:void(0)" class="d-flex align-items-center py-2 px-3">
<i class="bi bi-people me-2"></i> Pelanggan
</a>
</li>
<li>
<a href="{{ route('admin.reviews.index') }}"
class="d-flex align-items-center py-2 px-3 {{ request()->is('admin/ulasan') ? 'active' : '' }}">
<i class="bi bi-chat-dots me-2"></i> Ulasan
</a>
</li>
</ul>
<!-- MENU AKUN -->
<p class="menu-title text-muted px-3 mt-4 mb-2">Akun</p>
<ul class="list-unstyled px-2">
<li>
<a href="{{ route('admin.logout') }}"
onclick="event.preventDefault(); document.getElementById('logout-form').submit();"
class="d-flex align-items-center py-2 px-3 text-danger fw-bold">
<i class="bi bi-box-arrow-right me-2 text-danger"></i> Keluar
</a>
<form id="logout-form" action="{{ route('admin.logout') }}" method="POST" class="d-none">
@csrf
</form>
</li>
</ul>
</div>
<!-- PROFILE BOX DI PALING BAWAH -->
<div class="sidebar-bottom border-top p-3">
<div class="d-flex align-items-center">
<img src="{{ asset('default-avatar.png') }}" alt="Admin" class="rounded-circle me-2"
style="width:40px; height:40px;">
<div>
<p class="mb-0 fw-semibold">{{ auth('admin')->user()->name }}</p>
<small class="text-muted">{{ auth('admin')->user()->email }}</small>
</div>
</div>
</div>
</div>
<!-- MAIN CONTENT -->
<div class="main-content">
@yield('content')
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>