summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2014-05-24 16:53:33 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2014-05-24 16:53:33 +0000
commitcf4af2c5db0dc7aa705692d16cf5510118590040 (patch)
tree13c367817f35e347327c6b26375e5a8c33658998
parent96baa905bf5b79b98321f4436e6ea9497537d46f (diff)
downloadredmine-cf4af2c5db0dc7aa705692d16cf5510118590040.tar.gz
redmine-cf4af2c5db0dc7aa705692d16cf5510118590040.zip
Fixed: unable to clear value for list custom field with multiple values and checkboxes style (#16798).
git-svn-id: http://svn.redmine.org/redmine/trunk@13167 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--lib/redmine/field_format.rb3
-rw-r--r--test/unit/lib/redmine/field_format/list_format_test.rb12
2 files changed, 15 insertions, 0 deletions
diff --git a/lib/redmine/field_format.rb b/lib/redmine/field_format.rb
index 655e2c984..f5e642628 100644
--- a/lib/redmine/field_format.rb
+++ b/lib/redmine/field_format.rb
@@ -498,6 +498,9 @@ module Redmine
tag_id = nil
s << view.content_tag('label', tag + ' ' + label)
end
+ if custom_value.custom_field.multiple?
+ s << view.hidden_field_tag(tag_name, '')
+ end
css = "#{options[:class]} check_box_group"
view.content_tag('span', s, options.merge(:class => css))
end
diff --git a/test/unit/lib/redmine/field_format/list_format_test.rb b/test/unit/lib/redmine/field_format/list_format_test.rb
index 7be984438..adc8d8fe8 100644
--- a/test/unit/lib/redmine/field_format/list_format_test.rb
+++ b/test/unit/lib/redmine/field_format/list_format_test.rb
@@ -116,6 +116,18 @@ class Redmine::ListFieldFormatTest < ActionView::TestCase
end
end
+ def test_edit_tag_with_check_box_style_and_multiple_values_should_contain_hidden_field_to_clear_value
+ field = IssueCustomField.new(:field_format => 'list', :possible_values => ['Foo', 'Bar'], :is_required => false,
+ :edit_tag_style => 'check_box', :multiple => true)
+ value = CustomFieldValue.new(:custom_field => field, :customized => Issue.new)
+
+ tag = field.format.edit_tag(self, 'id', 'name', value)
+ assert_select_in tag, 'span' do
+ assert_select 'input[type=checkbox]', 2
+ assert_select 'input[type=hidden]', 1
+ end
+ end
+
def test_field_with_url_pattern_should_link_value
field = IssueCustomField.new(:field_format => 'list', :url_pattern => 'http://localhost/%value%')
formatted = field.format.formatted_value(self, field, 'foo', Issue.new, true)