Bläddra i källkod

Closes #11598: Add buttons to easily switch between rack list and elevations views

jeremystretch 3 år sedan
förälder
incheckning
ccc108a217

+ 1 - 0
docs/release-notes/version-3.4.md

@@ -7,6 +7,7 @@
 * [#10762](https://github.com/netbox-community/netbox/issues/10762) - Permit selection custom fields to have only one choice
 * [#10762](https://github.com/netbox-community/netbox/issues/10762) - Permit selection custom fields to have only one choice
 * [#11554](https://github.com/netbox-community/netbox/issues/11554) - Add module types count to manufacturers list
 * [#11554](https://github.com/netbox-community/netbox/issues/11554) - Add module types count to manufacturers list
 * [#11585](https://github.com/netbox-community/netbox/issues/11585) - Add IP address filters for services
 * [#11585](https://github.com/netbox-community/netbox/issues/11585) - Add IP address filters for services
+* [#11598](https://github.com/netbox-community/netbox/issues/11598) - Add buttons to easily switch between rack list and elevations views
 
 
 ### Bug Fixes
 ### Bug Fixes
 
 

+ 1 - 0
netbox/dcim/views.py

@@ -642,6 +642,7 @@ class RackListView(generic.ObjectListView):
     filterset = filtersets.RackFilterSet
     filterset = filtersets.RackFilterSet
     filterset_form = forms.RackFilterForm
     filterset_form = forms.RackFilterForm
     table = tables.RackTable
     table = tables.RackTable
+    template_name = 'dcim/rack_list.html'
 
 
 
 
 class RackElevationListView(generic.ObjectListView):
 class RackElevationListView(generic.ObjectListView):

+ 27 - 24
netbox/templates/dcim/rack_elevation_list.html

@@ -5,31 +5,34 @@
 {% block title %}Rack Elevations{% endblock %}
 {% block title %}Rack Elevations{% endblock %}
 
 
 {% block controls %}
 {% block controls %}
-    <div class="controls">
-        <div class="control-group">
-            <div class="btn-group btn-group-sm" role="group">
-                <select class="btn btn-sm btn-outline-secondary rack-view">
-                  <option value="images-and-labels" selected="selected">Images and Labels</option>
-                  <option value="images-only">Images only</option>
-                  <option value="labels-only">Labels only</option>
-                </select>
-            </div>
-            <div class="btn-group btn-group-sm" role="group">
-                <a href="{% url 'dcim:rack_elevation_list' %}{% querystring request face='front' %}" class="btn btn-outline-secondary{% if rack_face == 'front' %} active{% endif %}">Front</a>
-                <a href="{% url 'dcim:rack_elevation_list' %}{% querystring request face='rear' %}" class="btn btn-outline-secondary{% if rack_face == 'rear' %} active{% endif %}">Rear</a>
-            </div>
-            <div class="dropdown">
-              <button type="button" class="btn btn-sm btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                <i class="mdi mdi-sort"></i>&nbsp;Sort By {{ sort_display_name }}
-              </button>
-              <ul class="dropdown-menu dropdown-menu-end">
-                {% for sort_key, sort_display_name in sort_choices.items %}
-                  <li><a class="dropdown-item{% if sort == sort_key %} active{% endif %}" href="{% url 'dcim:rack_elevation_list' %}{% querystring request sort=sort_key %}">{{ sort_display_name }}</a></li>
-                {% endfor %}
-              </ul>
-            </div>
-        </div>
+  <div class="controls">
+    <div class="control-group">
+      <a href="{% url 'dcim:rack_list' %}{% querystring request %}" class="btn btn-sm btn-primary">
+        <i class="mdi mdi-format-list-checkbox"></i> View List
+      </a>
+      <div class="btn-group btn-group-sm" role="group">
+        <select class="btn btn-sm btn-outline-secondary rack-view">
+          <option value="images-and-labels" selected="selected">Images and Labels</option>
+          <option value="images-only">Images only</option>
+          <option value="labels-only">Labels only</option>
+        </select>
+      </div>
+      <div class="btn-group btn-group-sm" role="group">
+        <a href="{% url 'dcim:rack_elevation_list' %}{% querystring request face='front' %}" class="btn btn-outline-secondary{% if rack_face == 'front' %} active{% endif %}">Front</a>
+        <a href="{% url 'dcim:rack_elevation_list' %}{% querystring request face='rear' %}" class="btn btn-outline-secondary{% if rack_face == 'rear' %} active{% endif %}">Rear</a>
+      </div>
+      <div class="dropdown">
+        <button type="button" class="btn btn-sm btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+          <i class="mdi mdi-sort"></i>&nbsp;Sort By {{ sort_display_name }}
+        </button>
+        <ul class="dropdown-menu dropdown-menu-end">
+          {% for sort_key, sort_display_name in sort_choices.items %}
+            <li><a class="dropdown-item{% if sort == sort_key %} active{% endif %}" href="{% url 'dcim:rack_elevation_list' %}{% querystring request sort=sort_key %}">{{ sort_display_name }}</a></li>
+          {% endfor %}
+        </ul>
+      </div>
     </div>
     </div>
+  </div>
 {% endblock %}
 {% endblock %}
 
 
 {% block content-wrapper %}
 {% block content-wrapper %}

+ 9 - 0
netbox/templates/dcim/rack_list.html

@@ -0,0 +1,9 @@
+{% extends 'generic/object_list.html' %}
+{% load helpers %}
+{% load static %}
+
+{% block extra_controls %}
+  <a href="{% url 'dcim:rack_elevation_list' %}{% querystring request %}" class="btn btn-sm btn-primary">
+    <i class="mdi mdi-view-day-outline"></i> View Elevations
+  </a>
+{% endblock %}

+ 3 - 4
netbox/templates/generic/object_list.html

@@ -26,16 +26,15 @@ Context:
   <div class="controls">
   <div class="controls">
     <div class="control-group">
     <div class="control-group">
       {% plugin_list_buttons model %}
       {% plugin_list_buttons model %}
-
       {% block extra_controls %}{% endblock %}
       {% block extra_controls %}{% endblock %}
       {% if 'add' in actions %}
       {% if 'add' in actions %}
-          {% add_button model %}
+        {% add_button model %}
       {% endif %}
       {% endif %}
       {% if 'import' in actions %}
       {% if 'import' in actions %}
-          {% import_button model %}
+        {% import_button model %}
       {% endif %}
       {% endif %}
       {% if 'export' in actions %}
       {% if 'export' in actions %}
-          {% export_button model %}
+        {% export_button model %}
       {% endif %}
       {% endif %}
     </div>
     </div>
   </div>
   </div>