@@ -68,7 +68,7 module CustomFieldsHelper | |||
|
68 | 68 | custom_field_label_tag(name, custom_value) + custom_field_tag(name, custom_value) |
|
69 | 69 | end |
|
70 | 70 | |
|
71 | def custom_field_tag_for_bulk_edit(name, custom_field) | |
|
71 | def custom_field_tag_for_bulk_edit(name, custom_field, projects) | |
|
72 | 72 | field_name = "#{name}[custom_field_values][#{custom_field.id}]" |
|
73 | 73 | field_id = "#{name}_custom_field_values_#{custom_field.id}" |
|
74 | 74 | field_format = Redmine::CustomFieldFormat.find_by_name(custom_field.field_format) |
@@ -83,7 +83,7 module CustomFieldsHelper | |||
|
83 | 83 | [l(:general_text_yes), '1'], |
|
84 | 84 | [l(:general_text_no), '0']]), :id => field_id) |
|
85 | 85 | when "list" |
|
86 | select_tag(field_name, options_for_select([[l(:label_no_change_option), '']] + custom_field.possible_values_options), :id => field_id) | |
|
86 | select_tag(field_name, options_for_select([[l(:label_no_change_option), '']] + custom_field.possible_values_options(projects)), :id => field_id) | |
|
87 | 87 | else |
|
88 | 88 | text_field_tag(field_name, '', :id => field_id) |
|
89 | 89 | end |
@@ -58,6 +58,8 class CustomField < ActiveRecord::Base | |||
|
58 | 58 | when 'version' |
|
59 | 59 | obj.project.versions.sort.collect {|u| [u.to_s, u.id.to_s]} |
|
60 | 60 | end |
|
61 | elsif obj.is_a?(Array) | |
|
62 | obj.collect {|o| possible_values_options(o)}.inject {|memo, v| memo & v} | |
|
61 | 63 | else |
|
62 | 64 | [] |
|
63 | 65 | end |
@@ -48,7 +48,7 | |||
|
48 | 48 | <% end %> |
|
49 | 49 | |
|
50 | 50 | <% @custom_fields.each do |custom_field| %> |
|
51 | <p><label><%= h(custom_field.name) %></label> <%= custom_field_tag_for_bulk_edit('issue', custom_field) %></p> | |
|
51 | <p><label><%= h(custom_field.name) %></label> <%= custom_field_tag_for_bulk_edit('issue', custom_field, @projects) %></p> | |
|
52 | 52 | <% end %> |
|
53 | 53 | |
|
54 | 54 | <%= call_hook(:view_issues_bulk_edit_details_bottom, { :issues => @issues }) %> |
@@ -36,7 +36,7 | |||
|
36 | 36 | </p> |
|
37 | 37 | |
|
38 | 38 | <% @custom_fields.each do |custom_field| %> |
|
39 | <p><label><%= h(custom_field.name) %></label> <%= custom_field_tag_for_bulk_edit('time_entry', custom_field) %></p> | |
|
39 | <p><label><%= h(custom_field.name) %></label> <%= custom_field_tag_for_bulk_edit('time_entry', custom_field, @projects) %></p> | |
|
40 | 40 | <% end %> |
|
41 | 41 | |
|
42 | 42 | <%= call_hook(:view_time_entries_bulk_edit_details_bottom, { :time_entries => @time_entries }) %> |
@@ -1,5 +1,5 | |||
|
1 | 1 | # Redmine - project management software |
|
2 |
# Copyright (C) 2006-20 |
|
|
2 | # Copyright (C) 2006-2011 Jean-Philippe Lang | |
|
3 | 3 | # |
|
4 | 4 | # This program is free software; you can redistribute it and/or |
|
5 | 5 | # modify it under the terms of the GNU General Public License |
@@ -1123,6 +1123,38 class IssuesControllerTest < ActionController::TestCase | |||
|
1123 | 1123 | assert !field.project_ids.include?(Issue.find(6).project_id) |
|
1124 | 1124 | assert_no_tag :input, :attributes => {:name => 'issue[custom_field_values][9]'} |
|
1125 | 1125 | end |
|
1126 | ||
|
1127 | def test_get_bulk_edit_with_user_custom_field | |
|
1128 | field = IssueCustomField.create!(:name => 'Tester', :field_format => 'user', :is_for_all => true) | |
|
1129 | ||
|
1130 | @request.session[:user_id] = 2 | |
|
1131 | get :bulk_edit, :ids => [1, 2] | |
|
1132 | assert_response :success | |
|
1133 | assert_template 'bulk_edit' | |
|
1134 | ||
|
1135 | assert_tag :select, | |
|
1136 | :attributes => {:name => "issue[custom_field_values][#{field.id}]"}, | |
|
1137 | :children => { | |
|
1138 | :only => {:tag => 'option'}, | |
|
1139 | :count => Project.find(1).users.count + 1 | |
|
1140 | } | |
|
1141 | end | |
|
1142 | ||
|
1143 | def test_get_bulk_edit_with_version_custom_field | |
|
1144 | field = IssueCustomField.create!(:name => 'Affected version', :field_format => 'version', :is_for_all => true) | |
|
1145 | ||
|
1146 | @request.session[:user_id] = 2 | |
|
1147 | get :bulk_edit, :ids => [1, 2] | |
|
1148 | assert_response :success | |
|
1149 | assert_template 'bulk_edit' | |
|
1150 | ||
|
1151 | assert_tag :select, | |
|
1152 | :attributes => {:name => "issue[custom_field_values][#{field.id}]"}, | |
|
1153 | :children => { | |
|
1154 | :only => {:tag => 'option'}, | |
|
1155 | :count => Project.find(1).versions.count + 1 | |
|
1156 | } | |
|
1157 | end | |
|
1126 | 1158 | |
|
1127 | 1159 | def test_bulk_update |
|
1128 | 1160 | @request.session[:user_id] = 2 |
@@ -53,6 +53,13 class CustomFieldUserFormatTest < ActiveSupport::TestCase | |||
|
53 | 53 | assert_equal project.users.sort.map {|u| [u.name, u.id.to_s]}, possible_values_options |
|
54 | 54 | end |
|
55 | 55 | |
|
56 | def test_possible_values_options_with_array | |
|
57 | projects = Project.find([1, 2]) | |
|
58 | possible_values_options = @field.possible_values_options(projects) | |
|
59 | assert possible_values_options.any? | |
|
60 | assert_equal (projects.first.users & projects.last.users).sort.map {|u| [u.name, u.id.to_s]}, possible_values_options | |
|
61 | end | |
|
62 | ||
|
56 | 63 | def test_cast_blank_value |
|
57 | 64 | assert_equal nil, @field.cast_value(nil) |
|
58 | 65 | assert_equal nil, @field.cast_value("") |
General Comments 0
You need to be logged in to leave comments.
Login now