vlan.html 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. {% extends '_base.html' %}
  2. {% load helpers %}
  3. {% block header %}
  4. <div class="row noprint">
  5. <div class="col-sm-8 col-md-9">
  6. <ol class="breadcrumb">
  7. <li><a href="{% url 'ipam:vlan_list' %}">VLANs</a></li>
  8. {% if vlan.site %}
  9. <li><a href="{% url 'ipam:vlan_list' %}?site={{ vlan.site.slug }}">{{ vlan.site }}</a></li>
  10. {% endif %}
  11. {% if vlan.group %}
  12. <li><a href="{% url 'ipam:vlan_list' %}?group={{ vlan.group.slug }}">{{ vlan.group }}</a></li>
  13. {% endif %}
  14. <li>{{ vlan }}</li>
  15. </ol>
  16. </div>
  17. <div class="col-sm-4 col-md-3">
  18. <form action="{% url 'ipam:vlan_list' %}" method="get">
  19. <div class="input-group">
  20. <input type="text" name="q" class="form-control" placeholder="Search VLANs" />
  21. <span class="input-group-btn">
  22. <button type="submit" class="btn btn-primary">
  23. <span class="fa fa-search" aria-hidden="true"></span>
  24. </button>
  25. </span>
  26. </div>
  27. </form>
  28. </div>
  29. </div>
  30. <div class="pull-right noprint">
  31. {% if perms.ipam.change_vlan %}
  32. <a href="{% url 'ipam:vlan_edit' pk=vlan.pk %}" class="btn btn-warning">
  33. <span class="fa fa-pencil" aria-hidden="true"></span>
  34. Edit this VLAN
  35. </a>
  36. {% endif %}
  37. {% if perms.ipam.delete_vlan %}
  38. <a href="{% url 'ipam:vlan_delete' pk=vlan.pk %}" class="btn btn-danger">
  39. <span class="fa fa-trash" aria-hidden="true"></span>
  40. Delete this VLAN
  41. </a>
  42. {% endif %}
  43. </div>
  44. <h1>{% block title %}VLAN {{ vlan.display_name }}{% endblock %}</h1>
  45. {% include 'inc/created_updated.html' with obj=vlan %}
  46. <ul class="nav nav-tabs" style="margin-bottom: 20px">
  47. <li role="presentation"{% if not active_tab %} class="active"{% endif %}>
  48. <a href="{% url 'ipam:vlan' pk=vlan.pk %}">VLAN</a>
  49. </li>
  50. <li role="presentation"{% if active_tab == 'members' %} class="active"{% endif %}>
  51. <a href="{% url 'ipam:vlan_members' pk=vlan.pk %}">Members <span class="badge">{{ vlan.get_members.count }}</span></a>
  52. </li>
  53. <li role="presentation"{% if active_tab == 'changelog' %} class="active"{% endif %}>
  54. <a href="{% url 'ipam:vlan_changelog' pk=vlan.pk %}">Changelog</a>
  55. </li>
  56. </ul>
  57. {% endblock %}
  58. {% block content %}
  59. <div class="row">
  60. <div class="col-md-6">
  61. <div class="panel panel-default">
  62. <div class="panel-heading">
  63. <strong>VLAN</strong>
  64. </div>
  65. <table class="table table-hover panel-body attr-table">
  66. <tr>
  67. <td>Site</td>
  68. <td>
  69. {% if vlan.site %}
  70. {% if vlan.site.region %}
  71. <a href="{{ vlan.site.region.get_absolute_url }}">{{ vlan.site.region }}</a>
  72. <i class="fa fa-angle-right"></i>
  73. {% endif %}
  74. <a href="{% url 'dcim:site' slug=vlan.site.slug %}">{{ vlan.site }}</a>
  75. {% else %}
  76. <span class="text-muted">None</span>
  77. {% endif %}
  78. </td>
  79. </tr>
  80. <tr>
  81. <td>Group</td>
  82. <td>
  83. {% if vlan.group %}
  84. <a href="{{ vlan.group.get_absolute_url }}">{{ vlan.group }}</a>
  85. {% else %}
  86. <span class="text-muted">None</span>
  87. {% endif %}
  88. </td>
  89. </tr>
  90. <tr>
  91. <td>VLAN ID</td>
  92. <td>{{ vlan.vid }}</td>
  93. </tr>
  94. <tr>
  95. <td>Name</td>
  96. <td>{{ vlan.name }}</td>
  97. </tr>
  98. <tr>
  99. <td>Tenant</td>
  100. <td>
  101. {% if vlan.tenant %}
  102. {% if vlan.tenant.group %}
  103. <a href="{{ vlan.tenant.group.get_absolute_url }}">{{ vlan.tenant.group }}</a>
  104. <i class="fa fa-angle-right"></i>
  105. {% endif %}
  106. <a href="{{ vlan.tenant.get_absolute_url }}">{{ vlan.tenant }}</a>
  107. {% else %}
  108. <span class="text-muted">None</span>
  109. {% endif %}
  110. </td>
  111. </tr>
  112. <tr>
  113. <td>Status</td>
  114. <td>
  115. <span class="label label-{{ vlan.get_status_class }}">{{ vlan.get_status_display }}</span>
  116. </td>
  117. </tr>
  118. <tr>
  119. <td>Role</td>
  120. <td>
  121. {% if vlan.role %}
  122. <a href="{% url 'ipam:vlan_list' %}?role={{ vlan.role.slug }}">{{ vlan.role }}</a>
  123. {% else %}
  124. <span class="text-muted">None</span>
  125. {% endif %}
  126. </td>
  127. </tr>
  128. <tr>
  129. <td>Description</td>
  130. <td>{{ vlan.description|placeholder }}</td>
  131. </tr>
  132. </table>
  133. </div>
  134. {% include 'inc/custom_fields_panel.html' with obj=vlan %}
  135. {% include 'extras/inc/tags_panel.html' with tags=vlan.tags.all url='ipam:vlan_list' %}
  136. </div>
  137. <div class="col-md-6">
  138. <div class="panel panel-default">
  139. <div class="panel-heading">
  140. <strong>Prefixes</strong>
  141. </div>
  142. {% include 'responsive_table.html' with table=prefix_table %}
  143. {% if perms.ipam.add_prefix %}
  144. <div class="panel-footer text-right noprint">
  145. <a href="{% url 'ipam:prefix_add' %}?{% if vlan.tenant %}tenant={{ vlan.tenant.pk }}&{% endif %}site={{ vlan.site.pk }}&vlan={{ vlan.pk }}" class="btn btn-primary btn-xs">
  146. <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
  147. Add a prefix
  148. </a>
  149. </div>
  150. {% endif %}
  151. </div>
  152. </div>
  153. </div>
  154. {% endblock %}