From 670a29e5f78d87b3fbc57d2635ffd6242a96305c Mon Sep 17 00:00:00 2001 From: Johannes Meyer Date: Tue, 26 Feb 2019 13:15:14 +0100 Subject: [PATCH] Breadcrumb: Show a node's state --- .../Renderer/TileRenderer/NodeTile.php | 12 ++++++++++++ public/css/module.less | 19 +++++++++++++++---- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/library/Businessprocess/Renderer/TileRenderer/NodeTile.php b/library/Businessprocess/Renderer/TileRenderer/NodeTile.php index a55ef50..108f84b 100644 --- a/library/Businessprocess/Renderer/TileRenderer/NodeTile.php +++ b/library/Businessprocess/Renderer/TileRenderer/NodeTile.php @@ -2,6 +2,7 @@ namespace Icinga\Module\Businessprocess\Renderer\TileRenderer; +use Icinga\Date\DateFormatter; use Icinga\Module\Businessprocess\BpNode; use Icinga\Module\Businessprocess\HostNode; use Icinga\Module\Businessprocess\ImportedNode; @@ -9,6 +10,7 @@ use Icinga\Module\Businessprocess\MonitoredNode; use Icinga\Module\Businessprocess\Node; use Icinga\Module\Businessprocess\Renderer\Renderer; use Icinga\Module\Businessprocess\ServiceNode; +use Icinga\Module\Businessprocess\Web\Component\StateBall; use Icinga\Web\Url; use ipl\Html\BaseHtmlElement; use ipl\Html\Html; @@ -86,6 +88,16 @@ class NodeTile extends BaseHtmlElement } $link = $this->getMainNodeLink(); + if ($renderer->isBreadcrumb()) { + $link->prepend((new StateBall(strtolower($node->getStateName())))->addAttributes([ + 'title' => sprintf( + '%s %s', + $node->getStateName(), + DateFormatter::timeSince($node->getLastStateChange()) + ) + ])); + } + $this->add($link); if ($node instanceof BpNode && !$renderer->isBreadcrumb()) { diff --git a/public/css/module.less b/public/css/module.less index af18a0f..d74ae6e 100644 --- a/public/css/module.less +++ b/public/css/module.less @@ -262,12 +262,12 @@ ul.bp { li.process > div > .state-ball, li:not(.process) > .state-ball { - border: .2em solid white; + border: .15em solid white; &.size-s { - width: 1.2em; - height: 1.2em; - line-height: 1.2em; + width: 1.15em; + height: 1.15em; + line-height: 1.15em; } } } @@ -594,6 +594,17 @@ td > a > .badges { &:focus { outline: none; } + + > .state-ball { + margin-right: .5em; + border: .15em solid white; + + &.size-s { + width: 1.15em; + height: 1.15em; + line-height: 1.15em; + } + } } .breadcrumb li { border: 1px solid @gray-lighter;