Allow bulk edit custom fields of any type (#461).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3278 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
e9810b5de6
commit
cab99aa5ad
|
@ -273,7 +273,7 @@ class IssuesController < ApplicationController
|
|||
return
|
||||
end
|
||||
@available_statuses = Workflow.available_statuses(@project)
|
||||
@custom_fields = @project.all_issue_custom_fields.select {|f| f.field_format == 'list'}
|
||||
@custom_fields = @project.all_issue_custom_fields
|
||||
end
|
||||
|
||||
def move
|
||||
|
|
|
@ -66,6 +66,26 @@ module CustomFieldsHelper
|
|||
def custom_field_tag_with_label(name, custom_value)
|
||||
custom_field_label_tag(name, custom_value) + custom_field_tag(name, custom_value)
|
||||
end
|
||||
|
||||
def custom_field_tag_for_bulk_edit(custom_field)
|
||||
field_name = "custom_field_values[#{custom_field.id}]"
|
||||
field_id = "custom_field_values_#{custom_field.id}"
|
||||
case custom_field.field_format
|
||||
when "date"
|
||||
text_field_tag(field_name, '', :id => field_id, :size => 10) +
|
||||
calendar_for(field_id)
|
||||
when "text"
|
||||
text_area_tag(field_name, '', :id => field_id, :rows => 3, :style => 'width:90%')
|
||||
when "bool"
|
||||
select_tag(field_name, options_for_select([[l(:label_no_change_option), ''],
|
||||
[l(:general_text_yes), '1'],
|
||||
[l(:general_text_no), '0']]), :id => field_id)
|
||||
when "list"
|
||||
select_tag(field_name, options_for_select([[l(:label_no_change_option), '']] + custom_field.possible_values), :id => field_id)
|
||||
else
|
||||
text_field_tag(field_name, '', :id => field_id)
|
||||
end
|
||||
end
|
||||
|
||||
# Return a string used to display a custom value
|
||||
def show_value(custom_value)
|
||||
|
|
|
@ -46,9 +46,7 @@
|
|||
</p>
|
||||
|
||||
<% @custom_fields.each do |custom_field| %>
|
||||
<p><label><%= h(custom_field.name) %>
|
||||
<%= select_tag "custom_field_values[#{custom_field.id}]", options_for_select([[l(:label_no_change_option), '']] + custom_field.possible_values) %></label>
|
||||
</p>
|
||||
<p><label><%= h(custom_field.name) %> <%= custom_field_tag_for_bulk_edit(custom_field) %></label></p>
|
||||
<% end %>
|
||||
|
||||
<%= call_hook(:view_issues_bulk_edit_details_bottom, { :issues => @issues }) %>
|
||||
|
|
|
@ -115,3 +115,17 @@ custom_fields_008:
|
|||
field_format: date
|
||||
default_value: ""
|
||||
editable: true
|
||||
custom_fields_009:
|
||||
name: Project 1 cf
|
||||
min_length: 0
|
||||
regexp: ""
|
||||
is_for_all: false
|
||||
is_filter: true
|
||||
type: IssueCustomField
|
||||
max_length: 0
|
||||
possible_values: ""
|
||||
id: 9
|
||||
is_required: false
|
||||
field_format: date
|
||||
default_value: ""
|
||||
editable: true
|
||||
|
|
|
@ -1,2 +1,4 @@
|
|||
--- {}
|
||||
|
||||
---
|
||||
custom_fields_projects_001:
|
||||
custom_field_id: 9
|
||||
project_id: 1
|
||||
|
|
|
@ -946,7 +946,15 @@ class IssuesControllerTest < ActionController::TestCase
|
|||
get :bulk_edit, :ids => [1, 2]
|
||||
assert_response :success
|
||||
assert_template 'bulk_edit'
|
||||
|
||||
# Project specific custom field, date type
|
||||
field = CustomField.find(9)
|
||||
assert !field.is_for_all?
|
||||
assert_equal 'date', field.field_format
|
||||
assert_tag :input, :attributes => {:name => 'custom_field_values[9]'}
|
||||
|
||||
# System wide custom field
|
||||
assert CustomField.find(1).is_for_all?
|
||||
assert_tag :select, :attributes => {:name => 'custom_field_values[1]'}
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue