diff --git a/app/assets/javascripts/foreman_wds/host_edit_extensions.js b/app/assets/javascripts/foreman_wds/host_edit_extensions.js index 19c224e9fed1ffb472f953caa9a09aeee3847f5e..7a6b791fc1a4fcc8924c616b63d05e7ea4c40f47 100644 --- a/app/assets/javascripts/foreman_wds/host_edit_extensions.js +++ b/app/assets/javascripts/foreman_wds/host_edit_extensions.js @@ -32,13 +32,6 @@ function wds_os_selected() { } }; -function wds_content_loaded() { - $('#wds_provisioning').detach().insertBefore('#media_select'); - $('#host_provision_method_build').prop('disabled', false); - $('#host_provision_method_wds').prop('disabled', false); -}; - - function wds_provision_method_selected() { $('div[id*=_provisioning]').hide(); $('#network_provisioning').show(); @@ -48,13 +41,23 @@ function wds_provision_method_selected() { $('#wds_image_select select').attr('disabled', true); } } -$(document) - .on('change', '#host_provision_method_wds', wds_provision_method_selected) - .on('change', '.host-architecture-os-select', wds_os_selected) - .on('ContentLoad', wds_content_loaded); -$(function() { +function wds_enable_provision_methods() { + $('#provision_method').show(); + $('#host_provision_method_build').prop('disabled', false); + $('#host_provision_method_wds').prop('disabled', false); + if($('#host_provision_method_wds').is(':checked')) { wds_provision_method_selected(); } +}; + +$(document) + .on('change', '#host_provision_method_wds', wds_provision_method_selected) + .on('change', '.host-architecture-os-select', wds_os_selected); + +$(function() { + $('#wds_provisioning').detach().insertBefore('#media_select'); + + wds_enable_provision_methods(); }); diff --git a/app/controllers/concerns/foreman_wds/hosts_controller_extensions.rb b/app/controllers/concerns/foreman_wds/hosts_controller_extensions.rb index c9e53511a553fbb4d380e095b228e0fb9acb4da2..9ddf276713b25c23d9300ca2073e70b6c1af141b 100644 --- a/app/controllers/concerns/foreman_wds/hosts_controller_extensions.rb +++ b/app/controllers/concerns/foreman_wds/hosts_controller_extensions.rb @@ -2,6 +2,8 @@ module ForemanWds module HostsControllerExtensions + extend ActiveSupport::Concern + included do before_action :cleanup_wds_params @@ -17,8 +19,10 @@ module ForemanWds end def cleanup_wds_params - # Don't create a WDS facet unless provisioning with it - params[:host].delete :wds_facet_attributes if params[:host] && params[:host][:provision_method] != 'wds' + return unless params.dig(:host, :provision_method) + + # Don't create a WDS facet if not provisioning with it + params[:host].delete :wds_facet_attributes if params.dig(:host, :provision_method) != 'wds' end end end