160 lines
5.4 KiB
PHP
160 lines
5.4 KiB
PHP
<?php
|
|
|
|
namespace App\Menu;
|
|
|
|
use Knp\Menu\ItemInterface;
|
|
|
|
class AdminMenuBuilder extends AbstractMenuBuilder
|
|
{
|
|
private function getMainMenuItems(): array
|
|
{
|
|
return [
|
|
[
|
|
'route' => 'app_admin_index',
|
|
'title' => 'Dashboard',
|
|
'icon' => 'lab',
|
|
],
|
|
[
|
|
'route' => 'app_admin_assignment_index',
|
|
'title' => 'Einsatzübersicht',
|
|
'icon' => 'calendar',
|
|
],
|
|
[
|
|
'route' => 'app_admin_application_index',
|
|
'title' => 'Bewerbungsübersicht',
|
|
'icon' => 'mail',
|
|
],
|
|
[
|
|
'route' => 'app_admin_document_index',
|
|
'title' => 'Dokumentenübersicht',
|
|
'icon' => 'document',
|
|
],
|
|
[
|
|
'route' => 'app_admin_teamer_index',
|
|
'title' => 'Teamerübersicht',
|
|
'icon' => 'users',
|
|
'hideChildren' => true,
|
|
'children' => $this->getTeamerMenuItems(),
|
|
],
|
|
[
|
|
'route' => false,
|
|
'title' => 'Einstellungen',
|
|
'icon' => 'settings',
|
|
'children' => [
|
|
[
|
|
'route' => 'app_admin_system_availability_index',
|
|
'title' => 'Verfügbarkeiten',
|
|
],
|
|
[
|
|
'route' => 'app_admin_system_fee_index',
|
|
'title' => 'Honorare',
|
|
],
|
|
[
|
|
'route' => 'app_admin_system_training_index',
|
|
'title' => 'Fortbildungen',
|
|
],
|
|
[
|
|
'route' => 'app_admin_system_job_profile_index',
|
|
'title' => 'Job-Profile',
|
|
'children' => [
|
|
[
|
|
'route' => 'app_admin_system_job_profile_create',
|
|
'title' => 'Job-Profil anlegen',
|
|
],
|
|
[
|
|
'route' => 'app_admin_system_job_profile_edit',
|
|
'routeParameters' => $this->getDefaultRouteParameters(),
|
|
'title' => 'Job-Profil bearbeiten',
|
|
],
|
|
],
|
|
],
|
|
[
|
|
'route' => 'app_admin_system_faq_index',
|
|
'title' => 'FAQ',
|
|
'children' => [
|
|
[
|
|
'route' => 'app_admin_system_faq_create',
|
|
'title' => 'FAQ-Eintrag anlegen',
|
|
],
|
|
[
|
|
'route' => 'app_admin_system_faq_edit',
|
|
'routeParameters' => $this->getDefaultRouteParameters(),
|
|
'title' => 'FAQ-Eintrag bearbeiten',
|
|
],
|
|
],
|
|
],
|
|
[
|
|
'route' => 'app_admin_system_document_index',
|
|
'title' => 'Dokumente',
|
|
],
|
|
[
|
|
'route' => 'app_admin_system_contact_index',
|
|
'title' => 'Ansprechpartner',
|
|
],
|
|
],
|
|
],
|
|
];
|
|
}
|
|
|
|
private function getTeamerMenuItems(): array
|
|
{
|
|
return [
|
|
[
|
|
'route' => 'app_admin_teamer_profile',
|
|
'title' => 'Stammdaten & Foto',
|
|
'routeParameters' => $this->getDefaultRouteParameters('uuid'),
|
|
],
|
|
[
|
|
'route' => 'app_admin_teamer_skills',
|
|
'title' => 'Jobprofile & Skills',
|
|
'routeParameters' => $this->getDefaultRouteParameters('uuid'),
|
|
],
|
|
[
|
|
'route' => 'app_admin_teamer_availability',
|
|
'title' => 'Verfügbarkeit',
|
|
'routeParameters' => $this->getDefaultRouteParameters('uuid'),
|
|
],
|
|
[
|
|
'route' => 'app_admin_teamer_crm_selections',
|
|
'title' => 'Selektionsmerkmale',
|
|
'routeParameters' => $this->getDefaultRouteParameters('uuid'),
|
|
],
|
|
[
|
|
'route' => 'app_admin_teamer_recent_assignments',
|
|
'title' => 'Vergangene Einsätze',
|
|
'routeParameters' => $this->getDefaultRouteParameters('uuid'),
|
|
],
|
|
];
|
|
}
|
|
|
|
public function createMainMenu(array $options): ItemInterface
|
|
{
|
|
$menu = $this->createMenu($this->getMainMenuItems());
|
|
|
|
$this->addDivider($menu);
|
|
|
|
$this->addTeamerItem($menu);
|
|
|
|
$this->addDivider($menu);
|
|
|
|
$this->addLogoutItem($menu);
|
|
|
|
return $menu;
|
|
}
|
|
|
|
public function createTeamerMenu(array $options): ItemInterface
|
|
{
|
|
$menu = $this->createMenu($this->getTeamerMenuItems());
|
|
|
|
$this->addDivider($menu);
|
|
|
|
$menu->addChild('zurück zur Übersicht', [
|
|
'route' => 'app_admin_teamer_index',
|
|
'extras' => [
|
|
'icon' => 'arrow-left',
|
|
],
|
|
]);
|
|
|
|
return $menu;
|
|
}
|
|
} |