cluster_add_devices.html 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. {% extends '_base.html' %}
  2. {% load static from staticfiles %}
  3. {% load form_helpers %}
  4. {% block content %}
  5. <form action="." method="post" class="form form-horizontal">
  6. {% csrf_token %}
  7. {% for field in form.hidden_fields %}
  8. {{ field }}
  9. {% endfor %}
  10. <div class="row">
  11. <div class="col-md-6 col-md-offset-3">
  12. <h3>{% block title %}Add Devices to Cluster {{ cluster }}{% endblock %}</h3>
  13. {% if form.non_field_errors %}
  14. <div class="panel panel-danger">
  15. <div class="panel-heading"><strong>Errors</strong></div>
  16. <div class="panel-body">
  17. {{ form.non_field_errors }}
  18. </div>
  19. </div>
  20. {% endif %}
  21. <div class="panel panel-default">
  22. <div class="panel-heading"><strong>Device Selection</strong></div>
  23. <div class="panel-body">
  24. <ul class="nav nav-tabs" role="tablist">
  25. <li role="presentation" class="active"><a href="#search" aria-controls="search" role="tab" data-toggle="tab">Search</a></li>
  26. <li role="presentation"><a href="#select" aria-controls="home" role="tab" data-toggle="tab">Select</a></li>
  27. </ul>
  28. <div class="tab-content">
  29. <div class="tab-pane active" id="search">
  30. <div class="form-group">
  31. <label class="col-md-3 control-label" for="id_search">Search</label>
  32. <div class="col-md-9">
  33. <input type="text" class="form-control" name="search" id="id_search" />
  34. </div>
  35. </div>
  36. </div>
  37. <div class="tab-pane" id="select">
  38. {% render_field form.region %}
  39. {% render_field form.site %}
  40. {% render_field form.rack %}
  41. </div>
  42. </div>
  43. {% render_field form.devices %}
  44. </div>
  45. </div>
  46. </div>
  47. </div>
  48. <div class="row">
  49. <div class="col-md-6 col-md-offset-3 text-right">
  50. <button type="submit" name="_add" class="btn btn-primary">Add Devices</button>
  51. <a href="{{ return_url }}" class="btn btn-default">Cancel</a>
  52. </div>
  53. </div>
  54. </form>
  55. {% endblock %}
  56. {% block javascript %}
  57. <script type="text/javascript">
  58. $(document).ready(function() {
  59. var device_list = $('#id_devices');
  60. $('#id_search').autocomplete({
  61. source: function(request, response) {
  62. $.ajax({
  63. type: 'GET',
  64. url: netbox_api_path + 'dcim/devices/',
  65. data: 'q=' + request.term,
  66. beforeSend: function() {
  67. device_list.empty();
  68. },
  69. success: function(data) {
  70. response($.map(data.results, function(item) {
  71. device_list.append('<option value="' + item['id'] + '">' + item['display_name'] + '</option>');
  72. }));
  73. }
  74. });
  75. }
  76. });
  77. });
  78. </script>
  79. {% endblock %}