Revision 8b98d8e0
Added by Ondřej Pražák over 8 years ago
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
Fixes #1477 - Hostgroup no longer looses puppet classes when environment changed during hostgroup editing