do not display admin menu if it has no children (#500)

This commit is contained in:
Kevin Papst
2019-01-17 01:25:00 +01:00
committed by GitHub
parent 825d31af20
commit 5d5b971f57
9 changed files with 87 additions and 96 deletions

View File

@@ -10,23 +10,48 @@
namespace App\Event;
use KevinPapst\AdminLTEBundle\Model\MenuItemModel;
use Symfony\Component\EventDispatcher\Event;
use Symfony\Component\HttpFoundation\Request;
/**
* The ConfigureAdminMenuEvent is used for populating the administration navigation.
*/
class ConfigureAdminMenuEvent extends ConfigureMenuEvent
class ConfigureAdminMenuEvent extends Event
{
public const CONFIGURE = 'app.admin_menu_configure';
/**
* This function will either return a MenuItem or null.
*
* In case this returns null, the user has not the ROLE_ADMIN.
*
* @return MenuItemModel|null
* @var Request
*/
private $request;
/**
* @var MenuItemModel
*/
private $menu;
/**
* @param Request $request
* @param MenuItemModel $menu
*/
public function __construct(Request $request, MenuItemModel $menu)
{
$this->request = $request;
$this->menu = $menu;
}
/**
* @return Request
*/
public function getRequest()
{
return $this->request;
}
/**
* @return MenuItemModel
*/
public function getAdminMenu()
{
return $this->getMenu()->getRootItem('admin');
return $this->menu;
}
}

View File

@@ -9,10 +9,51 @@
namespace App\Event;
use KevinPapst\AdminLTEBundle\Event\SidebarMenuEvent;
use Symfony\Component\EventDispatcher\Event;
use Symfony\Component\HttpFoundation\Request;
/**
* The ConfigureMainMenuEvent is used for populating the main navigation.
*/
class ConfigureMainMenuEvent extends ConfigureMenuEvent
class ConfigureMainMenuEvent extends Event
{
public const CONFIGURE = 'app.main_menu_configure';
/**
* @var Request
*/
private $request;
/**
* @var SidebarMenuEvent
*/
private $event;
/**
* @param Request $request
* @param SidebarMenuEvent $event
*/
public function __construct(
Request $request,
SidebarMenuEvent $event
) {
$this->request = $request;
$this->event = $event;
}
/**
* @return Request
*/
public function getRequest()
{
return $this->request;
}
/**
* @return SidebarMenuEvent
*/
public function getMenu()
{
return $this->event;
}
}

View File

@@ -1,58 +0,0 @@
<?php
/*
* This file is part of the Kimai time-tracking app.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace App\Event;
use KevinPapst\AdminLTEBundle\Event\SidebarMenuEvent;
use Symfony\Component\EventDispatcher\Event;
use Symfony\Component\HttpFoundation\Request;
/**
* The ConfigureMenuEvent is used for populating navigations.
*/
abstract class ConfigureMenuEvent extends Event
{
/**
* @var Request
*/
private $request;
/**
* @var SidebarMenuEvent
*/
private $event;
/**
* ConfigureMenuEvent constructor.
* @param Request $request
* @param SidebarMenuEvent $event
*/
public function __construct(
Request $request,
SidebarMenuEvent $event
) {
$this->request = $request;
$this->event = $event;
}
/**
* @return Request
*/
public function getRequest()
{
return $this->request;
}
/**
* @return SidebarMenuEvent
*/
public function getMenu()
{
return $this->event;
}
}