public function fabMenu(FactoryInterface $factory)
{
/**
* @var Journal $journal
* @var AuthorizationChecker $checker
*/
$dispatcher = $this->container->get('event_dispatcher');
$checker = $this->container->get('security.authorization_checker');
$menu = $factory->createItem('root')->setChildrenAttribute('class', 'dropdown-menu dropdown-menu-right');
$menu->addChild('dashboard', ['route' => 'dashboard', 'attributes' => array('data-toggle' => 'tooltip', 'data-placement' => 'left'), 'extras' => ['icon' => 'dashboard']]);
$journal = $this->container->get('ojs.journal_service')->getSelectedJournal();
if ($journal) {
$journalId = $journal->getId();
if ($checker->isGranted('CREATE', $journal, 'articles')) {
$menu->addChild('article.submit', ['route' => 'ojs_journal_submission_new', 'routeParameters' => ['journalId' => $journalId], 'attributes' => array('data-toggle' => 'tooltip', 'data-placement' => 'left'), 'extras' => ['icon' => 'file-text']]);
}
if ($checker->isGranted('EDIT', $journal, 'userRole')) {
$menu->addChild('title.users', ['route' => 'ojs_journal_user_index', 'routeParameters' => ['journalId' => $journalId], 'attributes' => array('data-toggle' => 'tooltip', 'data-placement' => 'left'), 'extras' => ['icon' => 'key']]);
}
if ($checker->isGranted('EDIT', $journal, 'issues')) {
$menu->addChild('title.issues', ['route' => 'ojs_journal_issue_index', 'routeParameters' => ['journalId' => $journalId], 'attributes' => array('data-toggle' => 'tooltip', 'data-placement' => 'left'), 'extras' => ['icon' => 'plug']]);
}
if ($checker->isGranted('VIEW', $journal, 'articles')) {
$menu->addChild('articles', ['route' => 'ojs_journal_submission_me', 'routeParameters' => ['journalId' => $journalId], 'attributes' => array('data-toggle' => 'tooltip', 'data-placement' => 'left'), 'extras' => ['icon' => 'file-o']]);
}
}
$menuEvent = new MenuEvent();
$menuEvent->setMenuItem($menu);
$dispatcher->dispatch(MenuEvents::FAB_MENU_INITIALIZED, $menuEvent);
return $menuEvent->getMenuItem();
}