From: Go MAEDA Date: Mon, 11 Jan 2021 12:26:44 +0000 (+0000) Subject: Add class 'error' to custom fields with validation errors (#32764, #34580). X-Git-Tag: 4.2.0~119 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=354d30df31bbc783aa512ce603ee53d604b0c64d;p=redmine.git Add class 'error' to custom fields with validation errors (#32764, #34580). Patch by Marius BALTEANU. git-svn-id: http://svn.redmine.org/redmine/trunk@20710 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/app/helpers/custom_fields_helper.rb b/app/helpers/custom_fields_helper.rb index 41b20c46a..2845c8673 100644 --- a/app/helpers/custom_fields_helper.rb +++ b/app/helpers/custom_fields_helper.rb @@ -111,7 +111,8 @@ module CustomFieldsHelper content_tag( "label", content + (required ? " *".html_safe : ""), - :for => for_tag_id) + :for => for_tag_id, + :class => custom_value.customized && custom_value.customized.errors[custom_value.custom_field.name].present? ? 'error' : nil) end # Return custom field tag with its label tag diff --git a/app/models/custom_field_value.rb b/app/models/custom_field_value.rb index c670b30bd..d906454a6 100644 --- a/app/models/custom_field_value.rb +++ b/app/models/custom_field_value.rb @@ -65,7 +65,7 @@ class CustomFieldValue def validate_value custom_field.validate_custom_value(self).each do |message| - customized.errors.add(:base, custom_field.name + ' ' + message) + customized.errors.add(custom_field.name, message) end end end diff --git a/app/models/issue.rb b/app/models/issue.rb index 2c6437311..1c0554f98 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -805,7 +805,7 @@ class Issue < ActiveRecord::Base attribute = attribute.to_i v = custom_field_values.detect {|v| v.custom_field_id == attribute} if v && Array(v.value).detect(&:present?).nil? - errors.add :base, v.custom_field.name + ' ' + l('activerecord.errors.messages.blank') + errors.add(v.custom_field.name, l('activerecord.errors.messages.blank')) end else if respond_to?(attribute) && send(attribute).blank? && !disabled_core_fields.include?(attribute) diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb index cb04adad6..83b5a911f 100644 --- a/test/functional/issues_controller_test.rb +++ b/test/functional/issues_controller_test.rb @@ -4061,6 +4061,8 @@ class IssuesControllerTest < Redmine::ControllerTest ) end assert_response :success + + assert_select 'label[for=?][class=?]', "issue_custom_field_values_#{field.id}", 'error' assert_select_error /Database cannot be blank/ end @@ -4094,6 +4096,10 @@ class IssuesControllerTest < Redmine::ControllerTest ) assert_response :success end + + assert_select 'label[for=?][class=?]', 'issue_due_date', 'error' + assert_select 'label[for=?][class=?]', "issue_custom_field_values_#{cf2.id}", 'error' + assert_select_error /Due date cannot be blank/i assert_select_error /Bar cannot be blank/i end