mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Relocate "add" buttons for embedded object tables
This commit is contained in:
@ -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>
|
||||
{% htmx_table 'dcim:virtualdevicecontext_list' device_id=object.pk %}
|
||||
<h5 class="card-header">
|
||||
{% trans "Virtual Device Contexts" %}
|
||||
{% 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">
|
||||
<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 %}
|
||||
</div>
|
||||
{% plugin_left_page object %}
|
||||
</div>
|
||||
@ -286,15 +290,17 @@
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "Services" %}</h5>
|
||||
{% htmx_table 'ipam:service_list' device_id=object.pk %}
|
||||
<h5 class="card-header">
|
||||
{% trans "Services" %}
|
||||
{% 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">
|
||||
<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 %}
|
||||
</div>
|
||||
{% include 'inc/panels/image_attachments.html' %}
|
||||
<div class="card">
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
{% htmx_table 'ipam:ipaddress_list' interface_id=object.pk %}
|
||||
<h5 class="card-header">
|
||||
{% trans "IP Addresses" %}
|
||||
{% 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">
|
||||
<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 %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -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>
|
||||
{% htmx_table 'dcim:location_list' parent_id=object.pk %}
|
||||
<h5 class="card-header">
|
||||
{% trans "Child Locations" %}
|
||||
{% 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">
|
||||
<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 %}
|
||||
</div>
|
||||
<div class="card">
|
||||
<h5 class="card-header">Non-Racked Devices</h5>
|
||||
{% htmx_table 'dcim:device_list' location_id=object.pk rack_id='null' parent_bay_id='null' %}
|
||||
<h5 class="card-header">
|
||||
{% trans "Non-Racked Devices" %}
|
||||
{% 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">
|
||||
<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' %}
|
||||
</div>
|
||||
{% plugin_full_width_page object %}
|
||||
</div>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
{% htmx_table 'dcim:region_list' parent_id=object.pk %}
|
||||
<h5 class="card-header">
|
||||
{% trans "Child Regions" %}
|
||||
{% 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">
|
||||
<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 %}
|
||||
</div>
|
||||
{% plugin_full_width_page object %}
|
||||
</div>
|
||||
|
@ -122,26 +122,30 @@
|
||||
<div class="row">
|
||||
<div class="col col-md-12">
|
||||
<div class="card">
|
||||
<h5 class="card-header">Locations</h5>
|
||||
{% htmx_table 'dcim:location_list' site_id=object.pk %}
|
||||
<h5 class="card-header">
|
||||
{% trans "Locations" %}
|
||||
{% 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">
|
||||
<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 %}
|
||||
</div>
|
||||
<div class="card">
|
||||
<h5 class="card-header">Non-Racked Devices</h5>
|
||||
{% htmx_table 'dcim:device_list' site_id=object.pk rack_id='null' parent_bay_id='null' %}
|
||||
<h5 class="card-header">
|
||||
{% trans "Non-Racked Devices" %}
|
||||
{% 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">
|
||||
<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' %}
|
||||
</div>
|
||||
{% plugin_full_width_page object %}
|
||||
</div>
|
||||
|
@ -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>
|
||||
{% htmx_table 'dcim:sitegroup_list' parent_id=object.pk %}
|
||||
<h5 class="card-header">
|
||||
{% trans "Child Groups" %}
|
||||
{% 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">
|
||||
<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 %}
|
||||
</div>
|
||||
{% plugin_full_width_page object %}
|
||||
</div>
|
||||
|
@ -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 %}
|
||||
|
@ -2,13 +2,15 @@
|
||||
{% load i18n %}
|
||||
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "Images" %}</h5>
|
||||
{% htmx_table 'extras:imageattachment_list' content_type_id=object|content_type_id object_id=object.pk %}
|
||||
<h5 class="card-header">
|
||||
{% trans "Images" %}
|
||||
{% if perms.extras.add_imageattachment %}
|
||||
<div class="card-footer text-end d-print-none">
|
||||
<a href="{% url 'extras:imageattachment_add' %}?content_type={{ object|content_type_id }}&object_id={{ object.pk }}" class="btn btn-primary">
|
||||
<div class="card-actions">
|
||||
<a href="{% url 'extras:imageattachment_add' %}?content_type={{ object|content_type_id }}&object_id={{ object.pk }}" class="btn btn-ghost-primary btn-sm">
|
||||
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> {% trans "Attach an image" %}
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</h5>
|
||||
{% htmx_table 'extras:imageattachment_list' content_type_id=object|content_type_id object_id=object.pk %}
|
||||
</div>
|
||||
|
@ -65,15 +65,17 @@
|
||||
<div class="row">
|
||||
<div class="col col-md-12">
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "Virtual IP Addresses" %}</h5>
|
||||
{% htmx_table 'ipam:ipaddress_list' fhrpgroup_id=object.pk %}
|
||||
<h5 class="card-header">
|
||||
{% trans "Virtual IP Addresses" %}
|
||||
{% if perms.ipam.add_ipaddress %}
|
||||
<div class="card-footer text-end">
|
||||
<a href="{% url 'ipam:ipaddress_add' %}?fhrpgroup={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-primary">
|
||||
<div class="card-actions">
|
||||
<a href="{% url 'ipam:ipaddress_add' %}?fhrpgroup={{ 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 IP Address" %}
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</h5>
|
||||
{% htmx_table 'ipam:ipaddress_list' fhrpgroup_id=object.pk %}
|
||||
</div>
|
||||
{% include 'inc/panel_table.html' with table=members_table heading='Members' %}
|
||||
{% plugin_full_width_page object %}
|
||||
|
@ -2,7 +2,21 @@
|
||||
{% load i18n %}
|
||||
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "FHRP Groups" %}</h5>
|
||||
<h5 class="card-header">
|
||||
{% trans "FHRP Groups" %}
|
||||
<div class="card-actions">
|
||||
{% if perms.ipam.add_fhrpgroup %}
|
||||
<a href="{% url 'ipam:fhrpgroup_add' %}?return_url={% url 'ipam:fhrpgroupassignment_add' %}%3Finterface_type={{ object|content_type_id }}%26interface_id={{ object.pk }}" class="btn btn-ghost-primary btn-sm">
|
||||
<span class="mdi mdi-plus-thick" aria-hidden="true"></span> {% trans "Create Group" %}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if perms.ipam.add_fhrpgroupassignment %}
|
||||
<a href="{% url 'ipam:fhrpgroupassignment_add' %}?interface_type={{ object|content_type_id }}&interface_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 "Assign Group" %}
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</h5>
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
@ -44,16 +58,4 @@
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="card-footer text-end d-print-none">
|
||||
{% if perms.ipam.add_fhrpgroup %}
|
||||
<a href="{% url 'ipam:fhrpgroup_add' %}?return_url={% url 'ipam:fhrpgroupassignment_add' %}%3Finterface_type={{ object|content_type_id }}%26interface_id={{ object.pk }}" class="btn btn-primary">
|
||||
<span class="mdi mdi-plus-thick" aria-hidden="true"></span> {% trans "Create Group" %}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if perms.ipam.add_fhrpgroupassignment %}
|
||||
<a href="{% url 'ipam:fhrpgroupassignment_add' %}?interface_type={{ object|content_type_id }}&interface_id={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-primary">
|
||||
<span class="mdi mdi-plus-thick" aria-hidden="true"></span> {% trans "Assign Group" %}
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -91,7 +91,16 @@
|
||||
</div>
|
||||
<div class="col col-md-6">
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "Addressing" %}</h5>
|
||||
<h5 class="card-header">
|
||||
{% trans "Addressing" %}
|
||||
{% if object.prefix.version == 4 %}
|
||||
<div class="card-actions">
|
||||
<a class="btn btn-ghost-primary btn-sm" data-bs-toggle="modal" data-bs-target="#prefix-modal">
|
||||
<i class="mdi mdi-information-outline" aria-hidden="true"></i> {% trans "Addressing Details" %}
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</h5>
|
||||
<table class="table table-hover attr-table">
|
||||
<tr>
|
||||
<th scope="row">{% trans "Utilization" %}</th>
|
||||
@ -142,13 +151,6 @@
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
{% if object.prefix.version == 4 %}
|
||||
<div class="card-footer text-end">
|
||||
<a class="btn btn-primary btn-sm" data-bs-toggle="modal" data-bs-target="#prefix-modal">
|
||||
<i class="mdi mdi-information-outline" aria-hidden="true"></i> {% trans "Addressing Details" %}
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% include 'inc/panels/custom_fields.html' %}
|
||||
{% include 'inc/panels/tags.html' %}
|
||||
|
@ -80,15 +80,17 @@
|
||||
<div class="row">
|
||||
<div class="col col-md-12">
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "Prefixes" %}</h5>
|
||||
{% htmx_table 'ipam:prefix_list' vlan_id=object.pk %}
|
||||
<h5 class="card-header">
|
||||
{% trans "Prefixes" %}
|
||||
{% if perms.ipam.add_prefix %}
|
||||
<div class="card-footer text-end d-print-none">
|
||||
<a href="{% url 'ipam:prefix_add' %}?{% if object.tenant %}tenant={{ object.tenant.pk }}&{% endif %}site={{ object.site.pk }}&vlan={{ object.pk }}" class="btn btn-primary">
|
||||
<div class="card-actions">
|
||||
<a href="{% url 'ipam:prefix_add' %}?{% if object.tenant %}tenant={{ object.tenant.pk }}&{% endif %}site={{ object.site.pk }}&vlan={{ object.pk }}" class="btn btn-ghost-primary btn-sm">
|
||||
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> {% trans "Add a Prefix" %}
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</h5>
|
||||
{% htmx_table 'ipam:prefix_list' vlan_id=object.pk %}
|
||||
</div>
|
||||
{% plugin_full_width_page object %}
|
||||
</div>
|
||||
|
@ -42,15 +42,17 @@
|
||||
</div>
|
||||
<div class="col col-md-12">
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "Child Groups" %}</h5>
|
||||
{% htmx_table 'tenancy:contactgroup_list' parent_id=object.pk %}
|
||||
<h5 class="card-header">
|
||||
{% trans "Child Groups" %}
|
||||
{% if perms.tenancy.add_contactgroup %}
|
||||
<div class="card-footer text-end d-print-none">
|
||||
<a href="{% url 'tenancy:contactgroup_add' %}?parent={{ object.pk }}" class="btn btn-primary">
|
||||
<div class="card-actions">
|
||||
<a href="{% url 'tenancy:contactgroup_add' %}?parent={{ object.pk }}" class="btn btn-ghost-primary btn-sm">
|
||||
<span class="mdi mdi-plus-thick" aria-hidden="true"></span> {% trans "Add Contact Group" %}
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</h5>
|
||||
{% htmx_table 'tenancy:contactgroup_list' parent_id=object.pk %}
|
||||
</div>
|
||||
{% plugin_full_width_page object %}
|
||||
</div>
|
||||
|
@ -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>
|
||||
{% htmx_table 'tenancy:tenantgroup_list' parent_id=object.pk %}
|
||||
<h5 class="card-header">
|
||||
{% trans "Child Groups" %}
|
||||
{% if perms.tenancy.add_tenantgroup %}
|
||||
<div class="card-footer text-end d-print-none">
|
||||
<a href="{% url 'tenancy:tenantgroup_add' %}?parent={{ object.pk }}" class="btn btn-primary">
|
||||
<div class="card-actions">
|
||||
<a href="{% url 'tenancy:tenantgroup_add' %}?parent={{ object.pk }}" class="btn btn-ghost-primary btn-sm">
|
||||
<span class="mdi mdi-plus-thick" aria-hidden="true"></span> {% trans "Add Tenant Group" %}
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</h5>
|
||||
{% htmx_table 'tenancy:tenantgroup_list' parent_id=object.pk %}
|
||||
</div>
|
||||
{% plugin_full_width_page object %}
|
||||
</div>
|
||||
|
@ -146,15 +146,17 @@
|
||||
</table>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "Services" %}</h5>
|
||||
{% htmx_table 'ipam:service_list' virtual_machine_id=object.pk %}
|
||||
<h5 class="card-header">
|
||||
{% trans "Services" %}
|
||||
{% if perms.ipam.add_service %}
|
||||
<div class="card-footer text-end d-print-none">
|
||||
<a href="{% url 'ipam:service_add' %}?virtual_machine={{ object.pk }}" class="btn btn-primary">
|
||||
<div class="card-actions">
|
||||
<a href="{% url 'ipam:service_add' %}?virtual_machine={{ 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' virtual_machine_id=object.pk %}
|
||||
</div>
|
||||
{% plugin_right_page object %}
|
||||
</div>
|
||||
@ -163,15 +165,17 @@
|
||||
<div class="row">
|
||||
<div class="col col-md-12">
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "Virtual Disks" %}</h5>
|
||||
{% htmx_table 'virtualization:virtualdisk_list' virtual_machine_id=object.pk %}
|
||||
<h5 class="card-header">
|
||||
{% trans "Virtual Disks" %}
|
||||
{% if perms.virtualization.add_virtualdisk %}
|
||||
<div class="card-footer text-end d-print-none">
|
||||
<a href="{% url 'virtualization:virtualdisk_add' %}?device={{ object.device.pk }}&virtual_machine={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-primary">
|
||||
<div class="card-actions">
|
||||
<a href="{% url 'virtualization:virtualdisk_add' %}?device={{ object.device.pk }}&virtual_machine={{ 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 Virtual Disk" %}
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</h5>
|
||||
{% htmx_table 'virtualization:virtualdisk_list' virtual_machine_id=object.pk %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -81,15 +81,17 @@
|
||||
<div class="row mb-3">
|
||||
<div class="col col-md-12">
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "IP Addresses" %}</h5>
|
||||
{% htmx_table 'ipam:ipaddress_list' vminterface_id=object.pk %}
|
||||
<h5 class="card-header">
|
||||
{% trans "IP Addresses" %}
|
||||
{% if perms.ipam.add_ipaddress %}
|
||||
<div class="card-footer text-end d-print-none">
|
||||
<a href="{% url 'ipam:ipaddress_add' %}?virtual_machine={{ object.virtual_machine.pk }}&vminterface={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-primary">
|
||||
<div class="card-actions">
|
||||
<a href="{% url 'ipam:ipaddress_add' %}?virtual_machine={{ object.virtual_machine.pk }}&vminterface={{ 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' vminterface_id=object.pk %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -52,15 +52,17 @@
|
||||
<div class="row mb-3">
|
||||
<div class="col col-md-12">
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "Terminations" %}</h5>
|
||||
{% htmx_table 'vpn:l2vpntermination_list' l2vpn_id=object.pk %}
|
||||
<h5 class="card-header">
|
||||
{% trans "Terminations" %}
|
||||
{% if perms.vpn.add_l2vpntermination %}
|
||||
<div class="card-footer text-end d-print-none">
|
||||
<a href="{% url 'vpn:l2vpntermination_add' %}?l2vpn={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-primary{% if not object.can_add_termination %} disabled" aria-disabled="true{% endif %}">
|
||||
<div class="card-actions">
|
||||
<a href="{% url 'vpn:l2vpntermination_add' %}?l2vpn={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-ghost-primary btn-sm{% if not object.can_add_termination %} disabled" aria-disabled="true{% endif %}">
|
||||
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> {% trans "Add a Termination" %}
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</h5>
|
||||
{% htmx_table 'vpn:l2vpntermination_list' l2vpn_id=object.pk %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -68,15 +68,17 @@
|
||||
<div class="row">
|
||||
<div class="col col-md-12">
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "Terminations" %}</h5>
|
||||
{% htmx_table 'vpn:tunneltermination_list' tunnel_id=object.pk %}
|
||||
<h5 class="card-header">
|
||||
{% trans "Terminations" %}
|
||||
{% if perms.vpn.add_tunneltermination %}
|
||||
<div class="card-footer text-end d-print-none">
|
||||
<a href="{% url 'vpn:tunneltermination_add' %}?tunnel={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-primary">
|
||||
<div class="card-actions">
|
||||
<a href="{% url 'vpn:tunneltermination_add' %}?tunnel={{ 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 Termination" %}
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</h5>
|
||||
{% htmx_table 'vpn:tunneltermination_list' tunnel_id=object.pk %}
|
||||
</div>
|
||||
{% plugin_full_width_page object %}
|
||||
</div>
|
||||
|
@ -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>
|
||||
{% htmx_table 'wireless:wirelesslangroup_list' parent_id=object.pk %}
|
||||
<h5 class="card-header">
|
||||
{% trans "Child Groups" %}
|
||||
{% if perms.wireless.add_wirelesslangroup %}
|
||||
<div class="card-footer text-end d-print-none">
|
||||
<a href="{% url 'wireless:wirelesslangroup_add' %}?parent={{ object.pk }}" class="btn btn-primary">
|
||||
<div class="card-actions">
|
||||
<a href="{% url 'wireless:wirelesslangroup_add' %}?parent={{ object.pk }}" class="btn btn-ghost-primary btn-sm">
|
||||
<span class="mdi mdi-plus-thick" aria-hidden="true"></span> {% trans "Add Wireless LAN Group" %}
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</h5>
|
||||
{% htmx_table 'wireless:wirelesslangroup_list' parent_id=object.pk %}
|
||||
</div>
|
||||
{% plugin_full_width_page object %}
|
||||
</div>
|
||||
|
Reference in New Issue
Block a user