circuit.html 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. {% extends '_base.html' %}
  2. {% load helpers %}
  3. {% block title %}{{ circuit.provider }} - {{ circuit.cid }}{% endblock %}
  4. {% block content %}
  5. <div class="row">
  6. <div class="col-md-9">
  7. <ol class="breadcrumb">
  8. <li><a href="{% url 'circuits:circuit_list' %}">Circuits</a></li>
  9. <li><a href="{% url 'circuits:circuit_list' %}?provider={{ circuit.provider.slug }}">{{ circuit.provider }}</a></li>
  10. <li>{{ circuit.cid }}</li>
  11. </ol>
  12. </div>
  13. <div class="col-md-3">
  14. <form action="{% url 'circuits:circuit_list' %}" method="get">
  15. <div class="input-group">
  16. <input type="text" name="q" class="form-control" />
  17. <span class="input-group-btn">
  18. <button type="submit" class="btn btn-primary">
  19. <span class="fa fa-search" aria-hidden="true"></span>
  20. </button>
  21. </span>
  22. </div>
  23. </form>
  24. </div>
  25. </div>
  26. <div class="pull-right">
  27. {% if perms.circuits.change_circuit %}
  28. <a href="{% url 'circuits:circuit_edit' pk=circuit.pk %}" class="btn btn-warning">
  29. <span class="fa fa-pencil" aria-hidden="true"></span>
  30. Edit this circuit
  31. </a>
  32. {% endif %}
  33. {% if perms.circuits.delete_circuit %}
  34. <a href="{% url 'circuits:circuit_delete' pk=circuit.pk %}" class="btn btn-danger">
  35. <span class="fa fa-trash" aria-hidden="true"></span>
  36. Delete this circuit
  37. </a>
  38. {% endif %}
  39. </div>
  40. <h1>{{ circuit.provider }} - {{ circuit.cid }}</h1>
  41. <div class="row">
  42. <div class="col-md-6">
  43. <div class="panel panel-default">
  44. <div class="panel-heading">
  45. <strong>Circuit</strong>
  46. </div>
  47. <table class="table table-hover panel-body">
  48. <tr>
  49. <td>Provider</td>
  50. <td>
  51. <a href="{% url 'circuits:provider' slug=circuit.provider.slug %}">{{ circuit.provider }}</a>
  52. </td>
  53. </tr>
  54. <tr>
  55. <td>Circuit ID</td>
  56. <td>{{ circuit.cid }}</td>
  57. </tr>
  58. <tr>
  59. <td>Type</td>
  60. <td><a href="{{ circuit.type.get_absolute_url }}">{{ circuit.type }}</a></td>
  61. </tr>
  62. <tr>
  63. <td>Tenant</td>
  64. <td>
  65. {% if circuit.tenant %}
  66. <a href="{{ circuit.tenant.get_absolute_url }}">{{ circuit.tenant }}</a>
  67. {% else %}
  68. <span class="text-muted">None</span>
  69. {% endif %}
  70. </td>
  71. </tr>
  72. <tr>
  73. <td>Install Date</td>
  74. <td>
  75. {% if circuit.install_date %}
  76. {{ circuit.install_date }}
  77. {% else %}
  78. <span class="text-muted">N/A</span>
  79. {% endif %}
  80. </td>
  81. </tr>
  82. <tr>
  83. <td>Speed</td>
  84. <td>
  85. {% if circuit.upstream_speed %}
  86. <i class="fa fa-arrow-down" title="Downstream"></i> {{ circuit.port_speed_human }} &nbsp;
  87. <i class="fa fa-arrow-up" title="Upstream"></i> {{ circuit.upstream_speed_human }}
  88. {% else %}
  89. {{ circuit.port_speed_human }}
  90. {% endif %}
  91. </td>
  92. </tr>
  93. <tr>
  94. <td>Commit Rate</td>
  95. <td>
  96. {% if circuit.commit_speed %}
  97. {{ circuit.commit_speed_human }}
  98. {% else %}
  99. <span class="text-muted">N/A</span>
  100. {% endif %}
  101. </td>
  102. </tr>
  103. <tr>
  104. <td>Created</td>
  105. <td>{{ circuit.created }}</td>
  106. </tr>
  107. <tr>
  108. <td>Last Updated</td>
  109. <td>{{ circuit.last_updated }}</td>
  110. </tr>
  111. </table>
  112. </div>
  113. {% with circuit.custom_fields as custom_fields %}
  114. {% include 'inc/custom_fields_panel.html' %}
  115. {% endwith %}
  116. </div>
  117. <div class="col-md-6">
  118. <div class="panel panel-default">
  119. <div class="panel-heading">
  120. <strong>Termination</strong>
  121. </div>
  122. <table class="table table-hover panel-body">
  123. <tr>
  124. <td>Site</td>
  125. <td>
  126. <a href="{% url 'dcim:site' slug=circuit.site.slug %}">{{ circuit.site }}</a>
  127. </td>
  128. </tr>
  129. <tr>
  130. <td>Termination</td>
  131. <td>
  132. {% if circuit.interface %}
  133. <span><a href="{% url 'dcim:device' pk=circuit.interface.device.pk %}">{{ circuit.interface.device }}</a> {{ circuit.interface }}</span>
  134. {% else %}
  135. <span class="text-muted">Not defined</span>
  136. {% endif %}
  137. </td>
  138. </tr>
  139. <tr>
  140. <td>Cross-Connect</td>
  141. <td>
  142. {% if circuit.xconnect_id %}
  143. {{ circuit.xconnect_id }}
  144. {% else %}
  145. <span class="text-muted">N/A</span>
  146. {% endif %}
  147. </td>
  148. </tr>
  149. <tr>
  150. <td>Patch Panel/Port</td>
  151. <td>
  152. {% if circuit.pp_info %}
  153. {{ circuit.pp_info }}
  154. {% else %}
  155. <span class="text-muted">N/A</span>
  156. {% endif %}
  157. </td>
  158. </tr>
  159. </table>
  160. </div>
  161. <div class="panel panel-default">
  162. <div class="panel-heading">
  163. <strong>Comments</strong>
  164. </div>
  165. <div class="panel-body">
  166. {% if circuit.comments %}
  167. {{ circuit.comments|gfm }}
  168. {% else %}
  169. <span class="text-muted">None</span>
  170. {% endif %}
  171. </div>
  172. </div>
  173. </div>
  174. </div>
  175. {% endblock %}