From 7e2f3352dbebb799fef78fe9c7c58cc367e20a88 Mon Sep 17 00:00:00 2001 From: Marius Balteanu Date: Thu, 5 Aug 2021 23:41:01 +0000 Subject: Fix that updating an issue from context menu to a none value do not set the field to blank (#33521). Patch by Mizuki ISHIKAWA. git-svn-id: http://svn.redmine.org/redmine/trunk@21139 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/controllers/application_controller.rb | 12 ++++++++++-- app/controllers/issues_controller.rb | 1 + 2 files changed, 11 insertions(+), 2 deletions(-) (limited to 'app') diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index f907b1159..f671d87f7 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -413,10 +413,18 @@ class ApplicationController < ActionController::Base 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| + end + + replace_none_values_with_blank(attributes) + end + + def replace_none_values_with_blank(params) + attributes = (params || {})) + attributes.each_key {|k| attributes[k] = '' if attributes[k] == 'none'} + if (custom = attributes[:custom_field_values]) + custom.each_key do |k| if custom[k].is_a?(Array) custom[k] << '' if custom[k].delete('__none__') else diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index 080520ef5..96a8341d0 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -561,6 +561,7 @@ class IssuesController < ApplicationController return false end end + issue_attributes = replace_none_values_with_blank(issue_attributes) @issue.safe_attributes = issue_attributes @priorities = IssuePriority.active @allowed_statuses = @issue.new_statuses_allowed_to(User.current) -- cgit v1.2.3