Skip to content
Snippets Groups Projects
hosts.js 1.51 KiB
Newer Older
$(document).ready(function() {

  function update_available_ips() {
    // Retrieve available IPs for the selected network
    // and update the IP select field
    var network_id = $("#network_id").val();
    $.getJSON(
      $SCRIPT_ROOT + "/network/_retrieve_available_ips/" + network_id,
      function(json) {
        var $ip = $("#ip");
        $ip.empty();
        $.map(json.data, function(option, index) {
          $ip.append($("<option></option>").attr("value", option).text(option));
        });
      }
    );
  }

  // Populate IP select field on first page load
  update_available_ips();

  // Update IP select field when changing network
  $("#network_id").on('change', function() {
    update_available_ips();
  });

  // Enable / disable item_id field depending on type
  // Item can only be assigned for physical hosts
  $("#type").on('change', function() {
    var host_type = $(this).val();
    if( host_type == "Physical" ) {
      $("#item_id").prop("disabled", false);
    } else {
      $("#item_id").val("");
      $("#item_id").prop("disabled", true);
    }
  });

  // Prefill interface name with hostname
  $("#name").keyup(function(event) {
    var hostname = $(this).val();
    console.log(hostname);
    $("#interface_name").val(hostname);
  });

  var hosts_table =  $("#hosts_table").DataTable({
    "ajax": function(data, callback, settings) {
      $.getJSON(
        $SCRIPT_ROOT + "/network/_retrieve_hosts",
        function(json) {
          callback(json);
        });
    },
    "paging": false
  });

});