mirror of
https://github.com/meineerde/redmine.git
synced 2025-12-19 15:01:14 +00:00
Merged r3277 to r3279 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/0.9-stable@3280 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
7193817dea
commit
9d2474c234
@ -273,7 +273,7 @@ class IssuesController < ApplicationController
|
||||
return
|
||||
end
|
||||
@available_statuses = Workflow.available_statuses(@project)
|
||||
@custom_fields = @project.issue_custom_fields.select {|f| f.field_format == 'list'}
|
||||
@custom_fields = @project.all_issue_custom_fields
|
||||
end
|
||||
|
||||
def move
|
||||
|
||||
@ -67,6 +67,26 @@ module CustomFieldsHelper
|
||||
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)
|
||||
return "" unless custom_value
|
||||
|
||||
@ -4,54 +4,68 @@
|
||||
|
||||
<% form_tag() do %>
|
||||
<%= @issues.collect {|i| hidden_field_tag('ids[]', i.id)}.join %>
|
||||
<div class="box">
|
||||
<div class="box tabular">
|
||||
<fieldset>
|
||||
<legend><%= l(:label_change_properties) %></legend>
|
||||
|
||||
<div class="splitcontentleft">
|
||||
<p>
|
||||
<label><%= l(:field_tracker) %>:
|
||||
<%= select_tag('tracker_id', "<option value=\"\">#{l(:label_no_change_option)}</option>" + options_from_collection_for_select(@project.trackers, :id, :name)) %></label>
|
||||
<label><%= l(:field_tracker) %></label>
|
||||
<%= select_tag('tracker_id', "<option value=\"\">#{l(:label_no_change_option)}</option>" + options_from_collection_for_select(@project.trackers, :id, :name)) %>
|
||||
</p>
|
||||
<% if @available_statuses.any? %>
|
||||
<label><%= l(:field_status) %>:
|
||||
<%= select_tag('status_id', "<option value=\"\">#{l(:label_no_change_option)}</option>" + options_from_collection_for_select(@available_statuses, :id, :name)) %></label>
|
||||
<p>
|
||||
<label><%= l(:field_status) %></label>
|
||||
<%= select_tag('status_id', "<option value=\"\">#{l(:label_no_change_option)}</option>" + options_from_collection_for_select(@available_statuses, :id, :name)) %>
|
||||
</p>
|
||||
<% end %>
|
||||
<p>
|
||||
<label><%= l(:field_priority) %></label>
|
||||
<%= select_tag('priority_id', "<option value=\"\">#{l(:label_no_change_option)}</option>" + options_from_collection_for_select(IssuePriority.all, :id, :name)) %>
|
||||
</p>
|
||||
<p>
|
||||
<label><%= l(:field_priority) %>:
|
||||
<%= select_tag('priority_id', "<option value=\"\">#{l(:label_no_change_option)}</option>" + options_from_collection_for_select(IssuePriority.all, :id, :name)) %></label>
|
||||
<label><%= l(:field_category) %>:
|
||||
<%= select_tag('category_id', content_tag('option', l(:label_no_change_option), :value => '') +
|
||||
content_tag('option', l(:label_none), :value => 'none') +
|
||||
options_from_collection_for_select(@project.issue_categories, :id, :name)) %></label>
|
||||
</p>
|
||||
<p>
|
||||
<label><%= l(:field_assigned_to) %>:
|
||||
<label><%= l(:field_assigned_to) %></label>
|
||||
<%= select_tag('assigned_to_id', content_tag('option', l(:label_no_change_option), :value => '') +
|
||||
content_tag('option', l(:label_nobody), :value => 'none') +
|
||||
options_from_collection_for_select(@project.assignable_users, :id, :name)) %></label>
|
||||
<label><%= l(:field_fixed_version) %>:
|
||||
options_from_collection_for_select(@project.assignable_users, :id, :name)) %>
|
||||
</p>
|
||||
<p>
|
||||
<label><%= l(:field_category) %></label>
|
||||
<%= select_tag('category_id', content_tag('option', l(:label_no_change_option), :value => '') +
|
||||
content_tag('option', l(:label_none), :value => 'none') +
|
||||
options_from_collection_for_select(@project.issue_categories, :id, :name)) %>
|
||||
</p>
|
||||
<p>
|
||||
<label><%= l(:field_fixed_version) %></label>
|
||||
<%= select_tag('fixed_version_id', content_tag('option', l(:label_no_change_option), :value => '') +
|
||||
content_tag('option', l(:label_none), :value => 'none') +
|
||||
version_options_for_select(@project.shared_versions.open)) %></label>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label><%= l(:field_start_date) %>:
|
||||
<%= text_field_tag 'start_date', '', :size => 10 %><%= calendar_for('start_date') %></label>
|
||||
<label><%= l(:field_due_date) %>:
|
||||
<%= text_field_tag 'due_date', '', :size => 10 %><%= calendar_for('due_date') %></label>
|
||||
<% if Issue.use_field_for_done_ratio? %>
|
||||
<label><%= l(:field_done_ratio) %>:
|
||||
<%= select_tag 'done_ratio', options_for_select([[l(:label_no_change_option), '']] + (0..10).to_a.collect {|r| ["#{r*10} %", r*10] }) %></label>
|
||||
<% end %>
|
||||
version_options_for_select(@project.shared_versions.open)) %>
|
||||
</p>
|
||||
|
||||
<% @custom_fields.each do |custom_field| %>
|
||||
<p><label><%= h(custom_field.name) %></label>
|
||||
<%= 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) %></label> <%= custom_field_tag_for_bulk_edit(custom_field) %></p>
|
||||
<% end %>
|
||||
|
||||
<%= call_hook(:view_issues_bulk_edit_details_bottom, { :issues => @issues }) %>
|
||||
</div>
|
||||
|
||||
<div class="splitcontentright">
|
||||
<p>
|
||||
<label><%= l(:field_start_date) %></label>
|
||||
<%= text_field_tag 'start_date', '', :size => 10 %><%= calendar_for('start_date') %>
|
||||
</p>
|
||||
<p>
|
||||
<label><%= l(:field_due_date) %></label>
|
||||
<%= text_field_tag 'due_date', '', :size => 10 %><%= calendar_for('due_date') %>
|
||||
</p>
|
||||
<% if Issue.use_field_for_done_ratio? %>
|
||||
<p>
|
||||
<label><%= l(:field_done_ratio) %></label>
|
||||
<%= select_tag 'done_ratio', options_for_select([[l(:label_no_change_option), '']] + (0..10).to_a.collect {|r| ["#{r*10} %", r*10] }) %>
|
||||
</p>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
|
||||
<fieldset><legend><%= l(:field_notes) %></legend>
|
||||
@ -60,5 +74,5 @@
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<p><%= submit_tag l(:button_submit) %>
|
||||
<p><%= submit_tag l(:button_submit) %></p>
|
||||
<% end %>
|
||||
|
||||
14
test/fixtures/custom_fields.yml
vendored
14
test/fixtures/custom_fields.yml
vendored
@ -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
|
||||
|
||||
6
test/fixtures/custom_fields_projects.yml
vendored
6
test/fixtures/custom_fields_projects.yml
vendored
@ -1,2 +1,4 @@
|
||||
--- {}
|
||||
|
||||
---
|
||||
custom_fields_projects_001:
|
||||
custom_field_id: 9
|
||||
project_id: 1
|
||||
|
||||
@ -946,6 +946,16 @@ 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
|
||||
|
||||
def test_bulk_edit
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user