$(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 // Populate vlan_id and prefix select field on first page load if( $("#network_id").length ) { 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(); $("#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 }); });