Relocate "add" buttons for embedded object tables

This commit is contained in:
Jeremy Stretch
2024-01-30 20:55:28 -05:00
parent d302982a88
commit 694a7d243a
22 changed files with 254 additions and 205 deletions

View File

@@ -115,7 +115,14 @@
</div>
{% if vc_members %}
<div class="card">
<h5 class="card-header">{% trans "Virtual Chassis" %}</h5>
<h5 class="card-header">
{% trans "Virtual Chassis" %}
<div class="card-actions">
<a href="{{ object.virtual_chassis.get_absolute_url }}" class="btn btn-ghost-primary btn-sm">
<span class="mdi mdi-arrow-right-bold" aria-hidden="true"></span> {% trans "View Virtual Chassis" %}
</a>
</div>
</h5>
<table class="table table-hover attr-table">
<tr>
<th>{% trans "Device" %}</th>
@@ -140,26 +147,23 @@
</tr>
{% endfor %}
</table>
<div class="card-footer text-end d-print-none">
<a href="{{ object.virtual_chassis.get_absolute_url }}" class="btn btn-primary">
<span class="mdi mdi-arrow-right-bold" aria-hidden="true"></span> {% trans "View Virtual Chassis" %}
</a>
</div>
</div>
{% endif %}
{% include 'inc/panels/custom_fields.html' %}
{% include 'inc/panels/tags.html' %}
{% include 'inc/panels/comments.html' %}
<div class="card">
<h5 class="card-header">{% trans "Virtual Device Contexts" %}</h5>
<h5 class="card-header">
{% trans "Virtual Device Contexts" %}
{% if perms.dcim.add_virtualdevicecontext %}
<div class="card-actions">
<a href="{% url 'dcim:virtualdevicecontext_add' %}?device={{ object.pk }}" class="btn btn-ghost-primary btn-sm">
<span class="mdi mdi-plus-thick" aria-hidden="true"></span> {% trans "Create VDC" %}
</a>
</div>
{% endif %}
</h5>
{% htmx_table 'dcim:virtualdevicecontext_list' device_id=object.pk %}
{% if perms.dcim.add_virtualdevicecontext %}
<div class="card-footer text-end d-print-none">
<a href="{% url 'dcim:virtualdevicecontext_add' %}?device={{ object.pk }}" class="btn btn-primary">
<span class="mdi mdi-plus-thick" aria-hidden="true"></span> {% trans "Create VDC" %}
</a>
</div>
{% endif %}
</div>
{% plugin_left_page object %}
</div>
@@ -286,15 +290,17 @@
</div>
{% endif %}
<div class="card">
<h5 class="card-header">{% trans "Services" %}</h5>
<h5 class="card-header">
{% trans "Services" %}
{% if perms.ipam.add_service %}
<div class="card-actions">
<a href="{% url 'ipam:service_add' %}?device={{ object.pk }}" class="btn btn-ghost-primary btn-sm">
<span class="mdi mdi-plus-thick" aria-hidden="true"></span> {% trans "Add a service" %}
</a>
</div>
{% endif %}
</h5>
{% htmx_table 'ipam:service_list' device_id=object.pk %}
{% if perms.ipam.add_service %}
<div class="card-footer text-end d-print-none">
<a href="{% url 'ipam:service_add' %}?device={{ object.pk }}" class="btn btn-primary">
<span class="mdi mdi-plus-thick" aria-hidden="true"></span> {% trans "Add a service" %}
</a>
</div>
{% endif %}
</div>
{% include 'inc/panels/image_attachments.html' %}
<div class="card">

View File

@@ -8,7 +8,6 @@
<form method="post">
{% csrf_token %}
<div class="card">
<h5 class="card-header">{{ title }}</h5>
<div class="htmx-container table-responsive" id="object_list">
{% include 'htmx/table.html' %}
</div>

View File

@@ -2,7 +2,16 @@
{% load i18n %}
<div class="card">
<h5 class="card-header">{% trans "Inventory Items" %}</h5>
<h5 class="card-header">
{% trans "Inventory Items" %}
{% if perms.dcim.add_inventoryitem %}
<div class="card-actions">
<a href="{% url 'dcim:inventoryitem_add' %}?device={{ object.device.pk }}&component_type={{ object|content_type_id }}&component_id={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-ghost-primary btn-sm">
<span class="mdi mdi-plus-thick" aria-hidden="true"></span> {% trans "Add Inventory Item" %}
</a>
</div>
{% endif %}
</h5>
<table class="table table-hover">
<thead>
<tr>
@@ -38,11 +47,4 @@
{% endfor %}
</tbody>
</table>
<div class="card-footer text-end d-print-none">
{% if perms.dcim.add_inventoryitem %}
<a href="{% url 'dcim:inventoryitem_add' %}?device={{ object.device.pk }}&component_type={{ object|content_type_id }}&component_id={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-primary">
<span class="mdi mdi-plus-thick" aria-hidden="true"></span> {% trans "Add Inventory Item" %}
</a>
{% endif %}
</div>
</div>

View File

@@ -335,15 +335,18 @@
<div class="row mb-3">
<div class="col col-md-12">
<div class="card">
<h5 class="card-header">{% trans "IP Addresses" %}</h5>
<h5 class="card-header">
{% trans "IP Addresses" %}
{% if perms.ipam.add_ipaddress %}
<div class="card-actions">
<a href="{% url 'ipam:ipaddress_add' %}?device={{ object.device.pk }}&interface={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-ghost-primary btn-sm">
<span class="mdi mdi-plus-thick" aria-hidden="true"></span> {% trans "Add IP Address" %}
</a>
</div>
{% endif %}
</h5>
{% htmx_table 'ipam:ipaddress_list' interface_id=object.pk %}
{% if perms.ipam.add_ipaddress %}
<div class="card-footer text-end d-print-none">
<a href="{% url 'ipam:ipaddress_add' %}?device={{ object.device.pk }}&interface={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-primary">
<span class="mdi mdi-plus-thick" aria-hidden="true"></span> {% trans "Add IP Address" %}
</a>
</div>
{% endif %}
</div>
</div>
</div>

View File

@@ -69,26 +69,30 @@
<div class="row mb-3">
<div class="col col-md-12">
<div class="card">
<h5 class="card-header">{% trans "Child Locations" %}</h5>
<h5 class="card-header">
{% trans "Child Locations" %}
{% if perms.dcim.add_location %}
<div class="card-actions">
<a href="{% url 'dcim:location_add' %}?site={{ object.site.pk }}&parent={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-ghost-primary btn-sm">
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> {% trans "Add a Location" %}
</a>
</div>
{% endif %}
</h5>
{% htmx_table 'dcim:location_list' parent_id=object.pk %}
{% if perms.dcim.add_location %}
<div class="card-footer text-end d-print-none">
<a href="{% url 'dcim:location_add' %}?site={{ object.site.pk }}&parent={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-primary">
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> {% trans "Add a Location" %}
</a>
</div>
{% endif %}
</div>
<div class="card">
<h5 class="card-header">Non-Racked Devices</h5>
<h5 class="card-header">
{% trans "Non-Racked Devices" %}
{% if perms.dcim.add_device %}
<div class="card-actions">
<a href="{% url 'dcim:device_add' %}?site={{ object.site.pk }}&location={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-ghost-primary btn-sm">
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> {% trans "Add a Device" %}
</a>
</div>
{% endif %}
</h5>
{% htmx_table 'dcim:device_list' location_id=object.pk rack_id='null' parent_bay_id='null' %}
{% if perms.dcim.add_device %}
<div class="card-footer text-end d-print-none">
<a href="{% url 'dcim:device_add' %}?site={{ object.site.pk }}&location={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-primary">
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> {% trans "Add a Device" %}
</a>
</div>
{% endif %}
</div>
{% plugin_full_width_page object %}
</div>

View File

@@ -8,7 +8,6 @@
<form method="post">
{% csrf_token %}
<div class="card">
<h5 class="card-header">{{ title }}</h5>
<div class="htmx-container table-responsive" id="object_list">
{% include 'htmx/table.html' %}
</div>

View File

@@ -51,15 +51,17 @@
<div class="row mb-3">
<div class="col col-md-12">
<div class="card">
<h5 class="card-header">{% trans "Child Regions" %}</h5>
<h5 class="card-header">
{% trans "Child Regions" %}
{% if perms.dcim.add_region %}
<div class="card-actions">
<a href="{% url 'dcim:region_add' %}?parent={{ object.pk }}" class="btn btn-ghost-primary btn-sm">
<span class="mdi mdi-plus-thick" aria-hidden="true"></span> {% trans "Add Region" %}
</a>
</div>
{% endif %}
</h5>
{% htmx_table 'dcim:region_list' parent_id=object.pk %}
{% if perms.dcim.add_region %}
<div class="card-footer text-end d-print-none">
<a href="{% url 'dcim:region_add' %}?parent={{ object.pk }}" class="btn btn-primary">
<span class="mdi mdi-plus-thick" aria-hidden="true"></span> {% trans "Add Region" %}
</a>
</div>
{% endif %}
</div>
{% plugin_full_width_page object %}
</div>

View File

@@ -122,26 +122,30 @@
<div class="row">
<div class="col col-md-12">
<div class="card">
<h5 class="card-header">Locations</h5>
<h5 class="card-header">
{% trans "Locations" %}
{% if perms.dcim.add_location %}
<div class="card-actions">
<a href="{% url 'dcim:location_add' %}?site={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-ghost-primary btn-sm">
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> {% trans "Add a Location" %}
</a>
</div>
{% endif %}
</h5>
{% htmx_table 'dcim:location_list' site_id=object.pk %}
{% if perms.dcim.add_location %}
<div class="card-footer text-end d-print-none">
<a href="{% url 'dcim:location_add' %}?site={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-primary">
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> {% trans "Add a Location" %}
</a>
</div>
{% endif %}
</div>
<div class="card">
<h5 class="card-header">Non-Racked Devices</h5>
<h5 class="card-header">
{% trans "Non-Racked Devices" %}
{% if perms.dcim.add_device %}
<div class="card-actions">
<a href="{% url 'dcim:device_add' %}?site={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-ghost-primary btn-sm">
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> {% trans "Add a Device" %}
</a>
</div>
{% endif %}
</h5>
{% htmx_table 'dcim:device_list' site_id=object.pk rack_id='null' parent_bay_id='null' %}
{% if perms.dcim.add_device %}
<div class="card-footer text-end d-print-none">
<a href="{% url 'dcim:device_add' %}?site={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-primary">
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> {% trans "Add a Device" %}
</a>
</div>
{% endif %}
</div>
{% plugin_full_width_page object %}
</div>

View File

@@ -51,15 +51,17 @@
<div class="row mb-3">
<div class="col col-md-12">
<div class="card">
<h5 class="card-header">{% trans "Child Groups" %}</h5>
<h5 class="card-header">
{% trans "Child Groups" %}
{% if perms.dcim.add_sitegroup %}
<div class="card-actions">
<a href="{% url 'dcim:sitegroup_add' %}?parent={{ object.pk }}" class="btn btn-ghost-primary btn-sm">
<span class="mdi mdi-plus-thick" aria-hidden="true"></span> {% trans "Add Site Group" %}
</a>
</div>
{% endif %}
</h5>
{% htmx_table 'dcim:sitegroup_list' parent_id=object.pk %}
{% if perms.dcim.add_sitegroup %}
<div class="card-footer text-end d-print-none">
<a href="{% url 'dcim:sitegroup_add' %}?parent={{ object.pk }}" class="btn btn-primary">
<span class="mdi mdi-plus-thick" aria-hidden="true"></span> {% trans "Add Site Group" %}
</a>
</div>
{% endif %}
</div>
{% plugin_full_width_page object %}
</div>

View File

@@ -49,7 +49,16 @@
</div>
<div class="col col-md-8">
<div class="card">
<h5 class="card-header">{% trans "Members" %}</h5>
<h5 class="card-header">
{% trans "Members" %}
{% if perms.dcim.change_virtualchassis %}
<div class="card-actions">
<a href="{% url 'dcim:virtualchassis_add_member' pk=object.pk %}?site={{ object.master.site.pk }}&rack={{ object.master.rack.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-ghost-primary btn-sm">
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> {% trans "Add Member" %}
</a>
</div>
{% endif %}
</h5>
<table class="table table-hover object-list">
<thead>
<tr>
@@ -78,13 +87,6 @@
</tr>
{% endfor %}
</table>
{% if perms.dcim.change_virtualchassis %}
<div class="card-footer text-end d-print-none">
<a href="{% url 'dcim:virtualchassis_add_member' pk=object.pk %}?site={{ object.master.site.pk }}&rack={{ object.master.rack.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-primary">
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> {% trans "Add Member" %}
</a>
</div>
{% endif %}
</div>
{% include 'inc/panels/comments.html' %}
{% plugin_right_page object %}