1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Added virtualization filters

This commit is contained in:
Jeremy Stretch
2017-08-16 17:00:17 -04:00
parent 4ef55502b4
commit 9acd792abe
10 changed files with 281 additions and 20 deletions

View File

@@ -17,7 +17,7 @@
<input type="text" name="q" class="form-control" placeholder="Search virtual machines" />
<span class="input-group-btn">
<button type="submit" class="btn btn-primary">
<span class="fa fa-search" aria-hidden="true"></span>
<span class="fa fa-search"></span>
</button>
</span>
</div>
@@ -27,13 +27,13 @@
<div class="pull-right">
{% if perms.virtualization.change_virtualmachine %}
<a href="{% url 'virtualization:virtualmachine_edit' pk=vm.pk %}" class="btn btn-warning">
<span class="fa fa-pencil" aria-hidden="true"></span>
<span class="fa fa-pencil"></span>
Edit this VM
</a>
{% endif %}
{% if perms.virtualization.delete_virtualmachine %}
<a href="{% url 'virtualization:virtualmachine_delete' pk=vm.pk %}" class="btn btn-danger">
<span class="fa fa-trash" aria-hidden="true"></span>
<span class="fa fa-trash"></span>
Delete this VM
</a>
{% endif %}
@@ -53,7 +53,68 @@
</tr>
<tr>
<td>Cluster</td>
<td><a href="{{ vm.cluster.get_absolute_url }}">{{ vm.cluster }}</a></td>
<td>
{% if vm.cluster.group %}
<a href="{{ vm.cluster.group.get_absolute_url }}">{{ vm.cluster.group }}</a>
<i class="fa fa-angle-right"></i>
{% endif %}
<a href="{{ vm.cluster.get_absolute_url }}">{{ vm.cluster }}</a>
</td>
</tr>
<tr>
<td>Cluster Type</td>
<td>{{ vm.cluster.type }}</td>
</tr>
<tr>
<td>Tenant</td>
<td>
{% if vm.tenant %}
{% if vm.tenant.group %}
<a href="{{ vm.tenant.group.get_absolute_url }}">{{ vm.tenant.group.name }}</a>
<i class="fa fa-angle-right"></i>
{% endif %}
<a href="{{ vm.tenant.get_absolute_url }}">{{ vm.tenant }}</a>
{% else %}
<span class="text-muted">None</span>
{% endif %}
</td>
</tr>
</table>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<strong>Resources</strong>
</div>
<table class="table table-hover panel-body attr-table">
<tr>
<td>Virtual CPUs</td>
<td>
{% if vm.vcpus %}
{{ vm.vcpus }}
{% else %}
<span class="text-muted">N/A</span>
{% endif %}
</td>
</tr>
<tr>
<td>Memory</td>
<td>
{% if vm.memory %}
{{ vm.memory }} MB
{% else %}
<span class="text-muted">N/A</span>
{% endif %}
</td>
</tr>
<tr>
<td>Disk Space</td>
<td>
{% if vm.disk %}
{{ vm.disk }} GB
{% else %}
<span class="text-muted">N/A</span>
{% endif %}
</td>
</tr>
</table>
</div>

View File

@@ -6,13 +6,17 @@
<div class="panel-heading"><strong>Virtual Machine</strong></div>
<div class="panel-body">
{% render_field form.name %}
{% render_field form.cluster_group %}
{% render_field form.cluster %}
{% render_field form.platform %}
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading"><strong>Cluster</strong></div>
<div class="panel-heading"><strong>Resources</strong></div>
<div class="panel-body">
{% render_field form.cluster %}
{% render_field form.vcpus %}
{% render_field form.memory %}
{% render_field form.disk %}
</div>
</div>
<div class="panel panel-default">

View File

@@ -12,7 +12,7 @@
Import virtual machines
</a>
{% endif %}
{% include 'inc/export_button.html' with obj_type='virtualmachines' %}
{% include 'inc/export_button.html' with obj_type='virtual machines' %}
</div>
<h1>{% block title %}Virtual Machines{% endblock %}</h1>
<div class="row">
@@ -24,3 +24,32 @@
</div>
</div>
{% endblock %}
{% block javascript %}
<script type="text/javascript">
$(document).ready(function() {
var cluster_group_list = $('#id_cluster_group');
var cluster_list = $('#id_cluster_id');
// Update cluster options based on selected group
cluster_group_list.change(function() {
var selected_groups = $(this).val();
if (selected_groups) {
cluster_list.empty();
$.ajax({
url: netbox_api_path + 'virtualization/clusters/?limit=500&group=' + selected_groups.join('&group='),
dataType: 'json',
success: function (response, status) {
$.each(response["results"], function (index, cluster) {
var option = $("<option></option>").attr("value", cluster.id).text(cluster.name);
cluster_list.append(option);
});
}
});
}
});
});
</script>
{% endblock %}