Parcourir la source

Closes #1876: Added explanatory title text to disabled NAPALM buttons on device view

Jeremy Stretch il y a 7 ans
Parent
commit
86b0491b68

+ 15 - 9
netbox/templates/dcim/inc/device_header.html

@@ -43,17 +43,23 @@
 <h1>{{ device }}</h1>
 {% include 'inc/created_updated.html' with obj=device %}
 <ul class="nav nav-tabs" style="margin-bottom: 20px">
-    <li role="presentation"{% if active_tab == 'info' %} class="active"{% endif %}><a href="{% url 'dcim:device' pk=device.pk %}">Info</a></li>
-    <li role="presentation"{% if active_tab == 'inventory' %} class="active"{% endif %}><a href="{% url 'dcim:device_inventory' pk=device.pk %}">Inventory</a></li>
+    <li role="presentation"{% if active_tab == 'info' %} class="active"{% endif %}>
+        <a href="{% url 'dcim:device' pk=device.pk %}">Info</a>
+    </li>
+    <li role="presentation"{% if active_tab == 'inventory' %} class="active"{% endif %}>
+        <a href="{% url 'dcim:device_inventory' pk=device.pk %}">Inventory</a>
+    </li>
     {% if perms.dcim.napalm_read %}
-        {% if device.status == 1 and device.platform.napalm_driver and device.primary_ip %}
-            <li role="presentation"{% if active_tab == 'status' %} class="active"{% endif %}><a href="{% url 'dcim:device_status' pk=device.pk %}">Status</a></li>
-            <li role="presentation"{% if active_tab == 'lldp-neighbors' %} class="active"{% endif %}><a href="{% url 'dcim:device_lldp_neighbors' pk=device.pk %}">LLDP Neighbors</a></li>
-            <li role="presentation"{% if active_tab == 'config' %} class="active"{% endif %}><a href="{% url 'dcim:device_config' pk=device.pk %}">Configuration</a></li>
+        {% if device.status != 1 %}
+            {% include 'dcim/inc/device_napalm_tabs.html' with disabled_message='Device must be in active status' %}
+        {% elif not device.platform %}
+            {% include 'dcim/inc/device_napalm_tabs.html' with disabled_message='No platform assigned to this device' %}
+        {% elif not device.platform.napalm_driver %}
+            {% include 'dcim/inc/device_napalm_tabs.html' with disabled_message='No NAPALM driver assigned for this platform' %}
+        {% elif not device.primary_ip %}
+            {% include 'dcim/inc/device_napalm_tabs.html' with disabled_message='No primary IP address assigned to this device' %}
         {% else %}
-            <li role="presentation" class="disabled"><a href="#">Status</a></li>
-            <li role="presentation" class="disabled"><a href="#">LLDP Neighbors</a></li>
-            <li role="presentation" class="disabled"><a href="#">Configuration</a></li>
+            {% include 'dcim/inc/device_napalm_tabs.html' %}
         {% endif %}
     {% endif %}
 </ul>

+ 15 - 0
netbox/templates/dcim/inc/device_napalm_tabs.html

@@ -0,0 +1,15 @@
+{% if not disabled_message %}
+    <li role="presentation"{% if active_tab == 'status' %} class="active"{% endif %}>
+        <a href="{% url 'dcim:device_status' pk=device.pk %}">Status</a>
+    </li>
+    <li role="presentation"{% if active_tab == 'lldp-neighbors' %} class="active"{% endif %}>
+        <a href="{% url 'dcim:device_lldp_neighbors' pk=device.pk %}">LLDP Neighbors</a>
+    </li>
+    <li role="presentation"{% if active_tab == 'config' %} class="active"{% endif %}>
+        <a href="{% url 'dcim:device_config' pk=device.pk %}">Configuration</a>
+    </li>
+{% else %}
+    <li role="presentation" class="disabled"><a href="#" title="{{ disabled_message }}">Status</a></li>
+    <li role="presentation" class="disabled"><a href="#" title="{{ disabled_message }}">LLDP Neighbors</a></li>
+    <li role="presentation" class="disabled"><a href="#" title="{{ disabled_message }}">Configuration</a></li>
+{% endif %}