84 lines
2.4 KiB
PHP
84 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace App\Menu;
|
|
|
|
use Knp\Menu\ItemInterface;
|
|
|
|
class AdminMenuBuilder extends AbstractMenuBuilder
|
|
{
|
|
/**
|
|
* @param array<string, mixed> $options
|
|
*/
|
|
public function createMainMenu(array $options): ItemInterface
|
|
{
|
|
$menu = $this->createRootElement();
|
|
|
|
$menu->addChild('Dashboard', [
|
|
'route' => 'app_admin_dashboard',
|
|
'linkAttributes' => [
|
|
'title' => 'Dashboard',
|
|
],
|
|
'extras' => [
|
|
'icon' => 'chart',
|
|
],
|
|
]);
|
|
$menu->addChild('Buchungsentwürfe', [
|
|
'route' => 'app_admin_bookingeditdraft',
|
|
'linkAttributes' => [
|
|
'title' => 'Buchungsentwürfe',
|
|
],
|
|
'extras' => [
|
|
'icon' => 'edit',
|
|
'routes' => [['pattern' => '/^app_admin_bookingeditdraft/']],
|
|
],
|
|
]);
|
|
|
|
if ($this->security->isGranted('ROLE_GROUPS_ADMIN')) {
|
|
$menu->addChild('Gruppenbuchungen', [
|
|
'route' => 'app_admin_accommodationbooking',
|
|
'linkAttributes' => [
|
|
'title' => 'Buchungen',
|
|
],
|
|
'extras' => [
|
|
'icon' => 'list',
|
|
'routes' => [['pattern' => '/^app_admin_accommodationbooking\//']],
|
|
],
|
|
]);
|
|
$menu->addChild('Gruppenhäuser', [
|
|
'route' => 'app_admin_accommodation',
|
|
'linkAttributes' => [
|
|
'title' => 'Gruppenhäuser',
|
|
],
|
|
'extras' => [
|
|
'icon' => 'house',
|
|
'routes' => [['pattern' => '/^app_admin_accommodation\//']],
|
|
],
|
|
]);
|
|
}
|
|
|
|
$menu->addChild('Benutzer', [
|
|
'route' => 'app_admin_user',
|
|
'linkAttributes' => [
|
|
'title' => 'Benutzer',
|
|
],
|
|
'extras' => [
|
|
'icon' => 'users',
|
|
],
|
|
]);
|
|
$menu->addChild('Logs', [
|
|
'route' => 'app_admin_log',
|
|
'linkAttributes' => [
|
|
'title' => 'Logs',
|
|
],
|
|
'extras' => [
|
|
'icon' => 'list',
|
|
'routes' => [['pattern' => '/^app_admin_log/']],
|
|
],
|
|
]);
|
|
|
|
$this->addLogoutItem($menu);
|
|
|
|
return $menu;
|
|
}
|
|
}
|