diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2008-01-20 14:01:02 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2008-01-20 14:01:02 +0000 |
commit | d79c20c4f28f9b43f1bc105cb590d244c1b322f2 (patch) | |
tree | df1c65f6101c440fdfe12cf4a142b6ef22eab65d | |
parent | 889bf388be0325d4c38b984a4eaa23db6102938a (diff) | |
download | redmine-d79c20c4f28f9b43f1bc105cb590d244c1b322f2.tar.gz redmine-d79c20c4f28f9b43f1bc105cb590d244c1b322f2.zip |
Fixed: custom field selection is not saved when unchecking them all on project settings
git-svn-id: http://redmine.rubyforge.org/svn/trunk@1083 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r-- | app/controllers/projects_controller.rb | 1 | ||||
-rw-r--r-- | app/views/projects/_form.rhtml | 3 | ||||
-rw-r--r-- | test/functional/projects_controller_test.rb | 3 |
3 files changed, 4 insertions, 3 deletions
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 2342e8074..30e7ef85f 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -113,7 +113,6 @@ class ProjectsController < ApplicationController # Edit @project def edit if request.post? - @project.custom_fields = IssueCustomField.find(params[:custom_field_ids]) if params[:custom_field_ids] if params[:custom_fields] @custom_values = ProjectCustomField.find(:all, :order => "#{CustomField.table_name}.position").collect { |x| CustomValue.new(:custom_field => x, :customized => @project, :value => params["custom_fields"][x.id.to_s]) } @project.custom_values = @custom_values diff --git a/app/views/projects/_form.rhtml b/app/views/projects/_form.rhtml index e29777af4..e63c929cc 100644 --- a/app/views/projects/_form.rhtml +++ b/app/views/projects/_form.rhtml @@ -35,10 +35,11 @@ <fieldset class="box"><legend><%=l(:label_custom_field_plural)%></legend> <% for custom_field in @custom_fields %> <label class="floating"> - <%= check_box_tag "custom_field_ids[]", custom_field.id, ((@project.custom_fields.include? custom_field) or custom_field.is_for_all?), (custom_field.is_for_all? ? {:disabled => "disabled"} : {}) %> + <%= check_box_tag 'project[custom_field_ids][]', custom_field.id, ((@project.custom_fields.include? custom_field) or custom_field.is_for_all?), (custom_field.is_for_all? ? {:disabled => "disabled"} : {}) %> <%= custom_field.name %> </label> <% end %> +<%= hidden_field_tag 'project[custom_field_ids][]', '' %> </fieldset> <% end %> <!--[eoform:project]--> diff --git a/test/functional/projects_controller_test.rb b/test/functional/projects_controller_test.rb index 61047079e..16eb2906e 100644 --- a/test/functional/projects_controller_test.rb +++ b/test/functional/projects_controller_test.rb @@ -71,7 +71,8 @@ class ProjectsControllerTest < Test::Unit::TestCase def test_edit @request.session[:user_id] = 2 # manager - post :edit, :id => 1, :project => {:name => 'Test changed name'} + post :edit, :id => 1, :project => {:name => 'Test changed name', + :custom_field_ids => ['']} assert_redirected_to 'projects/settings/ecookbook' project = Project.find(1) assert_equal 'Test changed name', project.name |