view('vendor.nova.partials.footer')->render()); $this->setupNavigation(); $this->setupUserNavigation(); $this->setupUserSettings(); $this->setupAssets(); $this->setupFieldMacros(); } /** * Register the Nova routes. */ protected function routes(): void { Nova::routes() ->withAuthenticationRoutes() ->withPasswordResetRoutes() ->register(); } /** * Register the Nova gate. * * This gate determines who can access Nova in non-local environments. */ protected function gate(): void { Gate::define('viewNova', function ($user) { return $user->isSystemUser() || $user->phoneIsVerified(); }); } /** * Get the dashboards that should be listed in the Nova sidebar. */ protected function dashboards(): array { return [ new Main, ]; } /** * Get the tools that should be listed in the Nova sidebar. */ public function tools(): array { return [ LocaleSwitcher::make() ->setLocales(config('app.locales')) ->onSwitchLocale(NovaRepo::localeSwitcherSave()), BackupTool::make() ->canSee(fn () => auth()->user()->isMe()), ]; } /** * Register any application services. */ public function register(): void { // } /** * Setup navigation */ public function setupNavigation(): void { Nova::mainMenu(function (Request $request) { return [ MenuSection::dashboard(Main::class)->icon('chart-bar'), // MenuItem::resource(Test::class), MenuSection::make(__('Orders'), [ MenuItem::resource(LoanOrder::class), ])->icon('collection')->collapsable(), MenuSection::make(__('System'), [ MenuGroup::make(__('User'), [ MenuItem::resource(User::class), MenuItem::resource(Role::class), MenuItem::resource(Permission::class), ])->collapsable(), MenuGroup::make(__('Loan'), [ MenuItem::resource(LoanType::class), ])->collapsable(), MenuGroup::make(__('Location'), [ MenuItem::resource(Province::class), MenuItem::resource(Branch::class), ])->collapsable(), ])->icon('cog')->collapsable(), MenuSection::make(__('Backups')) ->path('/backups') ->icon('server') ->canSee(fn () => auth()->user()->isSuperAdmin()), ]; }); } /** * 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 user settings */ public function setupUserSettings(): void { Nova::serving(fn (ServingNova $event) => NovaRepo::serving($event)); } /** * Setup Assets */ public function setupAssets(): void { Nova::style('additional', resource_path('css/vendor/nova/css/additional.css')); } /** * Setup macros of fields */ public function setupFieldMacros(): void { Date::macro('toTurkmenFormat', function () { return $this->displayUsing(fn ($value) => $value?->format('d.m.Y')); }); } }