vminterface.html 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. {% extends 'generic/object.html' %}
  2. {% load helpers %}
  3. {% load plugins %}
  4. {% load render_table from django_tables2 %}
  5. {% block breadcrumbs %}
  6. {{ block.super }}
  7. <li class="breadcrumb-item"><a href="{% url 'virtualization:vminterface_list' %}?virtual_machine_id={{ object.virtual_machine.pk }}">{{ object.virtual_machine }}</a></li>
  8. {% endblock %}
  9. {% block content %}
  10. <div class="row mb-3">
  11. <div class="col col-md-6">
  12. <div class="card">
  13. <h5 class="card-header">
  14. Interface
  15. </h5>
  16. <div class="card-body">
  17. <table class="table table-hover attr-table">
  18. <tr>
  19. <th scope="row">Virtual Machine</th>
  20. <td>
  21. <a href="{{ object.virtual_machine.get_absolute_url }}">{{ object.virtual_machine }}</a>
  22. </td>
  23. </tr>
  24. <tr>
  25. <th scope="row">Name</th>
  26. <td>{{ object.name }}</td>
  27. </tr>
  28. <tr>
  29. <th scope="row">Enabled</th>
  30. <td>
  31. {% if object.enabled %}
  32. <span class="text-success"><i class="mdi mdi-check-bold"></i></span>
  33. {% else %}
  34. <span class="text-danger"><i class="mdi mdi-close"></i></span>
  35. {% endif %}
  36. </td>
  37. </tr>
  38. <tr>
  39. <th scope="row">Parent</th>
  40. <td>
  41. {% if object.parent %}
  42. <a href="{{ object.parent.get_absolute_url }}">{{ object.parent }}</a>
  43. {% else %}
  44. <span class="text-muted">None</span>
  45. {% endif %}
  46. </td>
  47. </tr>
  48. <tr>
  49. <th scope="row">Bridge</th>
  50. <td>
  51. {% if object.bridge %}
  52. <a href="{{ object.bridge.get_absolute_url }}">{{ object.bridge }}</a>
  53. {% else %}
  54. <span class="text-muted">None</span>
  55. {% endif %}
  56. </td>
  57. </tr>
  58. <tr>
  59. <th scope="row">Description</th>
  60. <td>{{ object.description|placeholder }} </td>
  61. </tr>
  62. <tr>
  63. <th scope="row">MTU</th>
  64. <td>{{ object.mtu|placeholder }}</td>
  65. </tr>
  66. <tr>
  67. <th scope="row">MAC Address</th>
  68. <td><span class="text-monospace">{{ object.mac_address|placeholder }}</span></td>
  69. </tr>
  70. <tr>
  71. <th scope="row">802.1Q Mode</th>
  72. <td>{{ object.get_mode_display|placeholder }}</td>
  73. </tr>
  74. </table>
  75. </div>
  76. </div>
  77. {% include 'inc/panels/tags.html' %}
  78. {% plugin_left_page object %}
  79. </div>
  80. <div class="col col-md-6">
  81. {% include 'inc/panels/custom_fields.html' %}
  82. {% include 'ipam/inc/panels/fhrp_groups.html' %}
  83. {% plugin_right_page object %}
  84. </div>
  85. </div>
  86. <div class="row mb-3">
  87. <div class="col col-md-12">
  88. <div class="card">
  89. <h5 class="card-header">
  90. IP Addresses
  91. </h5>
  92. <div class="card-body">
  93. {% if ipaddress_table.rows %}
  94. {% render_table ipaddress_table 'inc/table.html' %}
  95. {% else %}
  96. <div class="text-muted">None</div>
  97. {% endif %}
  98. </div>
  99. {% if perms.ipam.add_ipaddress %}
  100. <div class="card-footer text-end noprint">
  101. <a href="{% url 'ipam:ipaddress_add' %}?virtual_machine={{ object.virtual_machine.pk }}&vminterface={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-sm btn-primary">
  102. <span class="mdi mdi-plus-thick" aria-hidden="true"></span> Add IP Address
  103. </a>
  104. </div>
  105. {% endif %}
  106. </div>
  107. </div>
  108. </div>
  109. <div class="row mb-3">
  110. <div class="col col-md-12">
  111. {% include 'inc/panel_table.html' with table=vlan_table heading="VLANs" %}
  112. </div>
  113. </div>
  114. <div class="row mb-3">
  115. <div class="col col-md-12">
  116. {% include 'inc/panel_table.html' with table=child_interfaces_table heading="Child Interfaces" %}
  117. </div>
  118. </div>
  119. <div class="row">
  120. <div class="col col-md-12">
  121. {% plugin_full_width_page object %}
  122. </div>
  123. </div>
  124. {% endblock %}