circuit_termination.html 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. {% load helpers %}
  2. <div class="panel panel-default">
  3. <div class="panel-heading">
  4. <div class="pull-right">
  5. {% if not termination and perms.circuits.add_circuittermination %}
  6. <a href="{% url 'circuits:circuittermination_add' circuit=circuit.pk %}?term_side={{ side }}" class="btn btn-xs btn-success">
  7. <span class="fa fa-plus" aria-hidden="true"></span> Add
  8. </a>
  9. {% endif %}
  10. {% if termination and perms.circuits.change_circuittermination %}
  11. <a href="{% url 'circuits:circuittermination_edit' pk=termination.pk %}" class="btn btn-xs btn-warning">
  12. <span class="fa fa-pencil" aria-hidden="true"></span> Edit
  13. </a>
  14. <a href="{% url 'circuits:circuit_terminations_swap' pk=circuit.pk %}" class="btn btn-xs btn-primary">
  15. <span class="fa fa-refresh" aria-hidden="true"></span> Swap
  16. </a>
  17. {% endif %}
  18. {% if termination and perms.circuits.delete_circuittermination %}
  19. <a href="{% url 'circuits:circuittermination_delete' pk=termination.pk %}?return_url={{ circuit.get_absolute_url }}" class="btn btn-xs btn-danger">
  20. <span class="fa fa-trash" aria-hidden="true"></span> Delete
  21. </a>
  22. {% endif %}
  23. </div>
  24. <strong>Termination - {{ side }} Side</strong>
  25. </div>
  26. {% if termination %}
  27. <table class="table table-hover panel-body attr-table">
  28. <tr>
  29. <td>Site</td>
  30. <td>
  31. {% if termination.site.region %}
  32. <a href="{{ termination.site.region.get_absolute_url }}">{{ termination.site.region }}</a>
  33. <i class="fa fa-angle-right"></i>
  34. {% endif %}
  35. <a href="{% url 'dcim:site' slug=termination.site.slug %}">{{ termination.site }}</a>
  36. </td>
  37. </tr>
  38. <tr>
  39. <td>Termination</td>
  40. <td>
  41. {% if termination.cable %}
  42. {% if perms.dcim.delete_cable %}
  43. <div class="pull-right">
  44. <a href="{% url 'dcim:cable_delete' pk=termination.cable.pk %}?return_url={{ termination.circuit.get_absolute_url }}" title="Remove cable" class="btn btn-danger btn-xs">
  45. <i class="glyphicon glyphicon-resize-full" aria-hidden="true"></i> Disconnect
  46. </a>
  47. </div>
  48. {% endif %}
  49. <a href="{{ termination.cable.get_absolute_url }}">{{ termination.cable }}</a>
  50. <a href="{% url 'circuits:circuittermination_trace' pk=termination.pk %}" class="btn btn-primary btn-xs" title="Trace">
  51. <i class="fa fa-share-alt" aria-hidden="true"></i>
  52. </a>
  53. {% if termination.connected_endpoint %}
  54. to <a href="{% url 'dcim:device' pk=termination.connected_endpoint.device.pk %}">{{ termination.connected_endpoint.device }}</a>
  55. <i class="fa fa-angle-right"></i> {{ termination.connected_endpoint }}
  56. {% endif %}
  57. {% else %}
  58. {% if perms.dcim.add_cable %}
  59. <div class="pull-right">
  60. <span class="dropdown">
  61. <button type="button" class="btn btn-success btn-xs dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  62. <span class="glyphicon glyphicon-resize-small" aria-hidden="true"></span> Connect
  63. </button>
  64. <ul class="dropdown-menu dropdown-menu-right">
  65. <li><a href="{% url 'circuits:circuittermination_connect' termination_a_id=termination.pk termination_b_type='interface' %}?return_url={{ device.get_absolute_url }}">Interface</a></li>
  66. <li><a href="{% url 'circuits:circuittermination_connect' termination_a_id=termination.pk termination_b_type='front-port' %}?return_url={{ device.get_absolute_url }}">Front Port</a></li>
  67. <li><a href="{% url 'circuits:circuittermination_connect' termination_a_id=termination.pk termination_b_type='rear-port' %}?return_url={{ device.get_absolute_url }}">Rear Port</a></li>
  68. </ul>
  69. </span>
  70. </div>
  71. {% endif %}
  72. <span class="text-muted">Not defined</span>
  73. {% endif %}
  74. </td>
  75. </tr>
  76. <tr>
  77. <td>Speed</td>
  78. <td>
  79. {% if termination.upstream_speed %}
  80. <i class="fa fa-arrow-down" title="Downstream"></i> {{ termination.port_speed|humanize_speed }} &nbsp;
  81. <i class="fa fa-arrow-up" title="Upstream"></i> {{ termination.upstream_speed|humanize_speed }}
  82. {% else %}
  83. {{ termination.port_speed|humanize_speed }}
  84. {% endif %}
  85. </td>
  86. </tr>
  87. <tr>
  88. <td>IP Addressing</td>
  89. <td>
  90. {% if termination.connected_endpoint %}
  91. {% for ip in termination.connected_endpoint.ip_addresses.all %}
  92. {% if not forloop.first %}<br />{% endif %}
  93. <a href="{% url 'ipam:ipaddress' pk=ip.pk %}">{{ ip }}</a> ({{ ip.vrf|default:"Global" }})
  94. {% empty %}
  95. <span class="text-muted">None</span>
  96. {% endfor %}
  97. {% else %}
  98. <span class="text-muted">&mdash;</span>
  99. {% endif %}
  100. </td>
  101. </tr>
  102. <tr>
  103. <td>Cross-Connect</td>
  104. <td>{{ termination.xconnect_id|placeholder }}</td>
  105. </tr>
  106. <tr>
  107. <td>Patch Panel/Port</td>
  108. <td>{{ termination.pp_info|placeholder }}</td>
  109. </tr>
  110. <tr>
  111. <td>Description</td>
  112. <td>{{ termination.description|placeholder }}</td>
  113. </tr>
  114. </table>
  115. {% else %}
  116. <div class="panel-body">
  117. <span class="text-muted">None</span>
  118. </div>
  119. {% endif %}
  120. </div>