| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399 |
- LINKTERMINATION = """
- {% for termination in value %}
- {% if termination.parent_object %}
- <a href="{{ termination.parent_object.get_absolute_url }}">{{ termination.parent_object }}</a>
- <i class="mdi mdi-chevron-right"></i>
- {% endif %}
- <a href="{{ termination.get_absolute_url }}">{{ termination }}</a>{% if not forloop.last %}<br />{% endif %}
- {% empty %}
- {{ ''|placeholder }}
- {% endfor %}
- """
- CABLE_LENGTH = """
- {% load helpers %}
- {% if record.length %}{{ record.length|simplify_decimal }} {{ record.length_unit }}{% endif %}
- """
- DEVICE_WEIGHT = """
- {% load helpers %}
- {% if record.weight %}{{ record.weight|simplify_decimal }} {{ record.weight_unit }}{% endif %}
- """
- DEVICE_LINK = """
- <a href="{% url 'dcim:device' pk=record.pk %}">
- {{ record.name|default:'<span class="badge bg-info">Unnamed device</span>' }}
- </a>
- """
- DEVICEBAY_STATUS = """
- {% if record.installed_device_id %}
- <span class="badge bg-{{ record.installed_device.get_status_color }}">
- {{ record.installed_device.get_status_display }}
- </span>
- {% else %}
- <span class="badge bg-secondary">Vacant</span>
- {% endif %}
- """
- INTERFACE_IPADDRESSES = """
- <div class="table-badge-group">
- {% for ip in value.all %}
- {% if ip.status != 'active' %}
- <a href="{{ ip.get_absolute_url }}" class="table-badge badge bg-{{ ip.get_status_color }}" data-bs-toggle="tooltip" data-bs-placement="left" title="{{ ip.get_status_display }}">{{ ip }}</a>
- {% else %}
- <a href="{{ ip.get_absolute_url }}" class="table-badge">{{ ip }}</a>
- {% endif %}
- {% endfor %}
- </div>
- """
- INTERFACE_FHRPGROUPS = """
- <div class="table-badge-group">
- {% for assignment in value.all %}
- <a href="{{ assignment.group.get_absolute_url }}">{{ assignment.group.get_protocol_display }}: {{ assignment.group.group_id }}</a>
- {% endfor %}
- </div>
- """
- INTERFACE_TAGGED_VLANS = """
- {% if record.mode == 'tagged' %}
- {% for vlan in value.all %}
- <a href="{{ vlan.get_absolute_url }}">{{ vlan }}</a><br />
- {% endfor %}
- {% elif record.mode == 'tagged-all' %}
- All
- {% endif %}
- """
- INTERFACE_WIRELESS_LANS = """
- {% for wlan in value.all %}
- <a href="{{ wlan.get_absolute_url }}">{{ wlan }}</a><br />
- {% endfor %}
- """
- POWERFEED_CABLE = """
- <a href="{{ value.get_absolute_url }}">{{ value }}</a>
- <a href="{% url 'dcim:powerfeed_trace' pk=record.pk %}" class="btn btn-primary btn-sm" title="Trace">
- <i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i>
- </a>
- """
- POWERFEED_CABLETERMINATION = """
- <a href="{{ value.parent_object.get_absolute_url }}">{{ value.parent_object }}</a>
- <i class="mdi mdi-chevron-right"></i>
- <a href="{{ value.get_absolute_url }}">{{ value }}</a>
- """
- LOCATION_BUTTONS = """
- <a href="{% url 'dcim:rack_elevation_list' %}?site={{ record.site.slug }}&location_id={{ record.pk }}" class="btn btn-sm btn-primary" title="View elevations">
- <i class="mdi mdi-server"></i>
- </a>
- """
- #
- # Device component templatebuttons
- #
- MODULAR_COMPONENT_TEMPLATE_BUTTONS = """
- {% load helpers %}
- {% if perms.dcim.add_inventoryitemtemplate and record.device_type_id %}
- <a href="{% url 'dcim:inventoryitemtemplate_add' %}?device_type={{ record.device_type_id }}&component_type={{ record|content_type_id }}&component_id={{ record.pk }}&return_url={{ request.path }}" title="Add inventory item" class="btn btn-primary btn-sm">
- <i class="mdi mdi-plus-thick" aria-hidden="true"></i>
- </a>
- {% endif %}
- """
- #
- # Device component buttons
- #
- CONSOLEPORT_BUTTONS = """
- {% if perms.dcim.add_inventoryitem %}
- <a href="{% url 'dcim:inventoryitem_add' %}?device={{ record.device_id }}&component_type={{ record|content_type_id }}&component_id={{ record.pk }}&return_url={% url 'dcim:device_consoleports' pk=object.pk %}" class="btn btn-sm btn-success" title="Add inventory item">
- <i class="mdi mdi-plus-thick" aria-hidden="true"></i>
- </a>
- {% endif %}
- {% if record.cable %}
- <a href="{% url 'dcim:consoleport_trace' pk=record.pk %}" class="btn btn-primary btn-sm" title="Trace"><i class="mdi mdi-transit-connection-variant"></i></a>
- {% include 'dcim/inc/cable_toggle_buttons.html' with cable=record.cable %}
- {% if perms.dcim.delete_cable %}
- <a href="{% url 'dcim:cable_delete' pk=record.cable.pk %}?return_url={% url 'dcim:device_consoleports' pk=object.pk %}" title="Remove cable" class="btn btn-danger btn-sm">
- <i class="mdi mdi-ethernet-cable-off" aria-hidden="true"></i>
- </a>
- {% endif %}
- {% elif perms.dcim.add_cable %}
- <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i></a>
- <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-lan-connect" aria-hidden="true"></i></a>
- <span class="dropdown">
- <button type="button" class="btn btn-success btn-sm dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
- <span class="mdi mdi-ethernet-cable" aria-hidden="true"></span>
- </button>
- <ul class="dropdown-menu dropdown-menu-end">
- <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.consoleport&a_terminations={{ record.pk }}&b_terminations_type=dcim.consoleserverport&termination_b_site={{ object.site.pk }}&termination_b_rack={{ object.rack.pk }}&return_url={% url 'dcim:device_consoleports' pk=object.pk %}">Console Server Port</a></li>
- <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.consoleport&a_terminations={{ record.pk }}&b_terminations_type=dcim.frontport&termination_b_site={{ object.site.pk }}&termination_b_rack={{ object.rack.pk }}&return_url={% url 'dcim:device_consoleports' pk=object.pk %}">Front Port</a></li>
- <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.consoleport&a_terminations={{ record.pk }}&b_terminations_type=dcim.rearport&termination_b_site={{ object.site.pk }}&termination_b_rack={{ object.rack.pk }}&return_url={% url 'dcim:device_consoleports' pk=object.pk %}">Rear Port</a></li>
- </ul>
- </span>
- {% else %}
- <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-ethernet-cable" aria-hidden="true"></i></a>
- {% endif %}
- """
- CONSOLESERVERPORT_BUTTONS = """
- {% if perms.dcim.add_inventoryitem %}
- <a href="{% url 'dcim:inventoryitem_add' %}?device={{ record.device_id }}&component_type={{ record|content_type_id }}&component_id={{ record.pk }}&return_url={% url 'dcim:device_consoleserverports' pk=object.pk %}" class="btn btn-sm btn-success" title="Add inventory item">
- <i class="mdi mdi-plus-thick" aria-hidden="true"></i>
- </a>
- {% endif %}
- {% if record.cable %}
- <a href="{% url 'dcim:consoleserverport_trace' pk=record.pk %}" class="btn btn-primary btn-sm" title="Trace"><i class="mdi mdi-transit-connection-variant"></i></a>
- {% include 'dcim/inc/cable_toggle_buttons.html' with cable=record.cable %}
- {% if perms.dcim.delete_cable %}
- <a href="{% url 'dcim:cable_delete' pk=record.cable.pk %}?return_url={% url 'dcim:device_consoleserverports' pk=object.pk %}" title="Remove cable" class="btn btn-danger btn-sm">
- <i class="mdi mdi-ethernet-cable-off" aria-hidden="true"></i>
- </a>
- {% endif %}
- {% elif perms.dcim.add_cable %}
- <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i></a>
- <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-lan-connect" aria-hidden="true"></i></a>
- <span class="dropdown">
- <button type="button" class="btn btn-success btn-sm dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
- <span class="mdi mdi-ethernet-cable" aria-hidden="true"></span>
- </button>
- <ul class="dropdown-menu dropdown-menu-end">
- <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.consoleserverport&a_terminations={{ record.pk }}&b_terminations_type=dcim.consoleport&termination_b_site={{ object.site.pk }}&termination_b_rack={{ object.rack.pk }}&return_url={% url 'dcim:device_consoleserverports' pk=object.pk %}">Console Port</a></li>
- <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.consoleserverport&a_terminations={{ record.pk }}&b_terminations_type=dcim.frontport&termination_b_site={{ object.site.pk }}&termination_b_rack={{ object.rack.pk }}&return_url={% url 'dcim:device_consoleserverports' pk=object.pk %}">Front Port</a></li>
- <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.consoleserverport&a_terminations={{ record.pk }}&b_terminations_type=dcim.rearport&termination_b_site={{ object.site.pk }}&termination_b_rack={{ object.rack.pk }}&return_url={% url 'dcim:device_consoleserverports' pk=object.pk %}">Rear Port</a></li>
- </ul>
- </span>
- {% else %}
- <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-ethernet-cable" aria-hidden="true"></i></a>
- {% endif %}
- """
- POWERPORT_BUTTONS = """
- {% if perms.dcim.add_inventoryitem %}
- <a href="{% url 'dcim:inventoryitem_add' %}?device={{ record.device_id }}&component_type={{ record|content_type_id }}&component_id={{ record.pk }}&return_url={% url 'dcim:device_powerports' pk=object.pk %}" class="btn btn-sm btn-primary" title="Add inventory item">
- <i class="mdi mdi-plus-thick" aria-hidden="true"></i>
- </a>
- {% endif %}
- {% if record.cable %}
- <a href="{% url 'dcim:powerport_trace' pk=record.pk %}" class="btn btn-primary btn-sm" title="Trace"><i class="mdi mdi-transit-connection-variant"></i></a>
- {% include 'dcim/inc/cable_toggle_buttons.html' with cable=record.cable %}
- {% if perms.dcim.delete_cable %}
- <a href="{% url 'dcim:cable_delete' pk=record.cable.pk %}?return_url={% url 'dcim:device_powerports' pk=object.pk %}" title="Remove cable" class="btn btn-danger btn-sm">
- <i class="mdi mdi-ethernet-cable-off" aria-hidden="true"></i>
- </a>
- {% endif %}
- {% elif perms.dcim.add_cable %}
- <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i></a>
- <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-lan-connect" aria-hidden="true"></i></a>
- <span class="dropdown">
- <button type="button" class="btn btn-success btn-sm dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
- <span class="mdi mdi-ethernet-cable" aria-hidden="true"></span>
- </button>
- <ul class="dropdown-menu dropdown-menu-end">
- <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.powerport&a_terminations={{ record.pk }}&b_terminations_type=dcim.poweroutlet&termination_b_site={{ object.site.pk }}&termination_b_rack={{ object.rack.pk }}&return_url={% url 'dcim:device_powerports' pk=object.pk %}">Power Outlet</a></li>
- <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.powerport&a_terminations={{ record.pk }}&b_terminations_type=dcim.powerfeed&termination_b_site={{ object.site.pk }}&termination_b_rack={{ object.rack.pk }}&return_url={% url 'dcim:device_powerports' pk=object.pk %}">Power Feed</a></li>
- </ul>
- </span>
- {% else %}
- <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-ethernet-cable" aria-hidden="true"></i></a>
- {% endif %}
- """
- POWEROUTLET_BUTTONS = """
- {% if perms.dcim.add_inventoryitem %}
- <a href="{% url 'dcim:inventoryitem_add' %}?device={{ record.device_id }}&component_type={{ record|content_type_id }}&component_id={{ record.pk }}&return_url={% url 'dcim:device_poweroutlets' pk=object.pk %}" class="btn btn-sm btn-primary" title="Add inventory item">
- <i class="mdi mdi-plus-thick" aria-hidden="true"></i>
- </a>
- {% endif %}
- {% if record.cable %}
- <a href="{% url 'dcim:poweroutlet_trace' pk=record.pk %}" class="btn btn-primary btn-sm" title="Trace"><i class="mdi mdi-transit-connection-variant"></i></a>
- {% include 'dcim/inc/cable_toggle_buttons.html' with cable=record.cable %}
- {% if perms.dcim.delete_cable %}
- <a href="{% url 'dcim:cable_delete' pk=record.cable.pk %}?return_url={% url 'dcim:device_poweroutlets' pk=object.pk %}" title="Remove cable" class="btn btn-danger btn-sm">
- <i class="mdi mdi-ethernet-cable-off" aria-hidden="true"></i>
- </a>
- {% endif %}
- {% elif perms.dcim.add_cable %}
- <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i></a>
- <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-lan-connect" aria-hidden="true"></i></a>
- {% if not record.mark_connected %}
- <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.poweroutlet&a_terminations={{ record.pk }}&b_terminations_type=dcim.powerport&termination_b_site={{ object.site.pk }}&termination_b_rack={{ object.rack.pk }}&return_url={% url 'dcim:device_poweroutlets' pk=object.pk %}" title="Connect" class="btn btn-success btn-sm">
- <i class="mdi mdi-ethernet-cable" aria-hidden="true"></i>
- </a>
- {% else %}
- <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-ethernet-cable" aria-hidden="true"></i></a>
- {% endif %}
- {% endif %}
- """
- INTERFACE_BUTTONS = """
- {% if perms.dcim.change_interface %}
- <span class="dropdown">
- <button type="button" class="btn btn-primary btn-sm dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" title="Add">
- <span class="mdi mdi-plus-thick" aria-hidden="true"></span>
- </button>
- <ul class="dropdown-menu dropdown-menu-end">
- {% if perms.ipam.add_ipaddress %}
- <li><a class="dropdown-item" href="{% url 'ipam:ipaddress_add' %}?interface={{ record.pk }}&return_url={% url 'dcim:device_interfaces' pk=object.pk %}">IP Address</a></li>
- {% endif %}
- {% if perms.dcim.add_inventoryitem %}
- <li><a class="dropdown-item" href="{% url 'dcim:inventoryitem_add' %}?device={{ record.device_id }}&component_type={{ record|content_type_id }}&component_id={{ record.pk }}&return_url={% url 'dcim:device_interfaces' pk=object.pk %}">Inventory Item</a></li>
- {% endif %}
- {% if perms.dcim.add_interface %}
- <li><a class="dropdown-item" href="{% url 'dcim:interface_add' %}?device={{ record.device_id }}&parent={{ record.pk }}&name={{ record.name }}.&type=virtual&return_url={% url 'dcim:device_interfaces' pk=object.pk %}">Child Interface</a></li>
- {% endif %}
- {% if perms.ipam.add_l2vpntermination %}
- <li><a class="dropdown-item" href="{% url 'ipam:l2vpntermination_add' %}?device={{ object.pk }}&interface={{ record.pk }}&return_url={% url 'dcim:device_interfaces' pk=object.pk %}">L2VPN Termination</a></li>
- {% endif %}
- {% if perms.ipam.add_fhrpgroupassignment %}
- <li><a class="dropdown-item" href="{% url 'ipam:fhrpgroupassignment_add' %}?interface_type={{ record|content_type_id }}&interface_id={{ record.pk }}&return_url={% url 'dcim:device_interfaces' pk=object.pk %}">Assign FHRP Group</a></li>
- {% endif %}
- </ul>
- </span>
- {% endif %}
- {% if record.link %}
- <a href="{% url 'dcim:interface_trace' pk=record.pk %}" class="btn btn-primary btn-sm" title="Trace"><i class="mdi mdi-transit-connection-variant"></i></a>
- {% endif %}
- {% if record.cable %}
- {% include 'dcim/inc/cable_toggle_buttons.html' with cable=record.cable %}
- {% if perms.dcim.delete_cable %}
- <a href="{% url 'dcim:cable_delete' pk=record.cable.pk %}?return_url={% url 'dcim:device_interfaces' pk=object.pk %}" title="Remove cable" class="btn btn-danger btn-sm">
- <i class="mdi mdi-ethernet-cable-off" aria-hidden="true"></i>
- </a>
- {% endif %}
- {% elif record.wireless_link %}
- {% if perms.wireless.delete_wirelesslink %}
- <a href="{% url 'wireless:wirelesslink_delete' pk=record.wireless_link.pk %}?return_url={% url 'dcim:device_interfaces' pk=object.pk %}" title="Delete wireless link" class="btn btn-danger btn-sm">
- <i class="mdi mdi-wifi-off" aria-hidden="true"></i>
- </a>
- {% endif %}
- {% elif record.is_wired and perms.dcim.add_cable %}
- <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i></a>
- <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-lan-connect" aria-hidden="true"></i></a>
- {% if not record.mark_connected %}
- <span class="dropdown">
- <button type="button" class="btn btn-success btn-sm dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" title="Connect cable">
- <span class="mdi mdi-ethernet-cable" aria-hidden="true"></span>
- </button>
- <ul class="dropdown-menu dropdown-menu-end">
- <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.interface&a_terminations={{ record.pk }}&b_terminations_type=dcim.interface&termination_b_site={{ object.site.pk }}&termination_b_rack={{ object.rack.pk }}&return_url={% url 'dcim:device_interfaces' pk=object.pk %}">Interface</a></li>
- <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.interface&a_terminations={{ record.pk }}&b_terminations_type=dcim.frontport&termination_b_site={{ object.site.pk }}&termination_b_rack={{ object.rack.pk }}&return_url={% url 'dcim:device_interfaces' pk=object.pk %}">Front Port</a></li>
- <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.interface&a_terminations={{ record.pk }}&b_terminations_type=dcim.rearport&termination_b_site={{ object.site.pk }}&termination_b_rack={{ object.rack.pk }}&return_url={% url 'dcim:device_interfaces' pk=object.pk %}">Rear Port</a></li>
- <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.interface&a_terminations={{ record.pk }}&b_terminations_type=circuits.circuittermination&termination_b_site={{ object.site.pk }}&return_url={% url 'dcim:device_interfaces' pk=object.pk %}">Circuit Termination</a></li>
- </ul>
- </span>
- {% else %}
- <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-ethernet-cable" aria-hidden="true"></i></a>
- {% endif %}
- {% elif record.is_wireless and perms.wireless.add_wirelesslink %}
- <a href="{% url 'wireless:wirelesslink_add' %}?site_a={{ record.device.site.pk }}&location_a={{ record.device.location.pk }}&device_a={{ record.device_id }}&interface_a={{ record.pk }}&site_b={{ record.device.site.pk }}&location_b={{ record.device.location.pk }}" class="btn btn-success btn-sm">
- <span class="mdi mdi-wifi-plus" aria-hidden="true"></span>
- </a>
- {% endif %}
- """
- FRONTPORT_BUTTONS = """
- {% if perms.dcim.add_inventoryitem %}
- <a href="{% url 'dcim:inventoryitem_add' %}?device={{ record.device_id }}&component_type={{ record|content_type_id }}&component_id={{ record.pk }}&return_url={% url 'dcim:device_frontports' pk=object.pk %}" class="btn btn-sm btn-primary" title="Add inventory item">
- <i class="mdi mdi-plus-thick" aria-hidden="true"></i>
- </a>
- {% endif %}
- {% if record.cable %}
- <a href="{% url 'dcim:frontport_trace' pk=record.pk %}" class="btn btn-primary btn-sm" title="Trace"><i class="mdi mdi-transit-connection-variant"></i></a>
- {% include 'dcim/inc/cable_toggle_buttons.html' with cable=record.cable %}
- {% if perms.dcim.delete_cable %}
- <a href="{% url 'dcim:cable_delete' pk=record.cable.pk %}?return_url={% url 'dcim:device_frontports' pk=object.pk %}" title="Remove cable" class="btn btn-danger btn-sm">
- <i class="mdi mdi-ethernet-cable-off" aria-hidden="true"></i>
- </a>
- {% endif %}
- {% elif perms.dcim.add_cable %}
- <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i></a>
- <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-lan-connect" aria-hidden="true"></i></a>
- {% if not record.mark_connected %}
- <span class="dropdown">
- <button type="button" class="btn btn-success btn-sm dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
- <span class="mdi mdi-ethernet-cable" aria-hidden="true"></span>
- </button>
- <ul class="dropdown-menu dropdown-menu-end">
- <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.frontport&a_terminations={{ record.pk }}&b_terminations_type=dcim.interface&termination_b_site={{ object.site.pk }}&termination_b_rack={{ object.rack.pk }}&return_url={% url 'dcim:device_frontports' pk=object.pk %}">Interface</a></li>
- <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.frontport&a_terminations={{ record.pk }}&b_terminations_type=dcim.consoleserverport&termination_b_site={{ object.site.pk }}&termination_b_rack={{ object.rack.pk }}&return_url={% url 'dcim:device_frontports' pk=object.pk %}">Console Server Port</a></li>
- <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.frontport&a_terminations={{ record.pk }}&b_terminations_type=dcim.consoleport&termination_b_site={{ object.site.pk }}&termination_b_rack={{ object.rack.pk }}&return_url={% url 'dcim:device_frontports' pk=object.pk %}">Console Port</a></li>
- <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.frontport&a_terminations={{ record.pk }}&b_terminations_type=dcim.frontport&termination_b_site={{ object.site.pk }}&termination_b_rack={{ object.rack.pk }}&return_url={% url 'dcim:device_frontports' pk=object.pk %}">Front Port</a></li>
- <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.frontport&a_terminations={{ record.pk }}&b_terminations_type=dcim.rearport&termination_b_site={{ object.site.pk }}&termination_b_rack={{ object.rack.pk }}&return_url={% url 'dcim:device_frontports' pk=object.pk %}">Rear Port</a></li>
- <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.frontport&a_terminations={{ record.pk }}&b_terminations_type=circuits.circuittermination&termination_b_site={{ object.site.pk }}&return_url={% url 'dcim:device_frontports' pk=object.pk %}">Circuit Termination</a></li>
- </ul>
- </span>
- {% else %}
- <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-ethernet-cable" aria-hidden="true"></i></a>
- {% endif %}
- {% endif %}
- """
- REARPORT_BUTTONS = """
- {% if perms.dcim.add_inventoryitem %}
- <a href="{% url 'dcim:inventoryitem_add' %}?device={{ record.device_id }}&component_type={{ record|content_type_id }}&component_id={{ record.pk }}&return_url={% url 'dcim:device_rearports' pk=object.pk %}" class="btn btn-sm btn-primary" title="Add inventory item">
- <i class="mdi mdi-plus-thick" aria-hidden="true"></i>
- </a>
- {% endif %}
- {% if record.cable %}
- <a href="{% url 'dcim:rearport_trace' pk=record.pk %}" class="btn btn-primary btn-sm" title="Trace"><i class="mdi mdi-transit-connection-variant"></i></a>
- {% include 'dcim/inc/cable_toggle_buttons.html' with cable=record.cable %}
- {% if perms.dcim.delete_cable %}
- <a href="{% url 'dcim:cable_delete' pk=record.cable.pk %}?return_url={% url 'dcim:device_rearports' pk=object.pk %}" title="Remove cable" class="btn btn-danger btn-sm">
- <i class="mdi mdi-ethernet-cable-off" aria-hidden="true"></i>
- </a>
- {% endif %}
- {% elif perms.dcim.add_cable %}
- <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i></a>
- <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-lan-connect" aria-hidden="true"></i></a>
- {% if not record.mark_connected %}
- <span class="dropdown">
- <button type="button" class="btn btn-success btn-sm dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
- <span class="mdi mdi-ethernet-cable" aria-hidden="true"></span>
- </button>
- <ul class="dropdown-menu dropdown-menu-end">
- <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.rearport&a_terminations={{ record.pk }}&b_terminations_type=dcim.interface&termination_b_site={{ object.site.pk }}&termination_b_rack={{ object.rack.pk }}&return_url={% url 'dcim:device_rearports' pk=object.pk %}">Interface</a></li>
- <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.rearport&a_terminations={{ record.pk }}&b_terminations_type=dcim.consoleserverport&termination_b_site={{ object.site.pk }}&termination_b_rack={{ object.rack.pk }}&return_url={% url 'dcim:device_rearports' pk=object.pk %}">Console Server Port</a></li>
- <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.rearport&a_terminations={{ record.pk }}&b_terminations_type=dcim.consoleport&termination_b_site={{ object.site.pk }}&termination_b_rack={{ object.rack.pk }}&return_url={% url 'dcim:device_rearports' pk=object.pk %}">Console Port</a></li>
- <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.rearport&a_terminations={{ record.pk }}&b_terminations_type=dcim.frontport&termination_b_site={{ object.site.pk }}&termination_b_rack={{ object.rack.pk }}&return_url={% url 'dcim:device_rearports' pk=object.pk %}">Front Port</a></li>
- <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.rearport&a_terminations={{ record.pk }}&b_terminations_type=dcim.rearport&termination_b_site={{ object.site.pk }}&termination_b_rack={{ object.rack.pk }}&return_url={% url 'dcim:device_rearports' pk=object.pk %}">Rear Port</a></li>
- <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.rearport&a_terminations={{ record.pk }}&b_terminations_type=circuits.circuittermination&termination_b_site={{ object.site.pk }}&return_url={% url 'dcim:device_rearports' pk=object.pk %}">Circuit Termination</a></li>
- </ul>
- </span>
- {% else %}
- <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-ethernet-cable" aria-hidden="true"></i></a>
- {% endif %}
- {% endif %}
- """
- DEVICEBAY_BUTTONS = """
- {% if perms.dcim.change_devicebay %}
- {% if record.installed_device %}
- <a href="{% url 'dcim:devicebay_depopulate' pk=record.pk %}?return_url={% url 'dcim:device_devicebays' pk=object.pk %}" class="btn btn-danger btn-sm">
- <i class="mdi mdi-server-minus" aria-hidden="true" title="Remove device"></i>
- </a>
- {% else %}
- <a href="{% url 'dcim:devicebay_populate' pk=record.pk %}?return_url={% url 'dcim:device_devicebays' pk=object.pk %}" class="btn btn-success btn-sm">
- <i class="mdi mdi-server-plus" aria-hidden="true" title="Install device"></i>
- </a>
- {% endif %}
- {% endif %}
- """
- MODULEBAY_BUTTONS = """
- {% if perms.dcim.add_module %}
- {% if record.installed_module %}
- <a href="{% url 'dcim:module_delete' pk=record.installed_module.pk %}?return_url={% url 'dcim:device_modulebays' pk=object.pk %}" class="btn btn-danger btn-sm">
- <i class="mdi mdi-server-minus" aria-hidden="true" title="Remove module"></i>
- </a>
- {% else %}
- <a href="{% url 'dcim:module_add' %}?device={{ record.device_id }}&module_bay={{ record.pk }}&manufacturer={{ object.device_type.manufacturer_id }}&return_url={% url 'dcim:device_modulebays' pk=object.pk %}" class="btn btn-success btn-sm">
- <i class="mdi mdi-server-plus" aria-hidden="true" title="Install module"></i>
- </a>
- {% endif %}
- {% endif %}
- """
|