From 421ac132539c2d12de1cb467f2c6c8f9ebd62971 Mon Sep 17 00:00:00 2001 From: Alexander Olofsson <alexander.olofsson@liu.se> Date: Fri, 5 Apr 2024 14:48:38 +0200 Subject: [PATCH] Clean up method of extending provision methods --- .../foreman_wds/host_edit_extensions.js | 27 ++++++++++--------- .../hosts_controller_extensions.rb | 8 ++++-- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/app/assets/javascripts/foreman_wds/host_edit_extensions.js b/app/assets/javascripts/foreman_wds/host_edit_extensions.js index 19c224e..7a6b791 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 c9e5351..9ddf276 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 -- GitLab