178 lines
8.3 KiB
PHP
178 lines
8.3 KiB
PHP
<aside
|
|
:class="sidebarToggle ? 'translate-x-0 lg:w-[90px]' : '-translate-x-full'"
|
|
class="sidebar fixed left-0 top-0 z-9999 flex h-screen w-[290px] flex-col overflow-y-hidden border-r border-gray-200 bg-white px-5 dark:border-gray-800 dark:bg-gray-900 lg:static lg:translate-x-0"
|
|
>
|
|
<!-- SIDEBAR HEADER -->
|
|
<div
|
|
:class="sidebarToggle ? 'justify-center' : 'justify-between'"
|
|
class="flex items-center gap-2 pt-8 sidebar-header pb-7"
|
|
>
|
|
<a href="<?= base_url('admin/dashboard') ?>" class="flex items-center gap-3">
|
|
<span class="logo" :class="sidebarToggle ? 'hidden' : ''">
|
|
<img class="h-10 w-auto" src="<?= base_url('assets/images/logo/b_logo_1757803697487.png') ?>" alt="Logo Bapenda Garut" />
|
|
</span>
|
|
<img
|
|
class="logo-icon h-10 w-10 object-contain"
|
|
:class="sidebarToggle ? 'lg:block' : 'hidden'"
|
|
src="<?= base_url('assets/images/logo/b_logo_1757803697487.png') ?>"
|
|
alt="Logo"
|
|
/>
|
|
<?php
|
|
// Get site name from settings
|
|
$settingsModel = new \App\Models\SettingsModel();
|
|
$siteName = $settingsModel->getSetting('site_name', 'Bapenda Garut');
|
|
?>
|
|
<span class="site-name text-2xl font-semibold text-gray-800 dark:text-white" :class="sidebarToggle ? 'lg:hidden' : ''">
|
|
<?= esc($siteName) ?>
|
|
</span>
|
|
</a>
|
|
</div>
|
|
<!-- SIDEBAR HEADER -->
|
|
|
|
<div class="flex flex-col overflow-y-auto duration-300 ease-linear no-scrollbar">
|
|
<!-- Sidebar Menu -->
|
|
<nav>
|
|
<?php
|
|
// Get current URI segment
|
|
$uri = service('uri');
|
|
$segment1 = $uri->getSegment(1) ?? '';
|
|
$segment2 = $uri->getSegment(2) ?? '';
|
|
|
|
// Determine active menu based on URI
|
|
$activeMenu = '';
|
|
if ($segment1 === 'admin') {
|
|
if (empty($segment2) || $segment2 === 'dashboard') {
|
|
$activeMenu = 'dashboard';
|
|
} elseif ($segment2 === 'news') {
|
|
$activeMenu = 'news';
|
|
} elseif ($segment2 === 'pages') {
|
|
$activeMenu = 'pages';
|
|
} elseif ($segment2 === 'users') {
|
|
$activeMenu = 'users';
|
|
} elseif ($segment2 === 'audit-logs') {
|
|
$activeMenu = 'audit-logs';
|
|
} elseif ($segment2 === 'settings') {
|
|
$activeMenu = 'settings';
|
|
}
|
|
}
|
|
|
|
// Helper function to get active class
|
|
$getActiveClass = function($menu) use ($activeMenu) {
|
|
return $activeMenu === $menu
|
|
? 'bg-primary-50 text-primary-600 dark:bg-white/5 dark:text-primary-400'
|
|
: 'text-gray-700 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-white/5';
|
|
};
|
|
?>
|
|
<!-- Menu Group -->
|
|
<div>
|
|
<h3 class="mb-4 text-xs uppercase leading-[20px] text-gray-400">
|
|
<span class="menu-group-title" :class="sidebarToggle ? 'lg:hidden' : ''">
|
|
MENU
|
|
</span>
|
|
</h3>
|
|
|
|
<ul class="flex flex-col gap-0.5 mb-6">
|
|
<!-- Menu Item Dashboard -->
|
|
<li>
|
|
<a
|
|
href="<?= base_url('admin/dashboard') ?>"
|
|
class="menu-item group flex items-center gap-3 rounded-lg px-4 py-3 text-sm font-medium duration-300 <?= $getActiveClass('dashboard') ?>"
|
|
>
|
|
<span class="flex items-center justify-center w-6 h-6">
|
|
<i class="fe fe-home text-xl"></i>
|
|
</span>
|
|
<span class="menu-item-text" :class="sidebarToggle ? 'lg:hidden' : ''">
|
|
Dashboard
|
|
</span>
|
|
</a>
|
|
</li>
|
|
<!-- Menu Item Dashboard -->
|
|
|
|
<!-- Menu Item News -->
|
|
<li>
|
|
<a
|
|
href="<?= base_url('admin/news') ?>"
|
|
class="menu-item group flex items-center gap-3 rounded-lg px-4 py-3 text-sm font-medium duration-300 <?= $getActiveClass('news') ?>"
|
|
>
|
|
<span class="flex items-center justify-center w-6 h-6">
|
|
<i class="fe fe-file-text text-xl"></i>
|
|
</span>
|
|
<span class="menu-item-text" :class="sidebarToggle ? 'lg:hidden' : ''">
|
|
Berita
|
|
</span>
|
|
</a>
|
|
</li>
|
|
<!-- Menu Item News -->
|
|
|
|
<!-- Menu Item Pages -->
|
|
<li>
|
|
<a
|
|
href="<?= base_url('admin/pages') ?>"
|
|
class="menu-item group flex items-center gap-3 rounded-lg px-4 py-3 text-sm font-medium duration-300 <?= $getActiveClass('pages') ?>"
|
|
>
|
|
<span class="flex items-center justify-center w-6 h-6">
|
|
<i class="fe fe-file text-xl"></i>
|
|
</span>
|
|
<span class="menu-item-text" :class="sidebarToggle ? 'lg:hidden' : ''">
|
|
Halaman
|
|
</span>
|
|
</a>
|
|
</li>
|
|
<!-- Menu Item Pages -->
|
|
|
|
<?php if (session()->get('role') === 'admin'): ?>
|
|
<!-- Menu Item Users -->
|
|
<li>
|
|
<a
|
|
href="<?= base_url('admin/users') ?>"
|
|
class="menu-item group flex items-center gap-3 rounded-lg px-4 py-3 text-sm font-medium duration-300 <?= $getActiveClass('users') ?>"
|
|
>
|
|
<span class="flex items-center justify-center w-6 h-6">
|
|
<i class="fe fe-users text-xl"></i>
|
|
</span>
|
|
<span class="menu-item-text" :class="sidebarToggle ? 'lg:hidden' : ''">
|
|
Pengguna
|
|
</span>
|
|
</a>
|
|
</li>
|
|
<!-- Menu Item Users -->
|
|
|
|
<!-- Menu Item Audit Logs -->
|
|
<li>
|
|
<a
|
|
href="<?= base_url('admin/audit-logs') ?>"
|
|
class="menu-item group flex items-center gap-3 rounded-lg px-4 py-3 text-sm font-medium duration-300 <?= $getActiveClass('audit-logs') ?>"
|
|
>
|
|
<span class="flex items-center justify-center w-6 h-6">
|
|
<i class="fe fe-clipboard text-xl"></i>
|
|
</span>
|
|
<span class="menu-item-text" :class="sidebarToggle ? 'lg:hidden' : ''">
|
|
Audit Log
|
|
</span>
|
|
</a>
|
|
</li>
|
|
<!-- Menu Item Audit Logs -->
|
|
|
|
<!-- Menu Item Settings -->
|
|
<li>
|
|
<a
|
|
href="<?= base_url('admin/settings') ?>"
|
|
class="menu-item group flex items-center gap-3 rounded-lg px-4 py-3 text-sm font-medium duration-300 <?= $getActiveClass('settings') ?>"
|
|
>
|
|
<span class="flex items-center justify-center w-6 h-6">
|
|
<i class="fe fe-settings text-xl"></i>
|
|
</span>
|
|
<span class="menu-item-text" :class="sidebarToggle ? 'lg:hidden' : ''">
|
|
Pengaturan
|
|
</span>
|
|
</a>
|
|
</li>
|
|
<!-- Menu Item Settings -->
|
|
<?php endif; ?>
|
|
</ul>
|
|
</div>
|
|
</nav>
|
|
<!-- Sidebar Menu -->
|
|
</div>
|
|
</aside>
|