netbox-plugin-device-map/netbox_device_map/templates/netbox_device_map/main.html
Victor Golovanenko a3862a975c
Initial commit
2022-05-26 09:53:13 +03:00

87 lines
4.5 KiB
HTML

{% extends 'base/layout.html' %}
{% load static %}
{% block title %}Device map{% endblock %}
{% block head %}
{# Leaflet #}
<link rel="stylesheet" href="{% static 'netbox_device_map/leaflet/leaflet.css' %}">
<script src="{% static 'netbox_device_map/leaflet/leaflet.js' %}"></script>
{# Leaflet plugins #}
<link rel="stylesheet" href="{% static 'netbox_device_map/leaflet.fullscreen/Control.FullScreen.css' %}">
<script src="{% static 'netbox_device_map/leaflet.fullscreen/Control.FullScreen.js' %}"></script>
<script src="{% static 'netbox_device_map/js/svg-icon.js' %}"></script>
<link rel="stylesheet" href="{% static 'netbox_device_map/leaflet-sidebar/L.Control.Sidebar.css' %}">
<script src="{% static 'netbox_device_map/leaflet-sidebar/L.Control.Sidebar.js' %}"></script>
<link rel="stylesheet" href="{% static 'netbox_device_map/leaflet.markercluster/MarkerCluster.css' %}">
<link rel="stylesheet" href="{% static 'netbox_device_map/leaflet.markercluster/MarkerCluster.Default.css' %}">
<script src="{% static 'netbox_device_map/leaflet.markercluster/leaflet.markercluster.js' %}"></script>
<link rel="stylesheet" href="{% static 'netbox_device_map/style.css' %}">
{% endblock %}
{% block content %}
<ul class="nav nav-tabs px-3">
<li class="nav-item" role="presentation">
<button class="nav-link active" id="map-tab" data-bs-toggle="tab" data-bs-target="#map"
type="button" role="tab" aria-controls="map" aria-selected="true">
Geographical map
{% if map_data %}<span class="badge bg-secondary">{{ map_data.markers|length }}</span>{% endif %}
</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="filters-form-tab" data-bs-toggle="tab" data-bs-target="#filters-form"
type="button" role="tab" aria-controls="filters-form" aria-selected="true">
Filters
</button>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="map" role="tabpanel" aria-labelledby="map-tab">
{% if map_data %}
<div class="mb-3">
{% if non_geolocated_devices %}
<p>
<a class="btn btn-sm btn-outline-secondary text-toggle" data-bs-toggle="collapse"
href="#notShownDevices"
role="button" aria-expanded="false" aria-controls="collapseExample">
<span class="text-collapsed">Show</span>
<span class="text-expanded">Hide</span>
devices are not geolocated ({{ non_geolocated_devices|length }})
</a>
</p>
<div class="collapse" id="notShownDevices">
<div class="card card-body">
<ul>
{% for device in non_geolocated_devices %}
<li>
<a href="{{ device.get_absolute_url }}"
target="_blank">{{ device.name }}</a>
<span class="separator">·</span>
<span class="text-muted">{{ device.device_role.name }}</span>
</li>
{% endfor %}
</ul>
</div>
</div>
{% endif %}
</div>
<div id="{{ map_data.map_id }}" style="height: 700px"></div>
<div id="map-sidebar">
<div class="h3 sidebar-device-name"></div>
<div class="h6 sidebar-device-type"></div>
<div class="h5 sidebar-device-role"></div>
<div class="sidebar-cpe-list"></div>
</div>
{{ map_data|json_script:"map-data" }}
<script src="{% static 'netbox_device_map/js/map.js' %}"></script>
{% else %}
Please specify filtering criteria for displaying the map
{% endif %}
</div>
<div class="tab-pane" id="filters-form" role="tabpanel" aria-labelledby="filters-form-tab">
{% include 'inc/filter_list.html' %}
</div>
</div>
{% endblock %}