Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 16 additions & 17 deletions netbox_acls/templates/inc/view_tab.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,27 +5,26 @@
{% load render_table from django_tables2 %}

{% block extra_controls %}
{% if perms.netbox_todo.add_accesslist %}
<a href="{% url add_url %}?{{ model_type }}={{ object.pk }}&return_url={{ object.get_absolute_url }}"
class="btn btn-sm btn-primary">
<i class="mdi mdi-plus-thick"></i> Add Access List
</a>
{% endif %}
{% if perms.netbox_todo.add_accesslist %}
<a href="{% url add_url %}?{{ model_type }}={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-primary">
<i class="mdi mdi-plus-thick"></i> Add Access List
</a>
{% endif %}
{% endblock extra_controls %}

{% block content %}
{% include 'inc/table_controls_htmx.html' with table_modal=table_config %}
<form method="post">
{% csrf_token %}
<div class="card">
<div class="card-body" id="object_list">
{% include 'htmx/table.html' %}
</div>
</div>
</form>
{% include 'inc/table_controls_htmx.html' with table_modal=table_config %}
<form method="post">
{% csrf_token %}
<div class="card">
<div id="object_list">
{% include 'htmx/table.html' %}
</div>
</div>
</form>
{% endblock content %}

{% block modals %}
{{ block.super }}
{% table_config_form table %}
{{ block.super }}
{% table_config_form table %}
{% endblock modals %}
105 changes: 53 additions & 52 deletions netbox_acls/templates/netbox_acls/accesslist.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,63 +2,64 @@
{% load render_table from django_tables2 %}

{% block extra_controls %}
{% if perms.netbox_acls.change_policy %}
{% if object.type == 'extended' %}
<a href="{% url 'plugins:netbox_acls:aclextendedrule_add' %}?access_list={{ object.pk }}" class="btn btn-sm btn-primary">
{% elif object.type == 'standard' %}
<a href="{% url 'plugins:netbox_acls:aclstandardrule_add' %}?access_list={{ object.pk }}" class="btn btn-sm btn-primary">
{% endif %}
<span class="mdi mdi-plus-thick" aria-hidden="true"></span> Rule
</a>
{% if perms.netbox_acls.change_policy %}
{% if object.type == 'extended' %}
<a href="{% url 'plugins:netbox_acls:aclextendedrule_add' %}?access_list={{ object.pk }}" class="btn btn-primary">
{% elif object.type == 'standard' %}
<a href="{% url 'plugins:netbox_acls:aclstandardrule_add' %}?access_list={{ object.pk }}" class="btn btn-primary">
{% endif %}
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> Rule
</a>
{% endif %}
{% endblock extra_controls %}

{% block content %}
<div class="row mb-3">
<div class="col col-md-6">
<div class="card">
<h5 class="card-header">Access List</h5>
<div class="card-body">
<table class="table table-hover attr-table">
<caption>Access List</caption>
<tr>
<th scope="row">Type</th>
<td>{% badge object.get_type_display bg_color=object.get_type_color %}</td>
</tr>
<tr>
<th scope="row">Default Action</th>
<td>{% badge object.get_default_action_display bg_color=object.get_default_action_color %}</td>
</tr>
<tr>
<th scope="row">Rules</th>
{% if object.type == 'standard' %}
<td><a href="{% url 'plugins:netbox_acls:aclstandardrule_list' %}?access_list={{ object.pk }}">{{ object.aclstandardrules.count|placeholder }}</a></td>
{% elif object.type == 'extended' %}
<td><a href="{% url 'plugins:netbox_acls:aclextendedrule_list' %}?access_list={{ object.pk }}">{{ object.aclextendedrules.count|placeholder }}</a></td>
{% endif %}
</tr>
<tr>
<th scope="row">Assigned Host</th>
<td>{{ object.assigned_object|linkify }}</td>
</tr>
</table>
</div>
</div>
{% include 'inc/panels/custom_fields.html' %}
</div>
<div class="col col-md-6">
{% include 'inc/panels/tags.html' %}
{% include 'inc/panels/comments.html' %}
</div>
<div class="row mb-3">
<div class="col col-md-6">
<div class="card">
<h2 class="card-header">Access List</h2>
<table class="table table-hover attr-table">
<tr>
<th scope="row">Type</th>
<td>{% badge object.get_type_display bg_color=object.get_type_color %}</td>
</tr>
<tr>
<th scope="row">Default Action</th>
<td>{% badge object.get_default_action_display bg_color=object.get_default_action_color %}</td>
</tr>
<tr>
<th scope="row">Rules</th>
{% if object.type == 'standard' %}
<td>
<a href="{% url 'plugins:netbox_acls:aclstandardrule_list' %}?access_list={{ object.pk }}">{{ object.aclstandardrules.count|placeholder }}</a>
</td>
{% elif object.type == 'extended' %}
<td>
<a href="{% url 'plugins:netbox_acls:aclextendedrule_list' %}?access_list={{ object.pk }}">{{ object.aclextendedrules.count|placeholder }}</a>
</td>
{% endif %}
</tr>
<tr>
<th scope="row">Assigned Host</th>
<td>{{ object.assigned_object|linkify }}</td>
</tr>
</table>
</div>
{% include 'inc/panels/custom_fields.html' %}
</div>
<div class="col col-md-6">
{% include 'inc/panels/tags.html' %}
{% include 'inc/panels/comments.html' %}
</div>
<div class="row">
<div class="col col-md-12">
<div class="card">
<h5 class="card-header">{{ object.get_type_display }} Rules</h5>
<div class="card-body table-responsive">
{% render_table rules_table %}
</div>
</div>
</div>
<div class="row">
<div class="col col-md-12">
<div class="card">
<h2 class="card-header">{{ object.get_type_display }} Rules</h2>
<div class="table-responsive">
{% render_table rules_table %}
</div>
</div>
</div>
</div>
{% endblock content %}
164 changes: 86 additions & 78 deletions netbox_acls/templates/netbox_acls/accesslist_edit.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,88 +2,96 @@
{% load static %}
{% load form_helpers %}

{% block title %}{% if obj.pk %}Editing {{ obj }}{% else %}Add an Access List{% endif %}{% endblock %}

{% block form %}
{% render_errors form %}
<div class="field-group">
<h4>Access List Details</h4>
{% render_field form.name %}
{% render_field form.type %}
{% render_field form.default_action %}
{% render_field form.tags %}
</div>
<div class="field-group">
<h4>Host Assignment</h4>
<ul class="nav nav-pills" role="tablist">
<li class="nav-item" role="presentation">
<button
role="tab"
type="button"
id="device_tab"
data-bs-toggle="tab"
class="nav-link {% if not form.initial.virtual_chassis and not form.initial.virtual_machine %}active{% endif %}"
data-bs-target="#device"
aria-controls="device"
>
Device
</button>
</li>
<li class="nav-item" role="presentation">
<button
role="tab"
type="button"
id="vm_tab"
data-bs-toggle="tab"
class="nav-link {% if form.initial.virtual_chassis %}active{% endif %}"
data-bs-target="#virtualchassis"
aria-controls="virtualchassis"
>
Virtual Chassis
</button>
{% render_errors form %}
<div class="field-group my-5">
<div class="row">
<h2 class="col-9 offset-3">Access List Details</h2>
</div>
{% render_field form.name %}
{% render_field form.type %}
{% render_field form.default_action %}
{% render_field form.tags %}
</div>
<div class="field-group my-5">
<div class="row">
<h2 class="col-9 offset-3">Host Assignment</h2>
</div>
<div class="row">
<div class="col-9 offset-3">
<ul class="nav nav-pills mb-1" role="tablist">
<li class="nav-item" role="presentation">
<button
role="tab"
type="button"
id="device_tab"
data-bs-toggle="tab"
class="nav-link {% if not form.initial.virtual_chassis and not form.initial.virtual_machine %}active{% endif %}"
data-bs-target="#device"
aria-controls="device"
>
Device
</button>
</li>
<li class="nav-item" role="presentation">
<button
role="tab"
type="button"
id="vm_tab"
data-bs-toggle="tab"
class="nav-link {% if form.initial.virtual_chassis %}active{% endif %}"
data-bs-target="#virtualchassis"
aria-controls="virtualchassis"
>
Virtual Chassis
</button>
</li>
<li class="nav-item" role="presentation">
<button
role="tab"
type="button"
id="vm_tab"
data-bs-toggle="tab"
class="nav-link {% if form.initial.virtual_machine %}active{% endif %}"
data-bs-target="#virtualmachine"
aria-controls="virtualmachine"
>
Virtual Machine
</button>
</li>
<li class="nav-item" role="presentation">
<button
role="tab"
type="button"
id="vm_tab"
data-bs-toggle="tab"
class="nav-link {% if form.initial.virtual_machine %}active{% endif %}"
data-bs-target="#virtualmachine"
aria-controls="virtualmachine"
>
Virtual Machine
</button>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane{% if not form.initial.virtual_chassis and not form.initial.virtualmachine %} active{% endif %}" id="device">
{% render_field form.region %}
{% render_field form.site_group %}
{% render_field form.site %}
{% render_field form.device %}
</div>
<div class="tab-pane{% if form.initial.virtual_chassis %} active{% endif %}" id="virtualchassis">
{% render_field form.virtual_chassis %}
</div>
<div class="tab-pane{% if form.initial.virtual_machine %} active{% endif %}" id="virtualmachine">
{% render_field form.cluster_type %}
{% render_field form.cluster_group %}
{% render_field form.cluster %}
{% render_field form.virtual_machine %}
</div>
</div>
</div>
<div class="tab-content p-0 border-0">
<div class="tab-pane{% if not form.initial.virtual_chassis and not form.initial.virtualmachine %} active{% endif %}" id="device">
{% render_field form.region %}
{% render_field form.site_group %}
{% render_field form.site %}
{% render_field form.device %}
</div>
<div class="tab-pane{% if form.initial.virtual_chassis %} active{% endif %}" id="virtualchassis">
{% render_field form.virtual_chassis %}
</div>
<div class="tab-pane{% if form.initial.virtual_machine %} active{% endif %}" id="virtualmachine">
{% render_field form.cluster_type %}
{% render_field form.cluster_group %}
{% render_field form.cluster %}
{% render_field form.virtual_machine %}
</div>
</div>
</div>
<div class="field-group my-5">
<div class="row">
<h2 class="col-9 offset-3">Comments</h2>
</div>
</div>
<div class="field-group">
<h4>Comments</h4>
{% render_field form.comments %}
</div>
{% if form.custom_fields %}
<div class="card">
<h5 class="card-header">Custom Fields</h5>
<div class="card-body">
{% render_custom_fields form %}
</div>
</div>
{% if form.custom_fields %}
<div class="field-group my-5">
<div class="row">
<h2 class="col-9 offset-3">Custom Fields</h2>
</div>
{% render_custom_fields form %}
</div>
{% endif %}
{% endif %}
{% endblock %}
Loading