Просмотр исходного кода

fix(ui): Add hierarchical breadcrumbs for nested objects

Display ancestor hierarchy in breadcrumbs for DeviceRole, Platform, and
PowerPanel detail views. Shows full parent chain with filtering links
to improve navigation through nested object relationships.

Fixes #22957
Martin Hauser 4 дней назад
Родитель
Сommit
5d9fa7be86

+ 4 - 1
netbox/templates/dcim/devicerole.html

@@ -5,7 +5,10 @@
 {% load i18n %}
 
 {% block breadcrumbs %}
-  <li class="breadcrumb-item"><a href="{% url 'dcim:devicerole_list' %}">{% trans "Device Roles" %}</a></li>
+  {{ block.super }}
+  {% for devicerole in object.get_ancestors %}
+    <li class="breadcrumb-item"><a href="{% url 'dcim:devicerole_list' %}?parent_id={{ devicerole.pk }}">{{ devicerole }}</a></li>
+  {% endfor %}
 {% endblock %}
 
 {% block extra_controls %}

+ 3 - 0
netbox/templates/dcim/platform.html

@@ -9,6 +9,9 @@
   {% if object.manufacturer %}
     <li class="breadcrumb-item"><a href="{% url 'dcim:platform_list' %}?manufacturer_id={{ object.manufacturer.pk }}">{{ object.manufacturer }}</a></li>
   {% endif %}
+  {% for platform in object.get_ancestors %}
+    <li class="breadcrumb-item"><a href="{% url 'dcim:platform_list' %}?parent_id={{ platform.pk }}">{{ platform }}</a></li>
+  {% endfor %}
 {% endblock %}
 
 {% block extra_controls %}

+ 4 - 1
netbox/templates/dcim/powerpanel.html

@@ -4,6 +4,9 @@
   {{ block.super }}
   <li class="breadcrumb-item"><a href="{% url 'dcim:powerpanel_list' %}?site_id={{ object.site.pk }}">{{ object.site }}</a></li>
   {% if object.location %}
-    <li class="breadcrumb-item">{{ object.location|linkify }}</li>
+    {% for location in object.location.get_ancestors %}
+      <li class="breadcrumb-item"><a href="{% url 'dcim:powerpanel_list' %}?location_id={{ location.pk }}">{{ location }}</a></li>
+    {% endfor %}
+    <li class="breadcrumb-item"><a href="{% url 'dcim:powerpanel_list' %}?location_id={{ object.location.pk }}">{{ object.location }}</a></li>
   {% endif %}
 {% endblock %}