mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Standardize naming of menu items
This commit is contained in:
@ -11,7 +11,7 @@ from utilities.choices import ButtonColorChoices
|
||||
|
||||
# Initialize plugin registry stores
|
||||
registry['plugin_template_extensions'] = collections.defaultdict(list)
|
||||
registry['plugin_nav_menu_links'] = {}
|
||||
registry['plugin_menu_items'] = {}
|
||||
|
||||
|
||||
#
|
||||
@ -154,7 +154,7 @@ def register_template_extensions(class_list):
|
||||
|
||||
class PluginMenuItem:
|
||||
"""
|
||||
This class represents a nav menu item. This constitutes primary link and its text, but also allows for
|
||||
This class represents a navigation menu item. This constitutes primary link and its text, but also allows for
|
||||
specifying additional link buttons that appear to the right of the item in the van menu.
|
||||
|
||||
Links are specified as Django reverse URL strings.
|
||||
@ -172,8 +172,8 @@ class PluginMenuItem:
|
||||
|
||||
class PluginMenuButton:
|
||||
"""
|
||||
This class represents a button which is a part of the nav menu link item.
|
||||
Note that button colors should come from ButtonColorChoices
|
||||
This class represents a button within a PluginMenuItem. Note that button colors should come from
|
||||
ButtonColorChoices.
|
||||
"""
|
||||
color = ButtonColorChoices.DEFAULT
|
||||
|
||||
@ -199,4 +199,4 @@ def register_menu_items(section_name, class_list):
|
||||
if not isinstance(button, PluginMenuButton):
|
||||
raise TypeError(f"{button} must be an instance of extras.plugins.PluginMenuButton")
|
||||
|
||||
registry['plugin_nav_menu_links'][section_name] = class_list
|
||||
registry['plugin_menu_items'][section_name] = class_list
|
||||
|
@ -1,10 +1,10 @@
|
||||
from extras.registry import registry
|
||||
|
||||
|
||||
def nav_menu_links(request):
|
||||
def plugin_menu_items(request):
|
||||
"""
|
||||
Retrieve and expose all plugin registered nav links
|
||||
Retrieve and expose all plugin registered navigation menu items.
|
||||
"""
|
||||
return {
|
||||
'plugin_nav_menu_links': registry['plugin_nav_menu_links']
|
||||
'plugin_menu_items': registry['plugin_menu_items']
|
||||
}
|
||||
|
@ -326,7 +326,7 @@ TEMPLATES = [
|
||||
'django.contrib.auth.context_processors.auth',
|
||||
'django.contrib.messages.context_processors.messages',
|
||||
'utilities.context_processors.settings',
|
||||
'extras.plugins.context_processors.nav_menu_links',
|
||||
'extras.plugins.context_processors.plugin_menu_items',
|
||||
],
|
||||
},
|
||||
},
|
||||
|
@ -504,8 +504,8 @@
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
{% if plugin_nav_menu_links %}
|
||||
{% include 'inc/plugin_nav_menu_items.html' %}
|
||||
{% if plugin_menu_items %}
|
||||
{% include 'inc/plugin_menu_items.html' %}
|
||||
{% endif %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
|
@ -1,24 +1,24 @@
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Plugins <span class="caret"></span></a>
|
||||
<ul class="dropdown-menu">
|
||||
{% for section_name, link_items in plugin_nav_menu_links.items %}
|
||||
{% for section_name, menu_items in plugin_menu_items.items %}
|
||||
<li class="dropdown-header">{{ section_name }}</li>
|
||||
{% for link_item in link_items %}
|
||||
{% if link_item.permission %}
|
||||
<li{% if not link_item.permission in perms %} class="disabled"{% endif %}>
|
||||
{% for menu_item in menu_items %}
|
||||
{% if menu_item.permission %}
|
||||
<li{% if not menu_item.permission in perms %} class="disabled"{% endif %}>
|
||||
{% else %}
|
||||
<li>
|
||||
{% endif %}
|
||||
{% if link_item.buttons %}
|
||||
{% if menu_item.buttons %}
|
||||
<div class="buttons pull-right">
|
||||
{% for button in link_item.buttons %}
|
||||
{% for button in menu_item.buttons %}
|
||||
{% if not button.permission or button.permission in perms %}
|
||||
<a href="{% url button.link %}" class="btn btn-xs btn-{{ button.color }}" title="{{ button.title }}"><i class="fa {{ button.icon_class }}"></i></a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<a href="{% url link_item.link %}">{{ link_item.link_text }}</a>
|
||||
<a href="{% url menu_item.link %}">{{ menu_item.link_text }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
{% if not forloop.last %}
|
Reference in New Issue
Block a user