Skip to content

Commit

Permalink
Showing 7 changed files with 128 additions and 9 deletions.
11 changes: 2 additions & 9 deletions app/controllers/catalog_controller.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
class CatalogController < ApplicationController
include AutomateTreeHelper
include ServiceDialogCreationMixin

before_action :check_privileges
before_action :get_session_data
@@ -692,15 +693,7 @@ def ot_edit_submit
end

def ot_form_field_changed
id = params[:id]
return unless load_edit("ot_edit__#{id}", "replace_cell__explorer")
ot_edit_get_form_vars
render :update do |page|
page << javascript_prologue
page << javascript_hide("buttons_off")
page << javascript_show("buttons_on")
page << "miqSparkle(false);"
end
dialog_creation_form_field_changed("ot_edit__#{params[:id]}")
end

def ot_copy_submit
67 changes: 67 additions & 0 deletions app/controllers/mixins/containers_common_mixin.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
module ContainersCommonMixin
extend ActiveSupport::Concern
include ServiceDialogCreationMixin

def button
@edit = session[:edit] # Restore @edit for adv search box
@@ -14,6 +15,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
@@ -28,8 +34,69 @@ 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
dialog_creation_form_field_changed("ct_edit__#{params[:id]}")
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")
16 changes: 16 additions & 0 deletions app/controllers/mixins/service_dialog_creation_mixin.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
module ServiceDialogCreationMixin
extend ActiveSupport::Concern

private

def dialog_creation_form_field_changed(id)
return unless load_edit(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
end
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,
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})
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
= render :partial => "service_dialog_from_ct"
3 changes: 3 additions & 0 deletions config/routes.rb
Original file line number Diff line number Diff line change
@@ -972,18 +972,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

0 comments on commit 0f799d9

Please sign in to comment.