1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Fixes #10984: Fix navigation menu expansion for plugin menus comprising multiple words

This commit is contained in:
jeremystretch
2022-11-21 08:38:44 -05:00
parent e494d7bb22
commit 150cb772fe
5 changed files with 12 additions and 3 deletions

View File

@ -14,6 +14,7 @@
* [#10973](https://github.com/netbox-community/netbox/issues/10973) - Fix device links in VDC table * [#10973](https://github.com/netbox-community/netbox/issues/10973) - Fix device links in VDC table
* [#10980](https://github.com/netbox-community/netbox/issues/10980) - Fix view tabs for plugin objects * [#10980](https://github.com/netbox-community/netbox/issues/10980) - Fix view tabs for plugin objects
* [#10982](https://github.com/netbox-community/netbox/issues/10982) - Catch `NoReverseMatch` exception when rendering tabs with no registered URL * [#10982](https://github.com/netbox-community/netbox/issues/10982) - Catch `NoReverseMatch` exception when rendering tabs with no registered URL
* [#10984](https://github.com/netbox-community/netbox/issues/10984) - Fix navigation menu expansion for plugin menus comprising multiple words
## v3.4-beta1 (2022-11-16) ## v3.4-beta1 (2022-11-16)

View File

@ -19,6 +19,10 @@ class PluginMenu:
if icon_class is not None: if icon_class is not None:
self.icon_class = icon_class self.icon_class = icon_class
@property
def name(self):
return self.label.replace(' ', '_')
class PluginMenuItem: class PluginMenuItem:
""" """

View File

@ -26,7 +26,7 @@ items = (
) )
menu = PluginMenu( menu = PluginMenu(
label=_('Dummy'), label=_('Dummy Plugin'),
groups=(('Group 1', items),), groups=(('Group 1', items),),
) )
menu_items = items menu_items = items

View File

@ -51,6 +51,10 @@ class Menu:
icon_class: str icon_class: str
groups: Sequence[MenuGroup] groups: Sequence[MenuGroup]
@property
def name(self):
return self.label.replace(' ', '_')
# #
# Utility functions # Utility functions

View File

@ -4,12 +4,12 @@
{% for menu, groups in nav_items %} {% for menu, groups in nav_items %}
<li class="nav-item"> <li class="nav-item">
{# Menu heading #} {# Menu heading #}
<a class="nav-link" href="#menu{{ menu.label }}" data-bs-toggle="collapse" role="button" aria-expanded="false" aria-controls="menu{{ menu.label }}"> <a class="nav-link" href="#menu{{ menu.name }}" data-bs-toggle="collapse" role="button" aria-expanded="false" aria-controls="menu{{ menu.name }}">
<i class="{{ menu.icon_class }}"></i> <i class="{{ menu.icon_class }}"></i>
<span class="nav-link-text">{{ menu.label }}</span> <span class="nav-link-text">{{ menu.label }}</span>
</a> </a>
{# Menu groups #} {# Menu groups #}
<div class="collapse" id="menu{{ menu.label }}"> <div class="collapse" id="menu{{ menu.name }}">
<ul class="nav nav-sm flex-column"> <ul class="nav nav-sm flex-column">
{% for group, items in groups %} {% for group, items in groups %}
{# Group heading #} {# Group heading #}