From 61b0d8aa908abfcf49cedd9391c15948322c98a1 Mon Sep 17 00:00:00 2001 From: Jennifer Mourek Date: Mon, 11 Mar 2019 11:40:02 +0100 Subject: [PATCH] Add icon with first letter of the li if there is no icon set else default to icon-circle --- .../Navigation/Renderer/BadgeNavigationItemRenderer.php | 7 ------- .../Web/Navigation/Renderer/NavigationItemRenderer.php | 3 +++ .../Icinga/Web/Navigation/Renderer/NavigationRenderer.php | 5 ----- public/css/icinga/menu.less | 7 +++++++ 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/library/Icinga/Web/Navigation/Renderer/BadgeNavigationItemRenderer.php b/library/Icinga/Web/Navigation/Renderer/BadgeNavigationItemRenderer.php index 8e03da85f..424c5489a 100644 --- a/library/Icinga/Web/Navigation/Renderer/BadgeNavigationItemRenderer.php +++ b/library/Icinga/Web/Navigation/Renderer/BadgeNavigationItemRenderer.php @@ -100,15 +100,8 @@ abstract class BadgeNavigationItemRenderer extends NavigationItemRenderer $item->setCssClass('badge-nav-item'); $this->setEscapeLabel(false); $label = $this->view()->escape($item->getLabel()); - if (($icon = $item->getIcon()) !== null) { - $label = $this->view()->icon($icon) . $label; - $item->setIcon(null); - } $item->setLabel($this->renderBadge() . $label); $html = parent::render($item); - if ($icon) { - $item->setIcon(true); - } return $html; } diff --git a/library/Icinga/Web/Navigation/Renderer/NavigationItemRenderer.php b/library/Icinga/Web/Navigation/Renderer/NavigationItemRenderer.php index c90e61e0b..3258d8bb4 100644 --- a/library/Icinga/Web/Navigation/Renderer/NavigationItemRenderer.php +++ b/library/Icinga/Web/Navigation/Renderer/NavigationItemRenderer.php @@ -178,6 +178,9 @@ class NavigationItemRenderer : $item->getLabel(); if (($icon = $item->getIcon()) !== null) { $label = $this->view()->icon($icon) . $label; + } else { + $firstLetter = $item->getName()[0]; + $label = $this->view()->icon('letter', null, ['data-letter' => strtolower($firstLetter)]) . $label; } if (($url = $item->getUrl()) !== null) { diff --git a/library/Icinga/Web/Navigation/Renderer/NavigationRenderer.php b/library/Icinga/Web/Navigation/Renderer/NavigationRenderer.php index 3e37b43fe..b02b7c7b2 100644 --- a/library/Icinga/Web/Navigation/Renderer/NavigationRenderer.php +++ b/library/Icinga/Web/Navigation/Renderer/NavigationRenderer.php @@ -322,11 +322,6 @@ class NavigationRenderer implements RecursiveIterator, NavigationRendererInterfa $cssClasses[] = static::CSS_CLASS_ACTIVE; } - if ($item->getIcon() === null) { - // @TODO(el): Add constant - $cssClasses[] = 'no-icon'; - } - if ($cssClass = $item->getCssClass()) { $cssClasses[] = $cssClass; } diff --git a/public/css/icinga/menu.less b/public/css/icinga/menu.less index aca332cce..4511176cc 100644 --- a/public/css/icinga/menu.less +++ b/public/css/icinga/menu.less @@ -94,6 +94,13 @@ &:not(.active) > a > i { opacity: .8; } + + & > a > .icon-letter:before { + content: attr(data-letter); + font-family: @font-family; + font-weight: 800; + text-transform: uppercase; + } } ul:not(.nav-level-2) > .selected > a {