Skip to content

Commit eaa1a23

Browse files
GilbertCherrieagrare
authored andcommitted
Add configuration script table
1 parent 559d350 commit eaa1a23

File tree

5 files changed

+55
-3
lines changed

5 files changed

+55
-3
lines changed

app/controllers/application_controller/miq_request_methods.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,14 @@ def sort_configured_system_grid
312312
sort_grid('configured_system', @edit[:wf].get_field(:src_configured_system_ids, :service)[:values])
313313
end
314314

315+
# get the sort column that was clicked on, else use the current one
316+
def sort_configuration_script_grid
317+
assert_privileges("miq_request_edit")
318+
return unless load_edit("prov_edit__#{params[:id]}", "show_list")
319+
320+
sort_grid('configuration_script', @edit[:wf].get_field(:src_configuration_script_id, :service)[:values])
321+
end
322+
315323
# get the sort column that was clicked on, else use the current one
316324
def sort_pxe_img_grid
317325
assert_privileges("miq_request_edit")
@@ -824,6 +832,8 @@ def prov_get_form_vars
824832
elsif v.id.to_i == val.to_i
825833
@edit[:new][f.to_sym] = [val, v.name] # Save [value, description]
826834
end
835+
elsif evm_object_class == :ConfigurationScriptBase
836+
@edit[:new][f.to_sym] = [val, v.name] # Save [value, name]
827837
elsif v[1].to_i == val.to_i
828838
@edit[:new][f.to_sym] = [val, v[0]] # Save [value, description]
829839
end

app/helpers/request_info_helper.rb

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module RequestInfoHelper
33

44
PROV_FIELD_TYPES = [:vm, :host, :ds, :template, :vc, :pxe_img, :iso_img, :window_image].freeze
55

6-
PROV_FIELDS = [:src_vm_id, :placement_host_name, :placement_ds_name, :attached_ds, :sysprep_custom_spec, :customization_template_id, :pxe_image_id, :iso_image_id, :windows_image_id].freeze
6+
PROV_FIELDS = [:src_vm_id, :placement_host_name, :placement_ds_name, :attached_ds, :sysprep_custom_spec, :customization_template_id, :pxe_image_id, :iso_image_id, :windows_image_id, :src_configuration_script_id].freeze
77

88
def provision_tab_configuration(workflow)
99
prov_tab_labels = workflow.provisioning_tab_list.pluck(:name)
@@ -54,6 +54,8 @@ def prov_grid_data(field, field_id, spec_required)
5454
{:type => :iso_img, :iso_img => @iso_imgs}
5555
when :windows_image_id
5656
{:type => :window_image, :window_images => @windows_images}
57+
when :src_configuration_script_id
58+
{:type => :configuration_script, :configuration_scripts => @configuration_scripts}
5759
else
5860
{}
5961
end
@@ -93,6 +95,23 @@ def prov_vm_data(data)
9395
{:headers => headers, :rows => rows, :selected => :src_vm_id, :none_index => data[:none_index]}
9496
end
9597

98+
def prov_configuration_script_data(data)
99+
edit = data[:edit]
100+
headers = prov_grid_configuration_script_header(edit, data[:configuration_scripts], data[:type])
101+
rows = []
102+
if data[:configuration_scripts]
103+
rows += [prov_row_item(data[:none_index], none_cells(edit[:configuration_script_headers].length - 1))]
104+
if data[:configuration_scripts]
105+
rows += data[:configuration_scripts].map do |configuration_script|
106+
prov_row_item(configuration_script.id.to_s, prov_configuration_script_grid_cells(configuration_script))
107+
end
108+
end
109+
else
110+
rows.push({:id => data[:script].id.to_s, :clickable => true, :cells => prov_configuration_script_grid_cells(data[:script])})
111+
end
112+
{:headers => headers, :rows => rows, :selected => :src_configuration_script_id, :none_index => data[:none_index]}
113+
end
114+
96115
def prov_host_data(data)
97116
edit = data[:edit]
98117
options = edit || data[:options_data]
@@ -200,6 +219,20 @@ def prov_grid_vm_header(edit, clones, vms, type)
200219
headers
201220
end
202221

222+
def prov_grid_configuration_script_header(edit, configuration_scripts, type)
223+
header_keys = prov_header_keys(type.to_s)
224+
headers = []
225+
edit[header_keys[:columns]].each_with_index do |h, index|
226+
item = prov_grid_header_item(edit[header_keys[:headers]][h])
227+
if configuration_scripts
228+
item[:sort_choice] = h
229+
item[:sort_data] = prov_sort_data(edit, index, header_keys)
230+
end
231+
headers.push(item)
232+
end
233+
headers
234+
end
235+
203236
def prov_grid_host_header(edit, options, type)
204237
header_keys = prov_header_keys(type.to_s)
205238
headers = []
@@ -272,6 +305,13 @@ def prov_vm_grid_cells(data, edit)
272305
cells
273306
end
274307

308+
def prov_configuration_script_grid_cells(data)
309+
[
310+
prov_cell_data(data.name),
311+
prov_cell_data(data.description),
312+
]
313+
end
314+
275315
def prov_host_grid_cells(data, options)
276316
options[:host_columns].map do |col|
277317
prov_cell_data(data.send(col))

app/views/miq_request/_prov_configuration_script_grid.html.haml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
%table.table.table-bordered.table-striped
66
%thead
77
%tr
8-
- options[:configuraction_script_headers].each do |header, name|
8+
- options[:configuration_script_headers].each do |header, name|
99
%th
1010
-# Replaced to exclude non-view table fields from sorting
1111
-# dont show sort on show screen, need @edit variables for sort to work

app/views/miq_request/_prov_field.html.haml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,7 @@
200200
- elsif [:placement_folder_name].include?(field)
201201
-# wider Pull Down field that fits into 1280 wide screens
202202
.col-md-8
203+
- field_hash[:display] = :edit
203204
- if @edit && field_hash[:display] == :edit && !@edit[:stamp_typ]
204205
-# Allow editing of this pulldown field
205206
- if field_hash[:values].blank?
@@ -239,7 +240,7 @@
239240
:retirement_warn, :cloud_network, :network_port, :cloud_subnet,
240241
:floating_ip_address, :resource_group, :load_balancer,
241242
:sysprep_auto_logon_count, :sysprep_domain_name, :sysprep_server_license_mode,
242-
:vlan, :cloud_tenant, :src_configuration_profile_id, :src_configuration_script_id, :vm_minimum_memory,
243+
:vlan, :cloud_tenant, :src_configuration_profile_id, :vm_minimum_memory,
243244
:vm_maximum_memory, :boot_disk_size, :subnet, :placement_group, :shared_processor_pool].include?(field)
244245
-# Pull Down fields
245246
-# Multiple select Pull Down fields

config/routes.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2226,6 +2226,7 @@
22262226
retrieve_email
22272227
show_list
22282228
sort_configured_system_grid
2229+
sort_configuration_script_grid
22292230
sort_ds_grid
22302231
sort_host_grid
22312232
sort_iso_img_grid

0 commit comments

Comments
 (0)