mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
111 lines
4.8 KiB
HTML
111 lines
4.8 KiB
HTML
{% extends 'base/layout.html' %}
|
|
{% load helpers %}
|
|
|
|
{% block title %}Cable Trace for {{ object|meta:"verbose_name"|bettertitle }} {{ object }}{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="row">
|
|
|
|
{# Cable trace SVG & options #}
|
|
<div class="col col-md-5">
|
|
{% if path %}
|
|
<div class="text-center my-3">
|
|
<object data="{{ svg_url }}" class="rack_elevation"></object>
|
|
<a class="btn btn-outline-primary btn-sm my-3" href="{{ svg_url }}">
|
|
<i class="mdi mdi-file-download"></i> Download SVG
|
|
</a>
|
|
</div>
|
|
<div class="trace-end">
|
|
{% with traced_path=path.origin.trace %}
|
|
{% if path.is_split %}
|
|
<h3 class="text-danger">Path split!</h3>
|
|
<p>Select a node below to continue:</p>
|
|
<ul class="text-start">
|
|
{% for next_node in path.get_split_nodes %}
|
|
{% if next_node.cable %}
|
|
<li>
|
|
<a href="{% url 'dcim:frontport_trace' pk=next_node.pk %}">{{ next_node }}</a>
|
|
(Cable <a href="{{ next_node.cable.get_absolute_url }}">{{ next_node.cable }}</a>)
|
|
</li>
|
|
{% else %}
|
|
<li class="text-muted">{{ next_node }}</li>
|
|
{% endif %}
|
|
{% endfor %}
|
|
</ul>
|
|
{% else %}
|
|
<h3 class="text-center text-success">Trace Completed</h3>
|
|
<table class="table">
|
|
<tr>
|
|
<th scope="row">Total segments</th>
|
|
<td>{{ traced_path|length }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Total length</th>
|
|
<td>
|
|
{% if total_length %}
|
|
{{ total_length|floatformat:"-2" }}{% if not is_definitive %}+{% endif %} Meters /
|
|
{{ total_length|meters_to_feet|floatformat:"-2" }} Feet
|
|
{% else %}
|
|
<span class="text-muted">N/A</span>
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
{% endif %}
|
|
{% endwith %}
|
|
</div>
|
|
{% else %}
|
|
<h3 class="text-center text-muted my-3">
|
|
No paths found
|
|
</h3>
|
|
{% endif %}
|
|
</div>
|
|
|
|
{# Related paths #}
|
|
<div class="col col-md-7">
|
|
<div class="card">
|
|
<h5 class="card-header">
|
|
Related Paths
|
|
</h5>
|
|
<div class="card-body">
|
|
<table class="table table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th>Origin</th>
|
|
<th>Destination</th>
|
|
<th>Segments</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for cablepath in related_paths %}
|
|
<tr{% if cablepath.pk == path.pk %} class="info"{% endif %}>
|
|
<td>
|
|
<a href="?cablepath_id={{ cablepath.pk }}">
|
|
{{ cablepath.origin.parent_object }} / {{ cablepath.origin }}
|
|
</a>
|
|
</td>
|
|
<td>
|
|
{% if cablepath.destination %}
|
|
{{ cablepath.destination }} ({{ cablepath.destination.parent_object }})
|
|
{% else %}
|
|
<span class="text-muted">Incomplete</span>
|
|
{% endif %}
|
|
</td>
|
|
<td class="text-end">
|
|
{{ cablepath.segment_count }}
|
|
</td>
|
|
</tr>
|
|
{% empty %}
|
|
<td colspan="3" class="text-muted">
|
|
None found
|
|
</td>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
{% endblock %}
|