mirror of
https://github.com/Icinga/icingaweb2.git
synced 2025-09-26 11:19:14 +02:00
Module: Revert changed and removed legacy codes
This commit is contained in:
parent
ac1534ab0d
commit
c4d7090dd2
58
library/Icinga/Application/Modules/DashletContainer.php
Normal file
58
library/Icinga/Application/Modules/DashletContainer.php
Normal file
@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
/* Icinga Web 2 | (c) 2022 Icinga GmbH | GPLv2+ */
|
||||
|
||||
namespace Icinga\Application\Modules;
|
||||
|
||||
use ipl\Web\Url;
|
||||
|
||||
/**
|
||||
* Container for module dashlets
|
||||
*/
|
||||
class DashletContainer extends NavigationItemContainer
|
||||
{
|
||||
/**
|
||||
* Url of this dashlet item
|
||||
*
|
||||
* @var Url|string
|
||||
*/
|
||||
protected $url;
|
||||
|
||||
/**
|
||||
* Create a new Dashlet container
|
||||
*
|
||||
* @param string $name
|
||||
* @param Url|string $url
|
||||
* @param array $properties
|
||||
*/
|
||||
public function __construct($name, $url, array $properties = [])
|
||||
{
|
||||
parent::__construct($name, $properties);
|
||||
|
||||
$this->url = $url;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get url of this dashlet item
|
||||
*
|
||||
* @return Url|string
|
||||
*/
|
||||
public function getUrl()
|
||||
{
|
||||
return $this->url;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set url if this dashlet item
|
||||
*
|
||||
* @param Url|string $url
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function setUrl($url)
|
||||
{
|
||||
$this->url = $url;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
@ -13,9 +13,7 @@ use Icinga\Exception\IcingaException;
|
||||
use Icinga\Exception\ProgrammingError;
|
||||
use Icinga\Module\Setup\SetupWizard;
|
||||
use Icinga\Util\File;
|
||||
use Icinga\Web\Dashboard;
|
||||
use Icinga\Web\Navigation\Navigation;
|
||||
use Icinga\Web\Widget;
|
||||
use ipl\I18n\GettextTranslator;
|
||||
use ipl\I18n\StaticTranslator;
|
||||
use ipl\I18n\Translation;
|
||||
@ -218,14 +216,14 @@ class Module
|
||||
/**
|
||||
* A set of Pane elements
|
||||
*
|
||||
* @var Dashboard\Pane[]
|
||||
* @var DashboardContainer
|
||||
*/
|
||||
protected $paneItems = [];
|
||||
|
||||
/**
|
||||
* A set of Dashlet elements
|
||||
*
|
||||
* @var Dashboard\Dashlet[]
|
||||
* @var DashletContainer[]
|
||||
*/
|
||||
protected $dashletItems = [];
|
||||
|
||||
@ -318,38 +316,49 @@ class Module
|
||||
/**
|
||||
* Return this module's dashboard
|
||||
*
|
||||
* @return Dashboard\Pane[]
|
||||
* @return Navigation
|
||||
*/
|
||||
public function getDashboard()
|
||||
{
|
||||
$this->launchConfigScript();
|
||||
return $this->paneItems;
|
||||
return $this->createDashboard($this->paneItems);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create and return a new navigation for the given dashboard panes
|
||||
*
|
||||
* @param DashboardContainer[] $paneItems
|
||||
* @param DashboardContainer[] $panes
|
||||
*
|
||||
* @return DashboardContainer[]
|
||||
* @return Navigation
|
||||
*/
|
||||
public function createDashboard(array $paneItems)
|
||||
public function createDashboard(array $panes)
|
||||
{
|
||||
$panes = [];
|
||||
foreach ($paneItems as $pane) {
|
||||
$navigation = new Navigation();
|
||||
foreach ($panes as $pane) {
|
||||
/** @var DashboardContainer $pane */
|
||||
$dashlets = [];
|
||||
foreach ($pane->getDashlets() as $dashletName => $dashletConfig) {
|
||||
$dashlet = new Dashboard\Dashlet($dashletName, $dashletConfig['url']);
|
||||
$dashlet->fromArray($dashletConfig);
|
||||
|
||||
$dashlets[$dashletName] = $dashlet;
|
||||
$dashlets[$dashletName] = [
|
||||
'label' => $this->translate($dashletName),
|
||||
'url' => $dashletConfig['url'],
|
||||
'priority' => $dashletConfig['priority']
|
||||
];
|
||||
}
|
||||
|
||||
$pane->setDashlets($dashlets);
|
||||
$panes[$pane->getName()] = $pane;
|
||||
$navigation->addItem(
|
||||
$pane->getName(),
|
||||
array_merge(
|
||||
$pane->getProperties(),
|
||||
array(
|
||||
'label' => $this->translate($pane->getName()),
|
||||
'type' => 'dashboard-pane',
|
||||
'children' => $dashlets
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
return $panes;
|
||||
return $navigation;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -358,14 +367,14 @@ class Module
|
||||
* @param string $name
|
||||
* @param array $properties
|
||||
*
|
||||
* @return Dashboard\Pane
|
||||
* @return DashboardContainer
|
||||
*/
|
||||
protected function dashboard($name, array $properties = array())
|
||||
{
|
||||
if (array_key_exists($name, $this->paneItems)) {
|
||||
$this->paneItems[$name]->fromArray($properties);
|
||||
$this->paneItems[$name]->setProperties($properties);
|
||||
} else {
|
||||
$this->paneItems[$name] = new Dashboard\Pane($name, $properties);
|
||||
$this->paneItems[$name] = new DashboardContainer($name, $properties);
|
||||
}
|
||||
|
||||
return $this->paneItems[$name];
|
||||
@ -374,35 +383,31 @@ class Module
|
||||
/**
|
||||
* Get this module's provided dashlets
|
||||
*
|
||||
* @return Dashboard\Dashlet[]
|
||||
* @return DashletContainer[]
|
||||
*/
|
||||
public function getDashlets()
|
||||
{
|
||||
$this->launchConfigScript();
|
||||
uasort($this->dashletItems, function (Dashboard\Dashlet $x, Dashboard\Dashlet $y) {
|
||||
return $x->getPriority() - $y->getPriority();
|
||||
});
|
||||
|
||||
return $this->dashletItems;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add or get a dashlet
|
||||
*
|
||||
* @param string $name
|
||||
* @param string $name
|
||||
* @param Url|string $url
|
||||
* @param string $description
|
||||
* @param array $properties
|
||||
*
|
||||
* @return Dashboard\Dashlet
|
||||
* @return DashletContainer
|
||||
*/
|
||||
protected function provideDashlet($name, $url, $description)
|
||||
protected function provideDashlet($name, $url, array $properties = [])
|
||||
{
|
||||
if (! array_key_exists($name, $this->dashletItems)) {
|
||||
$this->dashletItems[$name] = new Dashboard\Dashlet($name, $url);
|
||||
if (array_key_exists($name, $this->dashletItems)) {
|
||||
$this->dashletItems[$name]->setProperties($properties);
|
||||
} else {
|
||||
$this->dashletItems[$name] = new DashletContainer($name, $url, $properties);
|
||||
}
|
||||
|
||||
$this->dashletItems[$name]->setDescription($description);
|
||||
|
||||
return $this->dashletItems[$name];
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user