mirror of
https://github.com/drygdryg/netbox-plugin-device-map.git
synced 2024-11-29 21:50:53 +03:00
87 lines
4.5 KiB
HTML
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 %}
|