vlan.html 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. {% extends 'generic/object.html' %}
  2. {% load helpers %}
  3. {% load plugins %}
  4. {% block title %}VLAN {{ object.display_name }}{% endblock %}
  5. {% block breadcrumbs %}
  6. <li><a href="{% url 'ipam:vlan_list' %}">VLANs</a></li>
  7. {% if object.site %}
  8. <li><a href="{% url 'ipam:vlan_list' %}?site={{ object.site.slug }}">{{ object.site }}</a></li>
  9. {% endif %}
  10. {% if object.group %}
  11. <li><a href="{% url 'ipam:vlan_list' %}?group={{ object.group.slug }}">{{ object.group }}</a></li>
  12. {% endif %}
  13. <li>{{ object }}</li>
  14. {% endblock %}
  15. {% block tabs %}
  16. <ul class="nav nav-tabs" style="margin-bottom: 20px">
  17. <li role="presentation"{% if not active_tab %} class="active"{% endif %}>
  18. <a href="{% url 'ipam:vlan' pk=object.pk %}">VLAN</a>
  19. </li>
  20. <li role="presentation"{% if active_tab == 'interfaces' %} class="active"{% endif %}>
  21. <a href="{% url 'ipam:vlan_interfaces' pk=object.pk %}">Device Interfaces <span class="badge">{{ object.get_interfaces.count }}</span></a>
  22. </li>
  23. <li role="presentation"{% if active_tab == 'vminterfaces' %} class="active"{% endif %}>
  24. <a href="{% url 'ipam:vlan_vminterfaces' pk=object.pk %}">VM Interfaces <span class="badge">{{ object.get_vminterfaces.count }}</span></a>
  25. </li>
  26. {% if perms.extras.view_objectchange %}
  27. <li role="presentation"{% if active_tab == 'changelog' %} class="active"{% endif %}>
  28. <a href="{% url 'ipam:vlan_changelog' pk=object.pk %}">Change Log</a>
  29. </li>
  30. {% endif %}
  31. </ul>
  32. {% endblock %}
  33. {% block content %}
  34. <div class="row">
  35. <div class="col-md-4">
  36. <div class="panel panel-default">
  37. <div class="panel-heading">
  38. <strong>VLAN</strong>
  39. </div>
  40. <table class="table table-hover panel-body attr-table">
  41. <tr>
  42. <td>Site</td>
  43. <td>
  44. {% if object.site %}
  45. {% if object.site.region %}
  46. <a href="{{ object.site.region.get_absolute_url }}">{{ object.site.region }}</a> /
  47. {% endif %}
  48. <a href="{{ object.site.get_absolute_url }}">{{ object.site }}</a>
  49. {% else %}
  50. <span class="text-muted">None</span>
  51. {% endif %}
  52. </td>
  53. </tr>
  54. <tr>
  55. <td>Group</td>
  56. <td>
  57. {% if object.group %}
  58. <a href="{{ object.group.get_absolute_url }}">{{ object.group }}</a>
  59. {% else %}
  60. <span class="text-muted">None</span>
  61. {% endif %}
  62. </td>
  63. </tr>
  64. <tr>
  65. <td>VLAN ID</td>
  66. <td>{{ object.vid }}</td>
  67. </tr>
  68. <tr>
  69. <td>Name</td>
  70. <td>{{ object.name }}</td>
  71. </tr>
  72. <tr>
  73. <td>Tenant</td>
  74. <td>
  75. {% if object.tenant %}
  76. {% if object.tenant.group %}
  77. <a href="{{ object.tenant.group.get_absolute_url }}">{{ object.tenant.group }}</a> /
  78. {% endif %}
  79. <a href="{{ object.tenant.get_absolute_url }}">{{ object.tenant }}</a>
  80. {% else %}
  81. <span class="text-muted">None</span>
  82. {% endif %}
  83. </td>
  84. </tr>
  85. <tr>
  86. <td>Status</td>
  87. <td>
  88. <span class="label label-{{ object.get_status_class }}">{{ object.get_status_display }}</span>
  89. </td>
  90. </tr>
  91. <tr>
  92. <td>Role</td>
  93. <td>
  94. {% if object.role %}
  95. <a href="{% url 'ipam:vlan_list' %}?role={{ object.role.slug }}">{{ object.role }}</a>
  96. {% else %}
  97. <span class="text-muted">None</span>
  98. {% endif %}
  99. </td>
  100. </tr>
  101. <tr>
  102. <td>Description</td>
  103. <td>{{ object.description|placeholder }}</td>
  104. </tr>
  105. </table>
  106. </div>
  107. {% include 'inc/custom_fields_panel.html' %}
  108. {% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='ipam:vlan_list' %}
  109. {% plugin_left_page object %}
  110. </div>
  111. <div class="col-md-8">
  112. <div class="panel panel-default">
  113. <div class="panel-heading">
  114. <strong>Prefixes</strong>
  115. </div>
  116. {% include 'responsive_table.html' with table=prefix_table %}
  117. {% if perms.ipam.add_prefix %}
  118. <div class="panel-footer text-right noprint">
  119. <a href="{% url 'ipam:prefix_add' %}?{% if object.tenant %}tenant={{ object.tenant.pk }}&{% endif %}site={{ object.site.pk }}&vlan={{ object.pk }}" class="btn btn-primary btn-xs">
  120. <span class="mdi mdi-plus-thick" aria-hidden="true"></span>
  121. Add a prefix
  122. </a>
  123. </div>
  124. {% endif %}
  125. </div>
  126. {% plugin_right_page object %}
  127. </div>
  128. </div>
  129. <div class="row">
  130. <div class="col-md-12">
  131. {% plugin_full_width_page object %}
  132. </div>
  133. </div>
  134. {% endblock %}