2025-11-06 17:09:52 +05:30
|
|
|
<!DOCTYPE html>
|
|
|
|
|
<html lang="en">
|
|
|
|
|
<head>
|
2025-11-11 14:51:35 +05:30
|
|
|
<meta charset="UTF-8" />
|
2025-11-06 17:09:52 +05:30
|
|
|
<title>Admin Panel</title>
|
2025-11-11 14:51:35 +05:30
|
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" />
|
|
|
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css" rel="stylesheet" />
|
2025-11-18 14:35:58 +05:30
|
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css">
|
2025-11-26 23:07:12 +05:30
|
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
|
|
|
|
|
2025-11-18 14:35:58 +05:30
|
|
|
|
2025-11-06 17:09:52 +05:30
|
|
|
<style>
|
|
|
|
|
body {
|
2025-11-11 14:51:35 +05:30
|
|
|
margin: 0;
|
2025-11-06 17:09:52 +05:30
|
|
|
min-height: 100vh;
|
2025-11-11 14:51:35 +05:30
|
|
|
background: #f3f8ff;
|
|
|
|
|
font-family: 'Inter', Arial, sans-serif;
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: row;
|
2025-12-03 11:09:12 +05:30
|
|
|
transition: all 0.3s ease-in-out;
|
2025-11-06 17:09:52 +05:30
|
|
|
}
|
2025-11-11 14:51:35 +05:30
|
|
|
|
|
|
|
|
/* ✨ Sidebar Glass + Animated Highlight Effect */
|
2025-11-06 17:09:52 +05:30
|
|
|
.sidebar {
|
2025-11-15 10:22:05 +05:30
|
|
|
width: 200px;
|
2025-11-11 14:51:35 +05:30
|
|
|
height: 100vh;
|
|
|
|
|
background: linear-gradient(180deg, rgba(255, 255, 255, 0.9), rgba(232, 240, 255, 0.95)) !important;
|
|
|
|
|
box-shadow: 2px 0 25px rgba(0, 0, 0, 0.08);
|
|
|
|
|
backdrop-filter: blur(8px);
|
|
|
|
|
border-right: 1px solid rgba(180, 200, 255, 0.3);
|
|
|
|
|
z-index: 200;
|
|
|
|
|
padding-top: 8px;
|
2025-11-06 17:09:52 +05:30
|
|
|
flex-shrink: 0;
|
2025-11-11 14:51:35 +05:30
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
transition: all 0.3s ease-in-out;
|
2025-11-15 10:22:05 +05:30
|
|
|
position: fixed;
|
|
|
|
|
top: 0;
|
|
|
|
|
left: 0;
|
2025-12-03 11:09:12 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Sidebar collapsed state */
|
|
|
|
|
.sidebar.collapsed {
|
|
|
|
|
transform: translateX(-100%);
|
|
|
|
|
opacity: 0;
|
|
|
|
|
visibility: hidden;
|
2025-11-06 17:09:52 +05:30
|
|
|
}
|
2025-11-11 14:51:35 +05:30
|
|
|
|
2025-11-06 17:09:52 +05:30
|
|
|
.sidebar .logo {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
2025-11-11 14:51:35 +05:30
|
|
|
justify-content: flex-start;
|
|
|
|
|
padding: 6px 0 6px 10px;
|
|
|
|
|
margin-bottom: 10px;
|
|
|
|
|
border-bottom: 1px solid rgba(0, 0, 0, 0.05);
|
2025-11-06 17:09:52 +05:30
|
|
|
}
|
2025-11-11 14:51:35 +05:30
|
|
|
|
2025-11-06 17:09:52 +05:30
|
|
|
.sidebar .logo img {
|
2025-11-11 14:51:35 +05:30
|
|
|
height: 30px;
|
|
|
|
|
width: auto;
|
|
|
|
|
margin-right: 6px;
|
2025-11-06 17:09:52 +05:30
|
|
|
}
|
2025-11-11 14:51:35 +05:30
|
|
|
|
|
|
|
|
.sidebar .word {
|
|
|
|
|
color: #800000; font-size: 13px; line-height: 1.24;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 🔥 Sidebar Links */
|
2025-11-06 17:09:52 +05:30
|
|
|
.sidebar a {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
2025-11-11 14:51:35 +05:30
|
|
|
color: #2b5cb6 !important;
|
2025-11-06 17:09:52 +05:30
|
|
|
text-decoration: none;
|
2025-11-13 13:12:18 +05:30
|
|
|
padding: 11px 13px;
|
2025-11-11 14:51:35 +05:30
|
|
|
font-size: 0.97rem;
|
|
|
|
|
border-radius: 12px;
|
2025-11-13 13:12:18 +05:30
|
|
|
margin: 10px 10px 0 10px;
|
2025-11-11 14:51:35 +05:30
|
|
|
font-weight: 500;
|
|
|
|
|
position: relative;
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
transition: all 0.25s ease;
|
|
|
|
|
z-index: 0;
|
2025-11-06 17:09:52 +05:30
|
|
|
}
|
2025-11-11 14:51:35 +05:30
|
|
|
|
|
|
|
|
/* Background Animation */
|
|
|
|
|
.sidebar a::before {
|
|
|
|
|
content: "";
|
|
|
|
|
position: absolute;
|
|
|
|
|
left: -100%;
|
|
|
|
|
top: 0;
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 100%;
|
|
|
|
|
background: linear-gradient(90deg, #a8c0ff, #3f2b96);
|
|
|
|
|
opacity: 0;
|
|
|
|
|
transition: all 0.4s ease;
|
|
|
|
|
border-radius: 12px;
|
|
|
|
|
z-index: -1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.sidebar a:hover::before {
|
|
|
|
|
left: 0;
|
|
|
|
|
opacity: 0.12;
|
2025-11-06 17:09:52 +05:30
|
|
|
}
|
2025-11-11 14:51:35 +05:30
|
|
|
|
|
|
|
|
.sidebar a:hover {
|
|
|
|
|
transform: translateX(6px);
|
|
|
|
|
color: #1258e0 !important;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Icon bounce effect */
|
2025-11-06 17:09:52 +05:30
|
|
|
.sidebar a i {
|
2025-11-11 14:51:35 +05:30
|
|
|
margin-right: 8px;
|
2025-11-06 17:09:52 +05:30
|
|
|
font-size: 1.1rem;
|
2025-11-11 14:51:35 +05:30
|
|
|
transition: transform 0.2s, color 0.2s;
|
2025-11-06 17:09:52 +05:30
|
|
|
}
|
2025-11-11 14:51:35 +05:30
|
|
|
|
|
|
|
|
.sidebar a:hover i {
|
|
|
|
|
transform: scale(1.1);
|
|
|
|
|
color: #1258e0 !important;
|
2025-11-06 17:09:52 +05:30
|
|
|
}
|
2025-11-11 14:51:35 +05:30
|
|
|
|
|
|
|
|
/* Active link glow effect */
|
|
|
|
|
.sidebar a.active {
|
|
|
|
|
background: linear-gradient(90deg, rgba(80,120,255,0.15), rgba(120,180,255,0.2));
|
|
|
|
|
color: #1258e0 !important;
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
box-shadow: 0 0 8px rgba(80,120,255,0.15);
|
|
|
|
|
border: 1px solid rgba(160, 190, 255, 0.4);
|
|
|
|
|
transform: scale(1.03);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.sidebar a.active::before {
|
|
|
|
|
left: 0;
|
|
|
|
|
opacity: 0.2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Logout Button */
|
|
|
|
|
.sidebar form button {
|
|
|
|
|
border-radius: 12px;
|
|
|
|
|
margin-top: 12px;
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
transition: 0.3s ease;
|
2025-11-15 10:22:05 +05:30
|
|
|
margin-bottom: 20px;
|
2025-11-11 14:51:35 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.sidebar form button:hover {
|
|
|
|
|
box-shadow: 0 3px 10px rgba(255, 0, 0, 0.3);
|
|
|
|
|
transform: scale(1.03);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 🧭 Main Content */
|
2025-11-06 17:09:52 +05:30
|
|
|
.main-content {
|
|
|
|
|
flex-grow: 1;
|
2025-11-11 14:51:35 +05:30
|
|
|
min-height: 100vh;
|
|
|
|
|
background: #f3f8ff;
|
2025-11-06 17:09:52 +05:30
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
2025-11-11 14:51:35 +05:30
|
|
|
width: calc(100vw - 190px);
|
2025-11-15 10:22:05 +05:30
|
|
|
margin-left: 190px;
|
2025-12-03 11:09:12 +05:30
|
|
|
transition: all 0.3s ease-in-out;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Main content when sidebar is collapsed */
|
|
|
|
|
.main-content.expanded {
|
|
|
|
|
margin-left: 0;
|
|
|
|
|
width: 100vw;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Header hamburger button */
|
|
|
|
|
.header-toggle {
|
|
|
|
|
background: transparent;
|
|
|
|
|
border: none;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
padding: 8px;
|
|
|
|
|
margin-right: 15px;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
transition: transform 0.3s ease;
|
|
|
|
|
width: 40px;
|
|
|
|
|
height: 40px;
|
|
|
|
|
border-radius: 8px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.header-toggle:hover {
|
|
|
|
|
transform: scale(1.1);
|
|
|
|
|
background: rgba(43, 92, 182, 0.1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.header-toggle i {
|
|
|
|
|
font-size: 1.6rem;
|
|
|
|
|
color: #2b5cb6;
|
2025-11-11 14:51:35 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
|
|
header {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
align-items: center;
|
|
|
|
|
background: #fff;
|
|
|
|
|
padding: 10px 18px !important;
|
|
|
|
|
position: relative;
|
|
|
|
|
height: 48px;
|
|
|
|
|
width: 100%;
|
|
|
|
|
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
|
2025-11-06 17:09:52 +05:30
|
|
|
}
|
2025-11-11 14:51:35 +05:30
|
|
|
|
2025-12-03 11:09:12 +05:30
|
|
|
.header-left {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-06 17:09:52 +05:30
|
|
|
.content-wrapper {
|
2025-11-25 13:14:53 +05:30
|
|
|
padding: 18px 16px 16px 16px;
|
2025-11-11 14:51:35 +05:30
|
|
|
flex-grow: 1;
|
|
|
|
|
overflow-y: auto;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.dropdown-user-profile-name {
|
|
|
|
|
font-size: 1.06rem;
|
|
|
|
|
font-weight: 500;
|
2025-11-06 17:09:52 +05:30
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
<div class="sidebar">
|
|
|
|
|
<div class="logo">
|
2025-11-11 14:51:35 +05:30
|
|
|
<img src="{{ asset('images/kent_logo2.png') }}" alt="Kent Logo">
|
|
|
|
|
<div class="word"><strong>KENT</strong><br /><small>International Pvt. Ltd.</small></div>
|
2025-11-06 17:09:52 +05:30
|
|
|
</div>
|
|
|
|
|
|
2025-12-05 17:16:02 +05:30
|
|
|
{{-- Dashboard (requires order.view) --}}
|
|
|
|
|
@can('order.view')
|
|
|
|
|
<a href="{{ route('admin.dashboard') }}" class="{{ request()->routeIs('admin.dashboard') ? 'active' : '' }}">
|
|
|
|
|
<i class="bi bi-house"></i> Dashboard
|
|
|
|
|
</a>
|
|
|
|
|
@endcan
|
|
|
|
|
|
|
|
|
|
{{-- Shipments --}}
|
|
|
|
|
@can('shipment.view')
|
|
|
|
|
<a href="{{ route('admin.shipments') }}" class="{{ request()->routeIs('admin.shipments') ? 'active' : '' }}">
|
|
|
|
|
<i class="bi bi-truck"></i> Shipments
|
|
|
|
|
</a>
|
|
|
|
|
@endcan
|
|
|
|
|
|
|
|
|
|
{{-- Invoice --}}
|
|
|
|
|
@can('invoice.view')
|
|
|
|
|
<a href="{{ route('admin.invoices.index') }}" class="{{ request()->routeIs('admin.invoices.index') ? 'active' : '' }}">
|
2025-11-17 10:33:11 +05:30
|
|
|
<i class="bi bi-receipt"></i> Invoice
|
|
|
|
|
</a>
|
2025-12-05 17:16:02 +05:30
|
|
|
@endcan
|
2025-11-17 10:33:11 +05:30
|
|
|
|
2025-12-05 17:16:02 +05:30
|
|
|
{{-- Customers --}}
|
|
|
|
|
@can('customer.view')
|
|
|
|
|
<a href="{{ route('admin.customers.index') }}" class="{{ request()->routeIs('admin.customers.index') ? 'active' : '' }}">
|
2025-11-18 10:01:59 +05:30
|
|
|
<i class="bi bi-people"></i> Customers
|
|
|
|
|
</a>
|
2025-12-05 17:16:02 +05:30
|
|
|
@endcan
|
2025-11-18 10:01:59 +05:30
|
|
|
|
2025-12-05 17:16:02 +05:30
|
|
|
{{-- Reports --}}
|
|
|
|
|
@can('report.view')
|
|
|
|
|
<a href="{{ route('admin.reports') }}" class="{{ request()->routeIs('admin.reports') ? 'active' : '' }}">
|
2025-11-21 16:07:43 +05:30
|
|
|
<i class="bi bi-graph-up"></i> Reports
|
|
|
|
|
</a>
|
2025-12-05 17:16:02 +05:30
|
|
|
@endcan
|
|
|
|
|
|
|
|
|
|
{{-- Chat Support (NO PERMISSION REQUIRED) --}}
|
|
|
|
|
<a href="{{ route('admin.chat_support') }}" class="{{ request()->routeIs('admin.chat_support') ? 'active' : '' }}">
|
|
|
|
|
<i class="bi bi-chat-dots"></i> Chat Support
|
|
|
|
|
</a>
|
|
|
|
|
|
|
|
|
|
{{-- Orders --}}
|
|
|
|
|
@can('orders.view')
|
|
|
|
|
<a href="{{ route('admin.orders') }}" class="{{ request()->routeIs('admin.orders') ? 'active' : '' }}">
|
|
|
|
|
<i class="bi bi-bag"></i> Orders
|
|
|
|
|
</a>
|
|
|
|
|
@endcan
|
2025-11-21 16:07:43 +05:30
|
|
|
|
2025-12-05 17:16:02 +05:30
|
|
|
{{-- Requests --}}
|
|
|
|
|
@can('request.view')
|
|
|
|
|
<a href="{{ route('admin.requests') }}" class="{{ request()->routeIs('admin.requests') ? 'active' : '' }}">
|
|
|
|
|
<i class="bi bi-envelope"></i> Requests
|
|
|
|
|
</a>
|
|
|
|
|
@endcan
|
2025-11-18 10:01:59 +05:30
|
|
|
|
2025-12-05 17:16:02 +05:30
|
|
|
{{-- Profile Update Requests --}}
|
|
|
|
|
@can('request.update_profile')
|
2025-12-02 18:07:15 +05:30
|
|
|
<a href="{{ route('admin.profile.requests') }}">
|
2025-12-05 17:16:02 +05:30
|
|
|
<i class="bi bi-person-lines-fill"></i> Profile Update Requests
|
|
|
|
|
</a>
|
|
|
|
|
@endcan
|
|
|
|
|
|
|
|
|
|
{{-- Staff (NO PERMISSION REQUIRED) --}}
|
|
|
|
|
<a href="{{ route('admin.staff.index') }}" class="{{ request()->routeIs('admin.staff.*') ? 'active' : '' }}">
|
|
|
|
|
<i class="bi bi-person-badge"></i> Staff
|
2025-12-02 18:07:15 +05:30
|
|
|
</a>
|
|
|
|
|
|
2025-12-05 17:16:02 +05:30
|
|
|
{{-- Account Section --}}
|
|
|
|
|
@can('account.view')
|
|
|
|
|
<a href="{{ route('admin.account') }}" class="{{ request()->routeIs('admin.account') ? 'active' : '' }}">
|
|
|
|
|
<i class="bi bi-gear"></i> Account
|
|
|
|
|
</a>
|
|
|
|
|
@endcan
|
|
|
|
|
|
|
|
|
|
{{-- Mark List --}}
|
|
|
|
|
@can('mark_list.view')
|
|
|
|
|
<a href="{{ route('admin.marklist.index') }}" class="{{ request()->routeIs('admin.marklist.index') ? 'active' : '' }}">
|
|
|
|
|
<i class="bi bi-list-check"></i> Mark List
|
|
|
|
|
</a>
|
|
|
|
|
@endcan
|
|
|
|
|
|
2025-11-06 17:09:52 +05:30
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="main-content">
|
|
|
|
|
<header>
|
2025-12-03 11:09:12 +05:30
|
|
|
<div class="header-left">
|
|
|
|
|
<button class="header-toggle" id="headerToggle">
|
|
|
|
|
<i class="bi bi-list"></i>
|
|
|
|
|
</button>
|
|
|
|
|
<h5 class="mb-0">@yield('page-title')</h5>
|
|
|
|
|
</div>
|
2025-11-06 17:09:52 +05:30
|
|
|
<div class="d-flex align-items-center gap-3">
|
|
|
|
|
<i class="bi bi-bell position-relative fs-4">
|
|
|
|
|
<span class="position-absolute top-0 start-100 translate-middle badge rounded-pill bg-danger">2</span>
|
|
|
|
|
</i>
|
|
|
|
|
<div class="dropdown">
|
|
|
|
|
<a href="#" class="d-flex align-items-center text-decoration-none dropdown-toggle" data-bs-toggle="dropdown">
|
|
|
|
|
<img src="https://i.pravatar.cc/40" class="rounded-circle me-2" width="35" height="35">
|
2025-11-11 14:51:35 +05:30
|
|
|
<span class="dropdown-user-profile-name">{{ Auth::guard('admin')->user()->name ?? 'User' }}</span>
|
2025-11-06 17:09:52 +05:30
|
|
|
</a>
|
|
|
|
|
<ul class="dropdown-menu dropdown-menu-end">
|
2025-11-11 14:51:35 +05:30
|
|
|
<li><a class="dropdown-item" href="{{ route('admin.profile') }}"><i class="bi bi-person-circle me-2"></i>Profile</a></li>
|
2025-11-06 17:09:52 +05:30
|
|
|
<li><hr class="dropdown-divider"></li>
|
|
|
|
|
<li>
|
|
|
|
|
<form method="POST" action="{{ route('admin.logout') }}">
|
|
|
|
|
@csrf
|
2025-11-11 14:51:35 +05:30
|
|
|
<button class="dropdown-item" type="submit"><i class="bi bi-box-arrow-right me-2"></i>Logout</button>
|
2025-11-06 17:09:52 +05:30
|
|
|
</form>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</header>
|
|
|
|
|
<div class="content-wrapper">
|
|
|
|
|
@yield('content')
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2025-11-26 23:07:12 +05:30
|
|
|
|
2025-11-06 17:09:52 +05:30
|
|
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
|
2025-12-03 11:09:12 +05:30
|
|
|
<script>
|
|
|
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
|
|
|
const headerToggle = document.getElementById('headerToggle');
|
|
|
|
|
const sidebar = document.querySelector('.sidebar');
|
|
|
|
|
const mainContent = document.querySelector('.main-content');
|
|
|
|
|
|
|
|
|
|
// Function to toggle sidebar
|
|
|
|
|
function toggleSidebar() {
|
|
|
|
|
sidebar.classList.toggle('collapsed');
|
|
|
|
|
mainContent.classList.toggle('expanded');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Header toggle button click event
|
|
|
|
|
if (headerToggle) {
|
|
|
|
|
headerToggle.addEventListener('click', toggleSidebar);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
</script>
|
2025-11-06 17:09:52 +05:30
|
|
|
</body>
|
2025-12-03 11:09:12 +05:30
|
|
|
</html>
|