icingaweb2/library/Icinga/Web/Navigation/DashboardPane.php

98 lines
1.8 KiB
PHP
Raw Normal View History

2015-09-07 09:06:40 +02:00
<?php
/* Icinga Web 2 | (c) 2015 Icinga Development Team | GPLv2+ */
2015-09-07 09:06:40 +02:00
namespace Icinga\Web\Navigation;
use Icinga\Web\Url;
/**
* A dashboard pane
*/
class DashboardPane extends NavigationItem
{
/**
* This pane's dashlets
*
* @var array
*/
protected $dashlets;
protected $disabled;
2015-09-07 09:06:40 +02:00
/**
* Set this pane's dashlets
*
* @param array $dashlets
*
* @return $this
*/
public function setDashlets(array $dashlets)
{
$this->dashlets = $dashlets;
return $this;
}
/**
* Return this pane's dashlets
*
* @param bool $ordered Whether to order the dashlets first
*
2015-09-07 09:06:40 +02:00
* @return array
*/
public function getDashlets($ordered = true)
2015-09-07 09:06:40 +02:00
{
if ($this->dashlets === null) {
return array();
}
if ($ordered) {
$dashlets = $this->dashlets;
ksort($dashlets);
return $dashlets;
}
return $this->dashlets;
2015-09-07 09:06:40 +02:00
}
/**
* {@inheritdoc}
*/
public function init()
{
$this->setUrl(Url::fromPath('dashboard', array('pane' => $this->getName())));
}
/**
* {@inheritdoc}
*/
public function merge(NavigationItem $item)
{
parent::merge($item);
$this->setDashlets(array_merge(
$this->getDashlets(false),
$item->getDashlets(false)
));
}
/**
* Set disabled state for pane
*
* @param bool $disabled
*/
public function setDisabled($disabled = true)
{
$this->disabled = (bool) $disabled;
}
/**
* Get disabled state for pane
*
* @return bool
*/
public function getDisabled()
{
return $this->disabled;
}
2015-09-07 09:06:40 +02:00
}