Skip to content

Commit

Permalink
Added "Create Service Dialog from Container Template" support
Browse files Browse the repository at this point in the history
Added "Create Service Dialog from Container Template" button on Container Template summary screen.

https://www.pivotaltracker.com/story/show/147301019
  • Loading branch information
h-kataria committed Jun 23, 2017
1 parent e7f647e commit 21db721
Show file tree
Hide file tree
Showing 4 changed files with 115 additions and 0 deletions.
73 changes: 73 additions & 0 deletions app/controllers/mixins/containers_common_mixin.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@ def button
assign_policies(model) if params[:pressed] == "#{model.name.underscore}_protect"
check_compliance(model) if params[:pressed] == "#{model.name.underscore}_check_compliance"
end
if params[:pressed] == 'service_dialog_from_ct'
create_service_dialog
return
end

return if ["#{params[:controller]}_tag"].include?(params[:pressed]) && @flash_array.nil? # Tag screen showing

# Handle scan
Expand All @@ -28,8 +33,76 @@ def button
end
end

def service_dialog_from_ct
assert_privileges("service_dialog_from_ct")
ct = ContainerTemplate.find_by(:id => params[:id])
@right_cell_text = _("Adding a new Service Dialog from Container Template \"%{name}\"") % {:name => ct.name}
@edit = {:new => {:dialog_name => ""},
:key => "ct_edit__#{ct.id}",
:rec_id => ct.id}
@in_a_form = true
render "service_dialog_from_ct"
end

def service_dialog_from_ct_submit
case params[:button]
when "cancel"
service_dialog_from_ct_submit_cancel
when "save"
service_dialog_from_ct_submit_save
end
end

def ct_form_field_changed
return unless load_edit("ct_edit__#{params[:id]}")
@edit[:new][:dialog_name] = params[:dialog_name] if params[:dialog_name]
render :update do |page|
page << javascript_prologue
page << javascript_hide("buttons_off")
page << javascript_show("buttons_on")
page << "miqSparkle(false);"
end
end

private

def create_service_dialog
assert_privileges(params[:pressed])
drop_breadcrumb(:name => _("Create Service Dialog"), :url => "/container_template/service_dialog_from_ct")
javascript_redirect :action => 'service_dialog_from_ct',
:id => params[:id],
:escape => false
end

def service_dialog_from_ct_submit_cancel
add_flash(_("Creation of a new Service Dialog was cancelled by the user"))
@in_a_form = false
@edit = @record = nil
session[:flash_msgs] = @flash_array.dup # Put msg in session for next transaction to display
javascript_redirect previous_breadcrumb_url
end

def service_dialog_from_ct_submit_save
assert_privileges("service_dialog_from_ct")
load_edit("ct_edit__#{params[:id]}")
begin
ct_params = ContainerTemplate.find_by(:id => params[:id]).container_template_parameters.to_a
Dialog::ContainerTemplateServiceDialog.new.create_dialog(@edit[:new][:dialog_name],
ct_params)
rescue => bang
add_flash(_("Error when creating a Service Dialog from Container Template: %{error_message}") %
{:error_message => bang.message}, :error)
javascript_flash
else
add_flash(_("Service Dialog \"%{name}\" was successfully created") %
{:name => @edit[:new][:dialog_name]}, :success)
@in_a_form = false
@edit = @record = nil
session[:flash_msgs] = @flash_array.dup # Put msg in session for next transaction to display
javascript_redirect previous_breadcrumb_url
end
end

# Scan all selected or single displayed image(s)
def scan_images
assert_privileges("image_scan")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,19 @@
class ApplicationHelper::Toolbar::ContainerTemplateCenter < ApplicationHelper::Toolbar::Basic
button_group('orchestration_template_vmdb', [
select(
:orchestration_template_vmdb_choice,
'fa fa-cog fa-lg',
t = N_('Configuration'),
t,
:items => [
button(
:service_dialog_from_ct,
'pficon pficon-add-circle-o fa-lg',
t = N_('Create Service Dialog from Container Template'),
t),
]
),
])
button_group('container_template_policy', [
select(
:container_template_policy_choice,
Expand Down
24 changes: 24 additions & 0 deletions app/views/container_template/_service_dialog_from_ct.html.haml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#form_div
#basic_info_div
= render :partial => "layouts/flash_msg"
- url = url_for_only_path(:action => "ct_form_field_changed", :id => @edit[:rec_id])
.form-horizontal
.form-group
%label.col-md-2.control-label
= _('Service Dialog Name')
.col-md-8
= text_field_tag("dialog_name",
"",
:autocomplete => 'off',
:diabled => false,
:class => "form-control",
:maxlength => 255,
"data-miq_observe" => {:interval => '.5',
:url => url}.to_json)
- unless @explorer
= render(:partial => '/layouts/edit_form_buttons',
:locals => {:record_id => @edit[:rec_id],
:action_url => 'service_dialog_from_ct_submit',
:noreset => true,
:force_cancel_button => true,
:ajax_buttons => true})
3 changes: 3 additions & 0 deletions config/routes.rb
Original file line number Diff line number Diff line change
Expand Up @@ -970,18 +970,21 @@
download_data
download_summary_pdf
index
service_dialog_from_ct
show
show_list
tagging_edit
tag_edit_form_field_changed
),
:post => %w(
button
ct_form_field_changed
dynamic_checkbox_refresh
form_field_changed
listnav_search_selected
quick_search
sections_field_changed
service_dialog_from_ct_submit
show
show_list
tagging_edit
Expand Down

0 comments on commit 21db721

Please sign in to comment.