From 1bc6bf6236f6d7faa3ec0de1d4d0f558447a92e6 Mon Sep 17 00:00:00 2001 From: Ravi Kumar Kempapura Srinivasa Date: Tue, 3 Mar 2020 16:51:03 +0100 Subject: [PATCH] Use gray tiles and state-balls for the entire branch of empty BpNode The node state is recursively calculated in case the node contains only BpNodes as its children and are empty. The gray tiles and state-balls are used for the entire branch if the children are empty. --- library/Businessprocess/Renderer/Renderer.php | 11 ++++++++--- .../Renderer/TileRenderer/NodeTile.php | 4 ++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/library/Businessprocess/Renderer/Renderer.php b/library/Businessprocess/Renderer/Renderer.php index c6fbbb6..4c9a8de 100644 --- a/library/Businessprocess/Renderer/Renderer.php +++ b/library/Businessprocess/Renderer/Renderer.php @@ -6,6 +6,7 @@ use Icinga\Exception\ProgrammingError; use Icinga\Module\Businessprocess\BpNode; use Icinga\Module\Businessprocess\BpConfig; use Icinga\Module\Businessprocess\ImportedNode; +use Icinga\Module\Businessprocess\MonitoredNode; use Icinga\Module\Businessprocess\Node; use Icinga\Module\Businessprocess\Web\Url; use ipl\Html\BaseHtmlElement; @@ -176,9 +177,13 @@ abstract class Renderer extends HtmlDocument if ($node->isMissing()) { $classes = array('missing'); } else { - $classes = array( - strtolower($node->getStateName()) - ); + if ($node->isEmpty() && ! $node instanceof MonitoredNode) { + $classes = array('empty'); + } else { + $classes = array( + strtolower($node->getStateName()) + ); + } if ($node->hasMissingChildren()) { $classes[] = 'missing-children'; } diff --git a/library/Businessprocess/Renderer/TileRenderer/NodeTile.php b/library/Businessprocess/Renderer/TileRenderer/NodeTile.php index d359d1d..b393724 100644 --- a/library/Businessprocess/Renderer/TileRenderer/NodeTile.php +++ b/library/Businessprocess/Renderer/TileRenderer/NodeTile.php @@ -85,7 +85,7 @@ class NodeTile extends BaseHtmlElement $this->addActionLinks(); } } - if (! $node instanceof ImportedNode || ! $node->isMissing()) { + if (! $node instanceof ImportedNode || $node->getBpConfig()->hasNode($node->getName())) { $link = $this->getMainNodeLink(); if ($renderer->isBreadcrumb()) { $link->prepend((new StateBall(strtolower($node->getStateName())))->addAttributes([ @@ -202,7 +202,7 @@ class NodeTile extends BaseHtmlElement Html::tag('i', ['class' => 'icon icon-sitemap']) )); if ($node instanceof ImportedNode) { - if (! $node->isMissing()) { + if ($node->getBpConfig()->hasNode($node->getName())) { $this->actions()->add(Html::tag( 'a', [