parent
1b15048636
commit
71cb682832
|
@ -0,0 +1,135 @@
|
|||
<?php
|
||||
/* Icinga Web 2 | (c) 2018 Icinga Development Team | GPLv2+ */
|
||||
|
||||
namespace Icinga\Web;
|
||||
|
||||
use Icinga\Application\Logger;
|
||||
use Icinga\Authentication\Auth;
|
||||
use Icinga\Web\Navigation\Navigation;
|
||||
|
||||
/**
|
||||
* Main menu for Icinga Web 2
|
||||
*/
|
||||
class Menu extends Navigation
|
||||
{
|
||||
/**
|
||||
* Create the main menu
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->init();
|
||||
$this->load('menu-item');
|
||||
}
|
||||
|
||||
/**
|
||||
* Setup the main menu
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
$this->addItem('dashboard', [
|
||||
'label' => t('Dashboard'),
|
||||
'url' => 'dashboard',
|
||||
'icon' => 'dashboard',
|
||||
'priority' => 10
|
||||
]);
|
||||
$this->addItem('system', [
|
||||
'label' => t('System'),
|
||||
'icon' => 'services',
|
||||
'priority' => 700,
|
||||
'renderer' => [
|
||||
'SummaryNavigationItemRenderer',
|
||||
'state' => 'critical'
|
||||
],
|
||||
'children' => [
|
||||
'about' => [
|
||||
'icon' => 'info',
|
||||
'description' => t('Open about page'),
|
||||
'label' => t('About'),
|
||||
'url' => 'about',
|
||||
'priority' => 700
|
||||
],
|
||||
'announcements' => [
|
||||
'icon' => 'megaphone',
|
||||
'description' => t('List announcements'),
|
||||
'label' => t('Announcements'),
|
||||
'url' => 'announcements',
|
||||
'priority' => 710
|
||||
]
|
||||
]
|
||||
]);
|
||||
$this->addItem('configuration', [
|
||||
'label' => t('Configuration'),
|
||||
'icon' => 'wrench',
|
||||
'permission' => 'config/*',
|
||||
'priority' => 800,
|
||||
'children' => [
|
||||
'application' => [
|
||||
'icon' => 'wrench',
|
||||
'description' => t('Open application configuration'),
|
||||
'label' => t('Application'),
|
||||
'url' => 'config/general',
|
||||
'permission' => 'config/application/*',
|
||||
'priority' => 810
|
||||
],
|
||||
'authentication' => [
|
||||
'icon' => 'users',
|
||||
'description' => t('Open authentication configuration'),
|
||||
'label' => t('Authentication'),
|
||||
'permission' => 'config/authentication/*',
|
||||
'priority' => 830,
|
||||
'url' => 'role/list'
|
||||
],
|
||||
'navigation' => [
|
||||
'icon' => 'sitemap',
|
||||
'description' => t('Open shared navigation configuration'),
|
||||
'label' => t('Shared Navigation'),
|
||||
'url' => 'navigation/shared',
|
||||
'permission' => 'config/application/navigation',
|
||||
'priority' => 840,
|
||||
],
|
||||
'modules' => [
|
||||
'icon' => 'cubes',
|
||||
'description' => t('Open module configuration'),
|
||||
'label' => t('Modules'),
|
||||
'url' => 'config/modules',
|
||||
'permission' => 'config/modules',
|
||||
'priority' => 890
|
||||
]
|
||||
]
|
||||
]);
|
||||
$this->addItem('user', [
|
||||
'cssClass' => 'user-nav-item',
|
||||
'label' => Auth::getInstance()->getUser()->getUsername(),
|
||||
'icon' => 'user',
|
||||
'priority' => 900,
|
||||
'children' => [
|
||||
'account' => [
|
||||
'icon' => 'sliders',
|
||||
'description' => t('Open your account preferences'),
|
||||
'label' => t('My Account'),
|
||||
'priority' => 100,
|
||||
'url' => 'account'
|
||||
],
|
||||
'logout' => [
|
||||
'icon' => 'off',
|
||||
'description' => t('Log out'),
|
||||
'label' => t('Logout'),
|
||||
'priority' => 200,
|
||||
'attributes' => ['target' => '_self'],
|
||||
'url' => 'authentication/logout'
|
||||
]
|
||||
]
|
||||
]);
|
||||
|
||||
if (Logger::writesToFile()) {
|
||||
$this->getItem('system')->addChild($this->createItem('application_log', [
|
||||
'icon' => 'doc-text',
|
||||
'description' => t('Open Application Log'),
|
||||
'label' => t('Application Log'),
|
||||
'url' => 'list/applicationlog',
|
||||
'permission' => 'application/log',
|
||||
'priority' => 900
|
||||
]));
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue