@hasrole('admin')
    {{--
  • Menu
  • --}} @php $configs = getModuleActivationStatus(false); $admin_pages = config('admin.pages'); $admin_groups = config('admin.page_groups'); $curr_page = Route::currentRouteName(); $curr_group = $admin_pages[$curr_page]['page_group']; $auth_user = auth()->user(); $have_menu_permission = $auth_user->checkPermissionTo(\App\Skale\Entities\PermissionEntity::MENU_ACCESS_PERMISSION); $account = app(\App\Models\BusinessAccounts::class); $favorites = $account ? $account->getMenuFavoritesByUserId(auth()->id()) :[]; // group the sub menu under main menu $page_groups = []; foreach ($admin_pages as $page_route => $page) { if (!isset($page['page_group'])) { continue; } $page['_route'] = $page_route; $page_groups[$page['page_group']][] = $page; } unset($admin_pages); $fn_showPage = function ($page) use ($configs, $have_menu_permission, &$auth_user, $admin_groups) { $showPage = !$page['hide_menu'] ; if ($showPage && $have_menu_permission ) { $pgroup = $admin_groups[$page['page_group']]; if (!isset($pgroup['permission_group']) || $pgroup['permission_group'] !== false) { $showPage = $page['permission'] ? $auth_user->checkPermissionTo($page['permission']) : false; } } if($showPage && is_array($page['module']) && !empty($page['module'])){ $found = false; foreach($page['module'] as $grp_module) { if($found = $grp_module && $configs[$grp_module]){ break; } } $showPage = $found; } if($showPage && $page['auth']){ $showPage = isAdminPageViewable($page); } return $showPage; }; @endphp @foreach( $admin_groups as $group_name => $group) @php $showGroup = true; if(is_array($group['module']) && !empty($group['module'])){ $found = false; foreach($group['module'] as $grp_module) { if($configs[$grp_module]){ $found = true; break; } } $showGroup = $found; } if($showGroup && $group['auth']){ $showGroup = $auth_user->hasRole($group['auth']); } $moreThanOnePage = -1; if ($showGroup && $page_groups[$group_name]) { foreach ($page_groups[$group_name] as $page) { if($fn_showPage($page)){ if ($moreThanOnePage++ > -1) break; } } } if (!$showGroup) { continue; } reset($page_groups[$group_name]); @endphp @if(!$moreThanOnePage) @foreach($page_groups[$group_name] as $page) @if($fn_showPage($page))
  • {{ $page['title'] }} @if($page['is_pinable']) {{ $favorites[$page_route] ? 'Unpin' : 'Pin' }} @endif

  • @endif @endforeach @else @php $menu_open =true; $is_navtree_open = false; @endphp @foreach($page_groups[$group_name] as $page) @php $page_route = $page['_route']; $is_show_page = $fn_showPage($page); @endphp @if($is_show_page && $menu_open) @php $menu_open=false; $is_navtree_open = true; @endphp
  • {{ $group['title'] }}

      @endif @if( $is_show_page )
    • {{ $page['title'] }}

      @if($page['is_pinable']) {{ $favorites[$page_route] ? 'Unpin' : 'Pin' }} @endif
    • @endif @if($loop->last) @if($is_navtree_open && !($is_navtree_open = false))
    @endif @if($menu_open)
  • @endif @endif @endforeach @endif @endforeach
@endhasrole