fix sidebar permission user

This commit is contained in:
arifal
2025-03-10 16:33:53 +07:00
parent bf55eb228e
commit b0f15a9221
10 changed files with 190 additions and 480 deletions

View File

@@ -14,49 +14,56 @@
<div class="scrollbar" data-simplebar>
<ul class="navbar-nav" id="navbar-nav">
<li class="menu-title">Menu</li>
<li class="menu-title">Menu</li>
@php
// Fungsi rekursif untuk menampilkan menu bertingkat dengan indentasi
function renderMenu($menus, $depth = 0) {
foreach ($menus as $menu) {
$collapseId = "sidebar-" . $menu->id; // Unique ID untuk Bootstrap Collapse
$hasChildren = $menu->children->count() > 0; // Cek apakah punya anak
$marginLeft = $depth * 5; // Set jarak margin berdasarkan level
@php
function renderMenu($menus) {
foreach ($menus as $menu) {
$collapseId = "sidebar-" . $menu->id;
$hasChildren = $menu->children->count() > 0;
echo '<li class="nav-item">';
// Menu utama / anak (dengan dropdown jika punya anak)
echo '<a class="nav-link ' . ($hasChildren ? 'menu-arrow' : '') . '"
href="' . ($hasChildren ? "#$collapseId" : ($menu->url ? (Route::has($menu->url) ? route($menu->url, ['menu_id' => $menu->id]) : $menu->url . '?menu_id=' . $menu->id) : '#')) . '"
' . ($hasChildren ? 'data-bs-toggle="collapse" role="button" aria-expanded="false" aria-controls="' . $collapseId . '"' : '') . '>
<span class="nav-icon">
<iconify-icon icon="' . $menu->icon . '"></iconify-icon>
</span>
<span class="nav-text">' . $menu->name . '</span>
</a>';
// Jika menu punya anak, buat sub-menu
if ($hasChildren) {
echo '<div class="collapse" id="' . $collapseId . '">
<ul class="nav sub-navbar-nav">';
renderMenu($menu->children, $depth + 1); // Rekursi dengan level lebih dalam
echo '</ul></div>';
}
echo '</li>';
// Pastikan route tersedia dan boleh ditampilkan
$menuUrl = '#';
if ($menu->url) {
if (Route::has($menu->url)) {
$menuUrl = route($menu->url, ['menu_id' => $menu->id]);
} else {
$menuUrl = $menu->url . '?menu_id=' . $menu->id;
}
}
@endphp
@php
// Tampilkan hanya menu dengan parent_id NULL (menu utama)
renderMenu($menus->where('parent_id', null));
@endphp
echo '<li class="nav-item ' . ($hasChildren ? 'has-children' : '') . '">';
echo '<a class="nav-link ' . ($hasChildren ? 'menu-arrow' : '') . '"
href="' . ($hasChildren ? "#$collapseId" : $menuUrl) . '"
' . ($hasChildren ? 'data-bs-toggle="collapse" role="button" aria-expanded="false" aria-controls="' . $collapseId . '"' : '') . '>';
// Tampilkan ikon hanya jika tersedia
if (!empty($menu->icon)) {
echo '<span class="nav-icon">
<iconify-icon icon="' . $menu->icon . '"></iconify-icon>
</span>';
}
echo '<span class="nav-text">' . $menu->name . '</span>';
echo '</a>';
if ($hasChildren) {
echo '<div class="collapse" id="' . $collapseId . '">
<ul class="nav sub-navbar-nav">';
renderMenu($menu->children);
echo '</ul></div>';
}
echo '</li>';
}
}
@endphp
@php renderMenu($menus); @endphp
</ul>
</div>
</div>
<!-- Efek Bintang -->
<!-- Efek Bintang -->
<div class="animated-stars">
@for ($i = 0; $i < 20; $i++)