feat: remove easy admin bundle, adopt admin theme

This commit is contained in:
Björn Fromme
2026-06-22 08:59:47 +02:00
parent 52ee6b26b1
commit 2fc7ffe458
52 changed files with 1947 additions and 690 deletions
+133
View File
@@ -0,0 +1,133 @@
<?php
namespace App\Menu;
use Knp\Menu\FactoryInterface;
use Knp\Menu\ItemInterface;
use Symfony\Bundle\SecurityBundle\Security;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\Uid\Uuid;
use Symfony\Contracts\Translation\TranslatorInterface;
abstract class AbstractMenuBuilder
{
public function __construct(
protected FactoryInterface $factory,
protected Security $security,
protected RequestStack $requestStack,
protected TranslatorInterface $translator,
) {
}
protected function createRootElement(): ItemInterface
{
return $this->factory->createItem('root');
}
protected function getDefaultRouteParameters(string $parameter = 'id', string $default = '0'): array
{
$request = $this->requestStack->getMainRequest();
return [
$parameter => $request->get($parameter, $default),
'r' => $request->get('r'),
];
}
protected function addAdminItem(ItemInterface $menu): void
{
if ($this->security->isGranted('ROLE_ADMIN')) {
$this->addDivider($menu);
$menu->addChild('zum Adminbereich', [
'route' => 'app_admin_index',
'linkAttributes' => [
'title' => 'zum Adminbereich',
],
'extras' => [
'icon' => 'user',
],
]);
}
}
protected function addManagerItem(ItemInterface $menu): void
{
if ($this->security->isGranted('ROLE_MANAGER')) {
$this->addDivider($menu);
$menu->addChild('zum Managementbereich', [
'route' => 'app_manager_index',
'linkAttributes' => [
'title' => 'zum Managementbereich',
],
'extras' => [
'icon' => 'user',
],
]);
}
}
protected function addTeamerItem(ItemInterface $menu): void
{
if ($this->security->isGranted('ROLE_TEAMER')) {
$this->addDivider($menu);
$menu->addChild('zum Teambereich', [
'route' => 'app_teamer_index',
'linkAttributes' => [
'title' => 'zum Teambereich',
],
'extras' => [
'icon' => 'user',
],
]);
}
}
protected function addHouseManagerItem(ItemInterface $menu): void
{
if ($this->security->isGranted('ROLE_HOUSE_MANAGER')) {
$this->addDivider($menu);
$menu->addChild('zum Hausleitungsbereich', [
'route' => 'app_house_manager_index',
'linkAttributes' => [
'title' => 'zum Hausleitungsbereich',
],
'extras' => [
'icon' => 'user',
],
]);
}
}
protected function addLogoutItem(ItemInterface $menu): void
{
$this->addDivider($menu);
$menu->addChild('MyE&P', [
'route' => 'app_account',
'linkAttributes' => [
'title' => 'zu MyE&P',
],
'extras' => [
'icon' => 'logout',
],
]);
$menu->addChild('Logout', [
'route' => 'app_logout',
'linkAttributes' => [
'title' => 'Logout',
],
'extras' => [
'icon' => 'logout',
],
]);
}
protected function addDivider(ItemInterface $menu): void
{
$menu->addChild(Uuid::v4(), [
'extras' => [
'divider' => true,
],
]);
}
}
+54
View File
@@ -0,0 +1,54 @@
<?php
namespace App\Menu;
use Knp\Menu\ItemInterface;
class AdminMenuBuilder extends AbstractMenuBuilder
{
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',
],
]);
$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',
],
]);
$this->addLogoutItem($menu);
return $menu;
}
}