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

Closes #8803: Enable adding components from module view

jeremystretch 3 лет назад
Родитель
Сommit
fab90ecbe5
2 измененных файлов с 45 добавлено и 52 удалено
  1. 12 52
      netbox/templates/dcim/device/base.html
  2. 33 0
      netbox/templates/dcim/module.html

+ 12 - 52
netbox/templates/dcim/device/base.html

@@ -16,79 +16,39 @@
 {% block extra_controls %}
 {% block extra_controls %}
     {% if perms.dcim.change_device %}
     {% if perms.dcim.change_device %}
         <div class="dropdown">
         <div class="dropdown">
-            <button id="add-device-components" type="button" class="btn btn-sm btn-primary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
+            <button id="add-components" type="button" class="btn btn-sm btn-primary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
                 <i class="mdi mdi-plus-thick" aria-hidden="true"></i> Add Components
                 <i class="mdi mdi-plus-thick" aria-hidden="true"></i> Add Components
             </button>
             </button>
-            <ul class="dropdown-menu" aria-labeled-by="add-device-components">
+            <ul class="dropdown-menu" aria-labeled-by="add-components">
                 {% if perms.dcim.add_consoleport %}
                 {% if perms.dcim.add_consoleport %}
-                    <li>
-                        <a class="dropdown-item" href="{% url 'dcim:consoleport_add' %}?device={{ object.pk }}&return_url={% url 'dcim:device_consoleports' pk=object.pk %}">
-                            Console Ports
-                        </a>
-                    </li>
+                    <li><a class="dropdown-item" href="{% url 'dcim:consoleport_add' %}?device={{ object.pk }}&return_url={% url 'dcim:device_consoleports' pk=object.pk %}">Console Ports</a></li>
                 {% endif %}
                 {% endif %}
                 {% if perms.dcim.add_consoleserverport %}
                 {% if perms.dcim.add_consoleserverport %}
-                    <li>
-                        <a class="dropdown-item" href="{% url 'dcim:consoleserverport_add' %}?device={{ object.pk }}&return_url={% url 'dcim:device_consoleserverports' pk=object.pk %}">
-                            Console Server Ports
-                        </a>
-                    </li>
+                    <li><a class="dropdown-item" href="{% url 'dcim:consoleserverport_add' %}?device={{ object.pk }}&return_url={% url 'dcim:device_consoleserverports' pk=object.pk %}">Console Server Ports</a></li>
                 {% endif %}
                 {% endif %}
                 {% if perms.dcim.add_powerport %}
                 {% if perms.dcim.add_powerport %}
-                    <li>
-                        <a class="dropdown-item" href="{% url 'dcim:powerport_add' %}?device={{ object.pk }}&return_url={% url 'dcim:device_powerports' pk=object.pk %}">
-                            Power Ports
-                        </a>
-                    </li>
+                    <li><a class="dropdown-item" href="{% url 'dcim:powerport_add' %}?device={{ object.pk }}&return_url={% url 'dcim:device_powerports' pk=object.pk %}">Power Ports</a></li>
                 {% endif %}
                 {% endif %}
                 {% if perms.dcim.add_poweroutlet %}
                 {% if perms.dcim.add_poweroutlet %}
-                    <li>
-                        <a class="dropdown-item" href="{% url 'dcim:poweroutlet_add' %}?device={{ object.pk }}&return_url={% url 'dcim:device_poweroutlets' pk=object.pk %}">
-                            Power Outlets
-                        </a>
-                    </li>
+                    <li><a class="dropdown-item" href="{% url 'dcim:poweroutlet_add' %}?device={{ object.pk }}&return_url={% url 'dcim:device_poweroutlets' pk=object.pk %}">Power Outlets</a></li>
                 {% endif %}
                 {% endif %}
                 {% if perms.dcim.add_interface %}
                 {% if perms.dcim.add_interface %}
-                    <li>
-                        <a class="dropdown-item" href="{% url 'dcim:interface_add' %}?device={{ object.pk }}&return_url={% url 'dcim:device_interfaces' pk=object.pk %}">
-                            Interfaces
-                        </a>
-                    </li>
+                    <li><a class="dropdown-item" href="{% url 'dcim:interface_add' %}?device={{ object.pk }}&return_url={% url 'dcim:device_interfaces' pk=object.pk %}">Interfaces</a></li>
                 {% endif %}
                 {% endif %}
                 {% if perms.dcim.add_frontport %}
                 {% if perms.dcim.add_frontport %}
-                    <li>
-                        <a class="dropdown-item" href="{% url 'dcim:frontport_add' %}?device={{ object.pk }}&return_url={% url 'dcim:device_frontports' pk=object.pk %}">
-                            Front Ports
-                        </a>
-                    </li>
+                    <li><a class="dropdown-item" href="{% url 'dcim:frontport_add' %}?device={{ object.pk }}&return_url={% url 'dcim:device_frontports' pk=object.pk %}">Front Ports</a></li>
                 {% endif %}
                 {% endif %}
                 {% if perms.dcim.add_rearport %}
                 {% if perms.dcim.add_rearport %}
-                    <li>
-                        <a class="dropdown-item" href="{% url 'dcim:rearport_add' %}?device={{ object.pk }}&return_url={% url 'dcim:device_rearports' pk=object.pk %}">
-                            Rear Ports
-                        </a>
-                    </li>
+                    <li><a class="dropdown-item" href="{% url 'dcim:rearport_add' %}?device={{ object.pk }}&return_url={% url 'dcim:device_rearports' pk=object.pk %}">Rear Ports</a></li>
                 {% endif %}
                 {% endif %}
                 {% if perms.dcim.add_devicebay %}
                 {% if perms.dcim.add_devicebay %}
-                    <li>
-                        <a class="dropdown-item" href="{% url 'dcim:modulebay_add' %}?device={{ object.pk }}&return_url={% url 'dcim:device_modulebays' pk=object.pk %}">
-                            Module Bays
-                        </a>
-                    </li>
+                    <li><a class="dropdown-item" href="{% url 'dcim:modulebay_add' %}?device={{ object.pk }}&return_url={% url 'dcim:device_modulebays' pk=object.pk %}">Module Bays</a></li>
                 {% endif %}
                 {% endif %}
                 {% if perms.dcim.add_devicebay %}
                 {% if perms.dcim.add_devicebay %}
-                    <li>
-                        <a class="dropdown-item" href="{% url 'dcim:devicebay_add' %}?device={{ object.pk }}&return_url={% url 'dcim:device_devicebays' pk=object.pk %}">
-                            Device Bays
-                        </a>
-                    </li>
+                    <li><a class="dropdown-item" href="{% url 'dcim:devicebay_add' %}?device={{ object.pk }}&return_url={% url 'dcim:device_devicebays' pk=object.pk %}">Device Bays</a></li>
                 {% endif %}
                 {% endif %}
                 {% if perms.dcim.add_inventoryitem %}
                 {% if perms.dcim.add_inventoryitem %}
-                    <li>
-                        <a class="dropdown-item" href="{% url 'dcim:inventoryitem_add' %}?device={{ object.pk }}&return_url={% url 'dcim:device_inventory' pk=object.pk %}">
-                            Inventory Items
-                        </a>
-                    </li>
+                    <li><a class="dropdown-item" href="{% url 'dcim:inventoryitem_add' %}?device={{ object.pk }}&return_url={% url 'dcim:device_inventory' pk=object.pk %}">Inventory Items</a></li>
                 {% endif %}
                 {% endif %}
             </ul>
             </ul>
         </div>
         </div>

+ 33 - 0
netbox/templates/dcim/module.html

@@ -10,6 +10,39 @@
   </li>
   </li>
 {% endblock %}
 {% endblock %}
 
 
+{% block extra_controls %}
+    {% if perms.dcim.change_module %}
+        <div class="dropdown">
+            <button id="add-components" type="button" class="btn btn-sm btn-primary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
+                <i class="mdi mdi-plus-thick" aria-hidden="true"></i> Add Components
+            </button>
+            <ul class="dropdown-menu" aria-labeled-by="add-components">
+                {% if perms.dcim.add_consoleport %}
+                    <li><a class="dropdown-item" href="{% url 'dcim:consoleport_add' %}?device={{ object.device.pk }}&module={{ object.pk }}&return_url={% url 'dcim:device_consoleports' pk=object.pk %}">Console Ports</a></li>
+                {% endif %}
+                {% if perms.dcim.add_consoleserverport %}
+                    <li><a class="dropdown-item" href="{% url 'dcim:consoleserverport_add' %}?device={{ object.device.pk }}&module={{ object.pk }}&return_url={% url 'dcim:device_consoleserverports' pk=object.pk %}">Console Server Ports</a></li>
+                {% endif %}
+                {% if perms.dcim.add_powerport %}
+                    <li><a class="dropdown-item" href="{% url 'dcim:powerport_add' %}?device={{ object.device.pk }}&module={{ object.pk }}&return_url={% url 'dcim:device_powerports' pk=object.pk %}">Power Ports</a></li>
+                {% endif %}
+                {% if perms.dcim.add_poweroutlet %}
+                    <li><a class="dropdown-item" href="{% url 'dcim:poweroutlet_add' %}?device={{ object.device.pk }}&module={{ object.pk }}&return_url={% url 'dcim:device_poweroutlets' pk=object.pk %}">Power Outlets</a></li>
+                {% endif %}
+                {% if perms.dcim.add_interface %}
+                    <li><a class="dropdown-item" href="{% url 'dcim:interface_add' %}?device={{ object.device.pk }}&module={{ object.pk }}&return_url={% url 'dcim:device_interfaces' pk=object.pk %}">Interfaces</a></li>
+                {% endif %}
+                {% if perms.dcim.add_frontport %}
+                    <li><a class="dropdown-item" href="{% url 'dcim:frontport_add' %}?device={{ object.device.pk }}&module={{ object.pk }}&return_url={% url 'dcim:device_frontports' pk=object.pk %}">Front Ports</a></li>
+                {% endif %}
+                {% if perms.dcim.add_rearport %}
+                    <li><a class="dropdown-item" href="{% url 'dcim:rearport_add' %}?device={{ object.device.pk }}&module={{ object.pk }}&return_url={% url 'dcim:device_rearports' pk=object.pk %}">Rear Ports</a></li>
+                {% endif %}
+            </ul>
+        </div>
+    {% endif %}
+{% endblock %}
+
 {% block content %}
 {% block content %}
 <div class="row">
 <div class="row">
 	<div class="col col-md-6">
 	<div class="col col-md-6">