customize nova menu

This commit is contained in:
2023-11-23 16:27:14 +05:00
parent 5e425e5276
commit 83cc460638

View File

@@ -2,7 +2,18 @@
namespace App\Providers;
use App\Nova\Resources\Branch\Branch;
use App\Nova\Resources\System\Location\Province;
use App\Nova\Resources\System\Roles\Permission;
use App\Nova\Resources\System\Roles\Role;
use App\Nova\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Gate;
use Laravel\Nova\Dashboards\Main;
use Laravel\Nova\Menu\Menu;
use Laravel\Nova\Menu\MenuGroup;
use Laravel\Nova\Menu\MenuItem;
use Laravel\Nova\Menu\MenuSection;
use Laravel\Nova\Nova;
use Laravel\Nova\NovaApplicationServiceProvider;
@@ -13,10 +24,13 @@ class NovaServiceProvider extends NovaApplicationServiceProvider
*/
public function boot(): void
{
parent::boot();
Nova::withBreadcrumbs();
Nova::footer(fn () => view('vendor.nova.partials.footer')->render());
parent::boot();
$this->setupNavigation();
$this->setupUserNavigation();
}
/**
@@ -50,7 +64,7 @@ class NovaServiceProvider extends NovaApplicationServiceProvider
protected function dashboards(): array
{
return [
new \App\Nova\Dashboards\Main,
new Main,
];
}
@@ -69,4 +83,47 @@ class NovaServiceProvider extends NovaApplicationServiceProvider
{
//
}
/**
* Setup user navigation (dropdown).
*/
public function setupUserNavigation(): void
{
Nova::userMenu(function (Request $request, Menu $menu) {
$menu->prepend(
MenuItem::make(
__('My Profile'),
sprintf('/resources/users/%s', $request->user()->id)
)
);
return $menu;
});
}
/**
* Setup navigation
*/
public function setupNavigation(): void
{
Nova::mainMenu(function (Request $request) {
return [
MenuSection::dashboard(Main::class)->icon('chart-bar'),
MenuSection::make(__('System'), [
MenuGroup::make(__('User'), [
MenuItem::resource(User::class),
MenuItem::resource(Role::class),
MenuItem::resource(Permission::class),
])->collapsable(),
MenuGroup::make(__('Location'), [
MenuItem::resource(Province::class),
MenuItem::resource(Branch::class),
])->collapsable(),
])->icon('cog')->collapsable(),
];
});
}
}