Remove modal window (#680)
This commit is contained in:
@@ -1,20 +0,0 @@
|
|||||||
|
|
||||||
from netbox.plugins import PluginTemplateExtension
|
|
||||||
from django.conf import settings
|
|
||||||
from packaging import version
|
|
||||||
|
|
||||||
NETBOX_CURRENT_VERSION = version.parse(settings.RELEASE.version)
|
|
||||||
|
|
||||||
|
|
||||||
class SiteButtons(PluginTemplateExtension):
|
|
||||||
models = ('dcim.site', )
|
|
||||||
def buttons(self):
|
|
||||||
return self.render('netbox_topology_views/site_button.html')
|
|
||||||
|
|
||||||
class LocationButtons(PluginTemplateExtension):
|
|
||||||
models = ('dcim.location', )
|
|
||||||
def buttons(self):
|
|
||||||
return self.render('netbox_topology_views/location_button.html')
|
|
||||||
|
|
||||||
|
|
||||||
template_extensions = [SiteButtons, LocationButtons]
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
{% load static %}
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="{% static 'netbox_topology_views/css/vendor.css' %}">
|
|
||||||
<link rel="stylesheet" href="{% static 'netbox_topology_views/css/app.css' %}">
|
|
||||||
|
|
||||||
<div class="modal-header">
|
|
||||||
<h5 class="modal-title">Topology Views</h5>
|
|
||||||
<div class="controls">
|
|
||||||
<div class="control-group">
|
|
||||||
{% block extra_controls %}{% endblock %}
|
|
||||||
<a id="btnDownloadXml" class="btn btn-info" href="#">
|
|
||||||
<i class="mdi mdi-download"></i>
|
|
||||||
Download XML
|
|
||||||
</a>
|
|
||||||
<a id="btnDownloadImage" class="btn btn-info" href="#">
|
|
||||||
<i class="mdi mdi-download"></i>
|
|
||||||
Download PNG
|
|
||||||
</a>
|
|
||||||
<a class="btn btn-danger" data-bs-dismiss="modal">
|
|
||||||
<i class="mdi mdi-close-thick"></i>
|
|
||||||
Close
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel-body" >
|
|
||||||
<div style="max-width: 900px; height: 500px;">
|
|
||||||
<div id="visgraph" style="width: 100%; height: 100%;">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
.modal-dialog {
|
|
||||||
max-width: 902px !important;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
var is_htmx = true;
|
|
||||||
var brokenImage = '{{ broken_image }}';
|
|
||||||
var topologyData = {{ topology_data | safe }};
|
|
||||||
const basePath = '{{ basepath }}';
|
|
||||||
</script>
|
|
||||||
<script src="{% static 'netbox_topology_views/js/app.js' %}?ver={{ epoch }} " defer></script>
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
<a role="button" class="btn btn-primary" title="Topology" href="#" hx-get="/plugins/netbox_topology_views/topology/?site_id={{ object.id }}&show_cables=True&show_unconnected=True" hx-target="#htmx-modal-content" data-bs-toggle="modal" data-bs-target="#htmx-modal">
|
|
||||||
<i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i>
|
|
||||||
Topology
|
|
||||||
</a>
|
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
import json
|
import json
|
||||||
from functools import reduce
|
from functools import reduce
|
||||||
from typing import DefaultDict, Dict, Optional, Union
|
from typing import DefaultDict, Dict, Optional, Union
|
||||||
import time
|
|
||||||
from itertools import chain
|
from itertools import chain
|
||||||
|
|
||||||
from circuits.models import Circuit, CircuitTermination, ProviderNetwork
|
from circuits.models import Circuit, CircuitTermination, ProviderNetwork
|
||||||
@@ -28,7 +27,6 @@ from django.shortcuts import render, get_object_or_404
|
|||||||
from django.views.generic import View
|
from django.views.generic import View
|
||||||
from extras.models import Tag, SavedFilter
|
from extras.models import Tag, SavedFilter
|
||||||
from wireless.models import WirelessLink
|
from wireless.models import WirelessLink
|
||||||
from utilities.htmx import htmx_partial
|
|
||||||
from netbox.views.generic import (
|
from netbox.views.generic import (
|
||||||
ObjectView,
|
ObjectView,
|
||||||
ObjectListView,
|
ObjectListView,
|
||||||
@@ -873,20 +871,6 @@ class TopologyHomeView(PermissionRequiredMixin, View):
|
|||||||
query_string = q.urlencode()
|
query_string = q.urlencode()
|
||||||
return HttpResponseRedirect(f"{request.path}?{query_string}")
|
return HttpResponseRedirect(f"{request.path}?{query_string}")
|
||||||
|
|
||||||
|
|
||||||
if htmx_partial(request):
|
|
||||||
return render(
|
|
||||||
request,
|
|
||||||
"netbox_topology_views/htmx_topology.html",
|
|
||||||
{
|
|
||||||
"filter_form": DeviceFilterForm(request.GET, label_suffix=""),
|
|
||||||
"topology_data": json.dumps(topo_data),
|
|
||||||
"broken_image": find_image_url("role-unknown"),
|
|
||||||
"epoch": int(time.time()),
|
|
||||||
"basepath": settings.BASE_PATH,
|
|
||||||
},
|
|
||||||
)
|
|
||||||
|
|
||||||
return render(
|
return render(
|
||||||
request,
|
request,
|
||||||
"netbox_topology_views/index.html",
|
"netbox_topology_views/index.html",
|
||||||
|
|||||||
Reference in New Issue
Block a user