powerfeed.html 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. {% extends 'base.html' %}
  2. {% load buttons %}
  3. {% load static %}
  4. {% load custom_links %}
  5. {% load helpers %}
  6. {% load plugins %}
  7. {% block header %}
  8. <div class="row noprint">
  9. <div class="col-sm-8 col-md-9">
  10. <ol class="breadcrumb">
  11. <li><a href="{% url 'dcim:powerfeed_list' %}">Power Feeds</a></li>
  12. <li><a href="{{ powerfeed.power_panel.site.get_absolute_url }}">{{ powerfeed.power_panel.site }}</a></li>
  13. <li><a href="{{ powerfeed.power_panel.get_absolute_url }}">{{ powerfeed.power_panel }}</a></li>
  14. {% if powerfeed.rack %}
  15. <li><a href="{{ powerfeed.rack.get_absolute_url }}">{{ powerfeed.rack }}</a></li>
  16. {% endif %}
  17. <li>{{ powerfeed }}</li>
  18. </ol>
  19. </div>
  20. <div class="col-sm-4 col-md-3">
  21. <form action="{% url 'dcim:powerfeed_list' %}" method="get">
  22. <div class="input-group">
  23. <input type="text" name="q" class="form-control" placeholder="Search power feeds" />
  24. <span class="input-group-btn">
  25. <button type="submit" class="btn btn-primary">
  26. <span class="fa fa-search" aria-hidden="true"></span>
  27. </button>
  28. </span>
  29. </div>
  30. </form>
  31. </div>
  32. </div>
  33. <div class="pull-right noprint">
  34. {% plugin_buttons powerfeed %}
  35. {% if perms.dcim.add_powerfeed %}
  36. {% clone_button powerfeed %}
  37. {% endif %}
  38. {% if perms.dcim.change_powerfeed %}
  39. {% edit_button powerfeed %}
  40. {% endif %}
  41. {% if perms.dcim.delete_powerfeed %}
  42. {% delete_button powerfeed %}
  43. {% endif %}
  44. </div>
  45. <h1>{% block title %}{{ powerfeed }}{% endblock %}</h1>
  46. {% include 'inc/created_updated.html' with obj=powerfeed %}
  47. <div class="pull-right noprint">
  48. {% custom_links powerfeed %}
  49. </div>
  50. <ul class="nav nav-tabs">
  51. <li role="presentation"{% if not active_tab %} class="active"{% endif %}>
  52. <a href="{{ powerfeed.get_absolute_url }}">Cable</a>
  53. </li>
  54. {% if perms.extras.view_objectchange %}
  55. <li role="presentation"{% if active_tab == 'changelog' %} class="active"{% endif %}>
  56. <a href="{% url 'dcim:powerfeed_changelog' pk=powerfeed.pk %}">Change Log</a>
  57. </li>
  58. {% endif %}
  59. </ul>
  60. {% endblock %}
  61. {% block content %}
  62. <div class="row">
  63. <div class="col-md-6">
  64. <div class="panel panel-default">
  65. <div class="panel-heading">
  66. <strong>Power Feed</strong>
  67. </div>
  68. <table class="table table-hover panel-body attr-table">
  69. <tr>
  70. <td>Power Panel</td>
  71. <td>
  72. <a href="{{ powerfeed.power_panel.get_absolute_url }}">{{ powerfeed.power_panel }}</a>
  73. </td>
  74. </tr>
  75. <tr>
  76. <td>Rack</td>
  77. <td>
  78. {% if powerfeed.rack %}
  79. <a href="{{ powerfeed.rack.get_absolute_url }}">{{ powerfeed.rack }}</a>
  80. {% else %}
  81. <span class="text-muted">None</span>
  82. {% endif %}
  83. </td>
  84. </tr>
  85. <tr>
  86. <td>Type</td>
  87. <td>
  88. <span class="label label-{{ powerfeed.get_type_class }}">{{ powerfeed.get_type_display }}</span>
  89. </td>
  90. </tr>
  91. <tr>
  92. <td>Status</td>
  93. <td>
  94. <span class="label label-{{ powerfeed.get_status_class }}">{{ powerfeed.get_status_display }}</span>
  95. </td>
  96. </tr>
  97. <tr>
  98. <td>Connected Device</td>
  99. <td>
  100. {% if powerfeed.connected_endpoint %}
  101. <a href="{{ powerfeed.connected_endpoint.device.get_absolute_url }}">{{ powerfeed.connected_endpoint.device }}</a> ({{ powerfeed.connected_endpoint }})
  102. {% else %}
  103. <span class="text-muted">None</span>
  104. {% endif %}
  105. </td>
  106. </tr>
  107. <tr>
  108. <td>Utilization (Allocated)</td>
  109. {% with utilization=powerfeed.connected_endpoint.get_power_draw %}
  110. {% if utilization %}
  111. <td>
  112. {{ utilization.allocated }}VA / {{ powerfeed.available_power }}VA
  113. {% if powerfeed.available_power > 0 %}
  114. {% utilization_graph utilization.allocated|percentage:powerfeed.available_power %}
  115. {% endif %}
  116. </td>
  117. {% else %}
  118. <td class="text-muted">N/A</td>
  119. {% endif %}
  120. {% endwith %}
  121. </tr>
  122. </table>
  123. </div>
  124. <div class="panel panel-default">
  125. <div class="panel-heading">
  126. <strong>Electrical Characteristics</strong>
  127. </div>
  128. <table class="table table-hover panel-body attr-table">
  129. <tr>
  130. <td>Supply</td>
  131. <td>{{ powerfeed.get_supply_display }}</td>
  132. </tr>
  133. <tr>
  134. <td>Voltage</td>
  135. <td>{{ powerfeed.voltage }}V</td>
  136. </tr>
  137. <tr>
  138. <td>Amperage</td>
  139. <td>{{ powerfeed.amperage }}A</td>
  140. </tr>
  141. <tr>
  142. <td>Phase</td>
  143. <td>{{ powerfeed.get_phase_display }}</td>
  144. </tr>
  145. <tr>
  146. <td>Max Utilization</td>
  147. <td>{{ powerfeed.max_utilization }}%</td>
  148. </tr>
  149. </table>
  150. </div>
  151. {% include 'inc/custom_fields_panel.html' with obj=powerfeed %}
  152. {% include 'extras/inc/tags_panel.html' with tags=powerfeed.tags.all url='dcim:powerfeed_list' %}
  153. {% plugin_left_page powerfeed %}
  154. </div>
  155. <div class="col-md-6">
  156. <div class="panel panel-default">
  157. <div class="panel-heading">
  158. <strong>Connection</strong>
  159. </div>
  160. {% if powerfeed.cable %}
  161. <table class="table table-hover panel-body attr-table">
  162. <tr>
  163. <td>Cable</td>
  164. <td>
  165. <a href="{{ powerfeed.cable.get_absolute_url }}">{{ powerfeed.cable }}</a>
  166. <a href="{% url 'dcim:consoleport_trace' pk=powerfeed.pk %}" class="btn btn-primary btn-xs" title="Trace">
  167. <i class="fa fa-share-alt" aria-hidden="true"></i>
  168. </a>
  169. </td>
  170. </tr>
  171. {% if powerfeed.connected_endpoint %}
  172. <tr>
  173. <td>Device</td>
  174. <td>
  175. <a href="{{ powerfeed.connected_endpoint.device.get_absolute_url }}">{{ powerfeed.connected_endpoint.device }}</a>
  176. </td>
  177. </tr>
  178. <tr>
  179. <td>Name</td>
  180. <td>
  181. <a href="{{ powerfeed.connected_endpoint.get_absolute_url }}">{{ powerfeed.connected_endpoint.name }}</a>
  182. </td>
  183. </tr>
  184. <tr>
  185. <td>Type</td>
  186. <td>{{ powerfeed.connected_endpoint.get_type_display|placeholder }}</td>
  187. </tr>
  188. <tr>
  189. <td>Description</td>
  190. <td>{{ powerfeed.connected_endpoint.description|placeholder }}</td>
  191. </tr>
  192. <tr>
  193. <td>Path Status</td>
  194. <td>
  195. {% if powerfeed.path.is_active %}
  196. <span class="label label-success">Reachable</span>
  197. {% else %}
  198. <span class="label label-danger">Not Reachable</span>
  199. {% endif %}
  200. </td>
  201. </tr>
  202. {% endif %}
  203. </table>
  204. {% else %}
  205. <div class="panel-body text-muted">
  206. {% if perms.dcim.add_cable %}
  207. <a href="{% url 'dcim:powerfeed_connect' termination_a_id=powerfeed.pk termination_b_type='power-port' %}?return_url={{ powerfeed.get_absolute_url }}" class="btn btn-primary btn-sm pull-right">
  208. <span class="glyphicon glyphicon-resize-small" aria-hidden="true"></span> Connect
  209. </a>
  210. {% endif %}
  211. Not connected
  212. </div>
  213. {% endif %}
  214. </div>
  215. <div class="panel panel-default">
  216. <div class="panel-heading">
  217. <strong>Comments</strong>
  218. </div>
  219. <div class="panel-body rendered-markdown">
  220. {% if powerfeed.comments %}
  221. {{ powerfeed.comments|render_markdown }}
  222. {% else %}
  223. <span class="text-muted">None</span>
  224. {% endif %}
  225. </div>
  226. </div>
  227. {% plugin_right_page powerfeed %}
  228. </div>
  229. </div>
  230. <div class="row">
  231. <div class="col-md-12">
  232. {% plugin_full_width_page powerfeed %}
  233. </div>
  234. </div>
  235. {% endblock %}