git-svn-id: http://svn.redmine.org/redmine/trunk@15534 e93f8b46-1217-0410-a6f0-8f06a7374b81tags/3.4.0
@@ -352,6 +352,22 @@ class ApplicationController < ActionController::Base | |||
@attachments = att || [] | |||
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 | |||
# used as a before_filter for actions that do not require any particular permission on the project | |||
def check_project_privacy |
@@ -252,7 +252,7 @@ class IssuesController < ApplicationController | |||
@issues.sort! | |||
@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_attachments = (params[:copy_attachments] == '1') | |||
@@ -495,22 +495,6 @@ class IssuesController < ApplicationController | |||
@allowed_statuses = @issue.new_statuses_allowed_to(User.current) | |||
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 | |||
def save_issue_with_child_records | |||
Issue.transaction do |
@@ -174,7 +174,7 @@ class TimelogController < ApplicationController | |||
end | |||
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 = [] | |||
@time_entries.each do |time_entry| | |||
@@ -271,20 +271,4 @@ private | |||
end | |||
scope | |||
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'} | |||
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 | |||
end |