{% extends 'base/layout.html' %} {% load static %} {% load i18n %} {% block title %}{% trans "Network Topology" %}{% endblock %} {% block header %}

{% trans "Network Topology" %}

{% endblock %} {% block head %} {% endblock %} {% block content %} {% csrf_token %} {# ===== Toolbar ===== #}
{# Row 1: Filters only #}
{{ filter_form.site_id }}
{{ filter_form.location_id }}
{{ filter_form.role_id }}
{{ filter_form.cable_type }}
{{ filter_form.tag }}
{{ filter_form.tenant_id }}{{ filter_form.rack_id }}
{% if active_filters %} {% endif %}
{# Row 2: Actions + stats #}
0 {% trans "devices" %} · 0 {% trans "cables" %}
{# Saved views #} {% if saved_view %} {% endif %} {# Zoom #}
{# Topology mode #}
{# View mode #}
{# Add devices #} {# Role hierarchy editor #} {# Auto-sort ports #} {# Snap to grid #} {# Reset layout #} {# Pass-through collapse #} {# #61 — Hide ports whose remote end isn't in the current filtered view #} {# Cable color mode #}
{# Cable style toggle #}
{# Cable labels toggle #} {# PDF Export #}
{# ===== Main layout: SVG graph + sidebar ===== #}
{% trans "Loading topology..." %}

{% trans "Use a filter or click" %} + Add {% trans "to add devices to the canvas." %}

{# Role hierarchy editor (hidden, slides over sidebar) #}
{% trans "Role Layer Order" %}

{% trans "Drag roles to reorder. Top = left side of topology (upstream), bottom = right side (downstream). Click Apply to re-layout." %}

{# Device picker panel (hidden, slides over sidebar) #}
{% trans "Add Devices" %}
{% trans "Search for devices to add" %}
{{ initial_filters_json|json_script:"topo-initial-filters" }} {{ saved_view_data|json_script:"topo-saved-layout" }} {# ===== Footer legend (switches based on topology mode) ===== #} {% endblock %} {% block javascript %} {% endblock %}