Project

General

Profile

« Previous | Next » 

Revision 8b98d8e0

Added by Ondřej Pražák over 8 years ago

Fixes #1477 - Hostgroup no longer looses puppet classes when environment changed during hostgroup editing

View differences:

app/controllers/hostgroups_controller.rb
@hostgroup ||= Hostgroup.new
@hostgroup.environment = @environment if @environment
@hostgroup.puppetclasses = Puppetclass.where(:id => params[:hostgroup][:puppetclass_ids])
render :partial => 'puppetclasses/class_selection', :locals => {:obj => (@hostgroup), :type => 'hostgroup'}
end
app/helpers/application_helper.rb
end
def remove_link_to_function(text, options)
link_to_function(text, "remove_puppet_class(this)",
options.merge(:'data-original-title'=>_("Click to remove %s") % options[:"data-class-name"]))
options.delete_if { |key, value| !options[key].to_s } # otherwise error during template render
title = (_("Click to remove %s") % options[:"data-class-name"])
link_to_function(text, "remove_puppet_class(this)", options.merge!(:'data-original-title'=> title))
end
def link_to_add_puppetclass(klass, type)
app/views/puppetclasses/_class_selection.html.erb
<div class="row">
<%= render "puppetclasses/classes",
:puppetclasses => obj.available_puppetclasses,
:selected_puppet_classes => obj.classes,
:selected_puppet_classes => (obj.classes + obj.puppetclasses).uniq,
:type => obj_type(obj)
%>
</div>
test/functional/hostgroups_controller_test.rb
assert_response :success
assert_template :partial => "common_parameters/_inherited_parameters"
end
test "should return the selected puppet classes on environment change" do
env = FactoryGirl.create(:environment)
klass = FactoryGirl.create(:puppetclass)
hg = FactoryGirl.create(:hostgroup, :environment => env)
assert_equal 0, hg.puppetclasses.length
post :environment_selected, { :id => hg.id,
:hostgroup => { :name => hg.name,
:puppetclass_ids => [klass.id],
:environment_id => "" }}, set_session_user
assert_equal(1, (assigns(:hostgroup).puppetclasses.length))
end
end

Also available in: Unified diff