mirror of
https://github.com/redmine/redmine.git
synced 2025-11-12 16:26:03 +01:00
Merged r15532 to r15534 (#23054).
git-svn-id: http://svn.redmine.org/redmine/branches/3.3-stable@15537 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -352,6 +352,22 @@ class ApplicationController < ActionController::Base
|
|||||||
@attachments = att || []
|
@attachments = att || []
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def parse_params_for_bulk_update(params)
|
||||||
|
attributes = (params || {}).reject {|k,v| v.blank?}
|
||||||
|
attributes.keys.each {|k| attributes[k] = '' if attributes[k] == 'none'}
|
||||||
|
if custom = attributes[:custom_field_values]
|
||||||
|
custom.reject! {|k,v| v.blank?}
|
||||||
|
custom.keys.each do |k|
|
||||||
|
if custom[k].is_a?(Array)
|
||||||
|
custom[k] << '' if custom[k].delete('__none__')
|
||||||
|
else
|
||||||
|
custom[k] = '' if custom[k] == '__none__'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
attributes
|
||||||
|
end
|
||||||
|
|
||||||
# make sure that the user is a member of the project (or admin) if project is private
|
# make sure that the user is a member of the project (or admin) if project is private
|
||||||
# used as a before_filter for actions that do not require any particular permission on the project
|
# used as a before_filter for actions that do not require any particular permission on the project
|
||||||
def check_project_privacy
|
def check_project_privacy
|
||||||
|
|||||||
@@ -252,7 +252,7 @@ class IssuesController < ApplicationController
|
|||||||
@issues.sort!
|
@issues.sort!
|
||||||
@copy = params[:copy].present?
|
@copy = params[:copy].present?
|
||||||
|
|
||||||
attributes = parse_params_for_bulk_issue_attributes(params)
|
attributes = parse_params_for_bulk_update(params[:issue])
|
||||||
copy_subtasks = (params[:copy_subtasks] == '1')
|
copy_subtasks = (params[:copy_subtasks] == '1')
|
||||||
copy_attachments = (params[:copy_attachments] == '1')
|
copy_attachments = (params[:copy_attachments] == '1')
|
||||||
|
|
||||||
@@ -495,22 +495,6 @@ class IssuesController < ApplicationController
|
|||||||
@allowed_statuses = @issue.new_statuses_allowed_to(User.current)
|
@allowed_statuses = @issue.new_statuses_allowed_to(User.current)
|
||||||
end
|
end
|
||||||
|
|
||||||
def parse_params_for_bulk_issue_attributes(params)
|
|
||||||
attributes = (params[:issue] || {}).reject {|k,v| v.blank?}
|
|
||||||
attributes.keys.each {|k| attributes[k] = '' if attributes[k] == 'none'}
|
|
||||||
if custom = attributes[:custom_field_values]
|
|
||||||
custom.reject! {|k,v| v.blank?}
|
|
||||||
custom.keys.each do |k|
|
|
||||||
if custom[k].is_a?(Array)
|
|
||||||
custom[k] << '' if custom[k].delete('__none__')
|
|
||||||
else
|
|
||||||
custom[k] = '' if custom[k] == '__none__'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
attributes
|
|
||||||
end
|
|
||||||
|
|
||||||
# Saves @issue and a time_entry from the parameters
|
# Saves @issue and a time_entry from the parameters
|
||||||
def save_issue_with_child_records
|
def save_issue_with_child_records
|
||||||
Issue.transaction do
|
Issue.transaction do
|
||||||
|
|||||||
@@ -174,7 +174,7 @@ class TimelogController < ApplicationController
|
|||||||
end
|
end
|
||||||
|
|
||||||
def bulk_update
|
def bulk_update
|
||||||
attributes = parse_params_for_bulk_time_entry_attributes(params)
|
attributes = parse_params_for_bulk_update(params[:time_entry])
|
||||||
|
|
||||||
unsaved_time_entry_ids = []
|
unsaved_time_entry_ids = []
|
||||||
@time_entries.each do |time_entry|
|
@time_entries.each do |time_entry|
|
||||||
@@ -271,11 +271,4 @@ private
|
|||||||
end
|
end
|
||||||
scope
|
scope
|
||||||
end
|
end
|
||||||
|
|
||||||
def parse_params_for_bulk_time_entry_attributes(params)
|
|
||||||
attributes = (params[:time_entry] || {}).reject {|k,v| v.blank?}
|
|
||||||
attributes.keys.each {|k| attributes[k] = '' if attributes[k] == 'none'}
|
|
||||||
attributes[:custom_field_values].reject! {|k,v| v.blank?} if attributes[:custom_field_values]
|
|
||||||
attributes
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -527,6 +527,15 @@ class TimelogControllerTest < ActionController::TestCase
|
|||||||
assert_equal ["0", "0"], TimeEntry.where(:id => [1, 2]).collect {|i| i.custom_value_for(10).value}
|
assert_equal ["0", "0"], TimeEntry.where(:id => [1, 2]).collect {|i| i.custom_value_for(10).value}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_bulk_update_clear_custom_field
|
||||||
|
field = TimeEntryCustomField.generate!(:field_format => 'string')
|
||||||
|
@request.session[:user_id] = 2
|
||||||
|
post :bulk_update, :ids => [1, 2], :time_entry => { :custom_field_values => {field.id.to_s => '__none__'} }
|
||||||
|
|
||||||
|
assert_response 302
|
||||||
|
assert_equal ["", ""], TimeEntry.where(:id => [1, 2]).collect {|i| i.custom_value_for(field).value}
|
||||||
|
end
|
||||||
|
|
||||||
def test_post_bulk_update_should_redirect_back_using_the_back_url_parameter
|
def test_post_bulk_update_should_redirect_back_using_the_back_url_parameter
|
||||||
@request.session[:user_id] = 2
|
@request.session[:user_id] = 2
|
||||||
post :bulk_update, :ids => [1,2], :back_url => '/time_entries'
|
post :bulk_update, :ids => [1,2], :back_url => '/time_entries'
|
||||||
|
|||||||
Reference in New Issue
Block a user