route('admin.dashboard', trans('admin/mainMenu.dashboard'), [], 10, ['icon' => 'fa fa-fw fa-dashboard']); /** * Content pages * Submenus can be registered later */ $contentModules = app(Module::class)->getContentModules(); if ($user->can('manage', Content::class) && !$contentModules->isEmpty()) { $menu->dropdown(trans('admin/mainMenu.contentPages'), function ($sub) { $sub->route('content.order', trans('admin/mainMenu.contentOrder'), [], 999, ['icon' => 'fa fa-fw fa-reorder']); $sub->route('content.overview', trans('admin/mainMenu.contentPageOverview'), [], 10000, ['icon' => 'fa fa-fw fa-list']); }, 20, ['icon' => 'fa fa-fw fa-database']); } /** * File manager */ if ($user->can('manage', File::class)) { $menu->route('upload.overview', trans('admin/mainMenu.fileManager'), [], 40, ['icon' => 'fa fa-fw fa-folder']); } /** * Widgets and widget areas */ if ($user->can('manage', Widget::class) || $user->can('manage', WidgetArea::class)) { $menu->dropdown(trans('admin/mainMenu.widgets'), function ($sub) use ($user) { // create list of all widget types $widgets = WidgetTypes::getWithTranslations(); if (!empty($widgets) && $user->can('create', Widget::class)) { $sub->dropdown(trans('admin/mainMenu.newWidget'), function ($sub) use ($widgets) { $i = 1; foreach ($widgets as $type => $name) { $sub->route('widgets.new', $name, ['type' => $type], $i++); } }, 10, ['icon' => 'fa fa-fw fa-plus']); } if ($user->can('manage', Widget::class)) { $sub->route('widgets.overview', trans('admin/mainMenu.widgetsOverview'), [], 20, ['icon' => 'fa fa-fw fa-list']); } // menu for widget areas if ($user->can('manage', WidgetArea::class)) { $sub->dropdown(trans('admin/mainMenu.widgetAreas'), function ($sub) use ($user) { if ($user->can('create', WidgetArea::class)) { $sub->route('widgetareas.new', trans('admin/mainMenu.newWidgetArea'), [], 1, ['icon' => 'fa fa-fw fa-plus']); } $sub->route('widgetareas.overview', trans('admin/mainMenu.widgetAreaOverview'), [], 2, ['icon' => 'fa fa-fw fa-list']); }, 50, ['icon' => 'fa fa-fw fa-object-group']); } }, 50, ['icon' => 'fa fa-fw fa-puzzle-piece']); } /** * Divide system entries and other links in menu */ $menu->addDivider(9999); $menu->dropdown(trans('admin/mainMenu.system'), function ($sub) use ($user) { /** * User management */ if ($user->can('manage', User::class)) { $sub->dropdown(trans('admin/mainMenu.userManagement'), function ($sub) use ($user) { if ($user->can('create', User::class)) { $sub->route('users.new', trans('admin/mainMenu.newUser'), [], 10, ['icon' => 'fa fa-fw fa-user-plus']); } $sub->route('users.overview', trans('admin/mainMenu.usersOverview'), [], 30, ['icon' => 'fa fa-fw fa-users']); }, 20, ['icon' => 'fa fa-fw fa-users']); } /** * Templates */ if ($user->can('manage', Template::class)) { $sub->route('templates.index', trans('admin/mainMenu.templates'), [], 70, ['icon' => 'fa fa-fw fa-file-code-o']); } if ($user->can('manage', ActionLog::class)) { $sub->route('log.overview', trans('admin/mainMenu.actionLog'), [], 70, ['icon' => 'fa fa-fw fa-history']); } if ($user->can('manage', Settings::class)) { $sub->route('settings.overview', trans('admin/mainMenu.settings'), [], 80, ['icon' => 'fa fa-fw fa-gear']); $sub->route('permissions.index', trans('admin/mainMenu.permissions'), [], 90, ['icon' => 'fa fa-fw fa-key']); } }, 10000, ['icon' => 'fa fa-fw fa-gears']); }); \Menu::create('topMenu', function ($menu) use ($user) { if (count(LaravelLocalization::getSupportedLocales()) > 1) { $menu->dropdown(trans(LaravelLocalization::getCurrentLocaleName()), function ($menu) use ($user) { foreach (LaravelLocalization::getSupportedLocales() as $localeCode => $properties) { $menu->url(LaravelLocalization::getLocalizedURL($localeCode), $properties['native']); } }); } if ($user->can('manage', Content::class)) { $menu->route('page.index', '', [], 10, [ 'icon' => 'fa fa-fw fa-globe', 'title' => trans('common.goToWeb'), 'target' => '_blank', 'data-toggle' => 'tooltip', 'data-placement' => 'left' ]); } }); // create menu with user profile \Menu::create('profileMenu', function ($menu) use ($user) { $menu->route('users.detail', trans('admin/userManagement.profile'), ['user' => $user], 10, ['icon' => 'fa fa-fw fa-user icon']); $menu->addDivider(999); $menu->route('logout', trans('admin/common.logout'), [], 1000, ['icon' => 'fa fa-fw fa-power-off icon']); }); } }