예제 #1
0
 /**
  * Set this item's children
  *
  * @param   array|Navigation  $children
  *
  * @return  $this
  */
 public function setChildren($children)
 {
     if (is_array($children)) {
         $children = Navigation::fromArray($children);
     } elseif (!$children instanceof Navigation) {
         throw new InvalidArgumentException('Argument $children must be of type array or Navigation');
     }
     foreach ($children as $item) {
         $item->setParent($this);
     }
     $this->children = $children;
     return $this;
 }
예제 #2
0
 /**
  * Return the app's menu
  *
  * @return  Navigation
  */
 public function getMenu()
 {
     if ($this->user !== null) {
         $menu = array('dashboard' => array('label' => t('Dashboard'), 'url' => 'dashboard', 'icon' => 'dashboard', 'priority' => 10), 'system' => array('label' => t('System'), 'icon' => 'services', 'priority' => 700, 'renderer' => array('SummaryNavigationItemRenderer', 'state' => 'critical'), 'children' => array('about' => array('label' => t('About'), 'url' => 'about', 'priority' => 701))), 'configuration' => array('label' => t('Configuration'), 'icon' => 'wrench', 'permission' => 'config/*', 'priority' => 800, 'children' => array('application' => array('label' => t('Application'), 'url' => 'config/general', 'permission' => 'config/application/*', 'priority' => 810), 'navigation' => array('label' => t('Shared Navigation'), 'url' => 'navigation/shared', 'permission' => 'config/application/navigation', 'priority' => 820), 'authentication' => array('label' => t('Authentication'), 'url' => 'config/userbackend', 'permission' => 'config/authentication/*', 'priority' => 830), 'roles' => array('label' => t('Roles'), 'url' => 'role/list', 'permission' => 'config/authentication/roles/show', 'priority' => 840), 'users' => array('label' => t('Users'), 'url' => 'user/list', 'permission' => 'config/authentication/users/show', 'priority' => 850), 'groups' => array('label' => t('Usergroups'), 'url' => 'group/list', 'permission' => 'config/authentication/groups/show', 'priority' => 860), 'modules' => array('label' => t('Modules'), 'url' => 'config/modules', 'permission' => 'config/modules', 'priority' => 890))), 'user' => array('label' => $this->user->getUsername(), 'icon' => 'user', 'priority' => 900, 'children' => array('preferences' => array('label' => t('Preferences'), 'url' => 'preference', 'priority' => 910), 'navigation' => array('label' => t('Navigation'), 'url' => 'navigation', 'priority' => 920), 'logout' => array('label' => t('Logout'), 'url' => 'authentication/logout', 'priority' => 990, 'renderer' => array('NavigationItemRenderer', 'target' => '_self')))));
         if (Logger::writesToFile()) {
             $menu['system']['children']['application_log'] = array('label' => t('Application Log'), 'url' => 'list/applicationlog', 'priority' => 710);
         }
     } else {
         $menu = array();
     }
     return Navigation::fromArray($menu)->load('menu-item');
 }
예제 #3
0
 /**
  * Create and return a new Navigation object
  *
  * @param   array   $actions    Optional array of actions to add to the returned object
  *
  * @return  Navigation
  */
 protected function createNavigation(array $actions = null)
 {
     return empty($actions) ? new Navigation() : Navigation::fromArray($actions);
 }
예제 #4
0
파일: Web.php 프로젝트: 0svald/icingaweb2
 /**
  * Return the app's menu
  *
  * @return  Navigation
  */
 public function getMenu()
 {
     if ($this->user !== null) {
         $menu = array('dashboard' => array('label' => t('Dashboard'), 'url' => 'dashboard', 'icon' => 'dashboard', 'priority' => 10), 'system' => array('label' => t('System'), 'icon' => 'services', 'priority' => 700, 'renderer' => array('SummaryNavigationItemRenderer', 'state' => 'critical'), 'children' => array('about' => array('label' => t('About'), 'url' => 'about', 'priority' => 700), 'announcements' => array('label' => t('Announcements'), 'url' => 'announcements', 'priority' => 710))), 'configuration' => array('label' => t('Configuration'), 'icon' => 'wrench', 'permission' => 'config/*', 'priority' => 800, 'children' => array('application' => array('label' => t('Application'), 'url' => 'config/general', 'permission' => 'config/application/*', 'priority' => 810), 'authentication' => array('label' => t('Authentication'), 'permission' => 'config/authentication/*', 'priority' => 830, 'url' => 'role/list'), 'navigation' => array('label' => t('Shared Navigation'), 'url' => 'navigation/shared', 'permission' => 'config/application/navigation', 'priority' => 840), 'modules' => array('label' => t('Modules'), 'url' => 'config/modules', 'permission' => 'config/modules', 'priority' => 890))), 'user' => array('cssClass' => 'user-nav-item', 'label' => $this->user->getUsername(), 'icon' => 'user', 'priority' => 900, 'children' => array('account' => array('label' => t('My Account'), 'priority' => 100, 'url' => 'account'), 'logout' => array('label' => t('Logout'), 'priority' => 200, 'attributes' => array('target' => '_self'), 'url' => 'authentication/logout'))));
         if (Logger::writesToFile()) {
             $menu['system']['children']['application_log'] = array('label' => t('Application Log'), 'url' => 'list/applicationlog', 'permission' => 'application/log', 'priority' => 900);
         }
     } else {
         $menu = array();
     }
     return Navigation::fromArray($menu)->load('menu-item');
 }
예제 #5
0
 /**
  * Return this module's menu
  *
  * @return  Navigation
  */
 public function getMenu()
 {
     $this->launchConfigScript();
     return Navigation::fromArray($this->createMenu($this->menuItems));
 }