@@ -241,9 +241,7 class CustomField < ActiveRecord::Base | |||
|
241 | 241 | errs << ::I18n.t('activerecord.errors.messages.blank') |
|
242 | 242 | end |
|
243 | 243 | end |
|
244 | if custom_value.value.present? | |
|
245 | errs += format.validate_custom_value(custom_value) | |
|
246 | end | |
|
244 | errs += format.validate_custom_value(custom_value) | |
|
247 | 245 | errs |
|
248 | 246 | end |
|
249 | 247 |
@@ -131,7 +131,8 module Redmine | |||
|
131 | 131 | # Returns the validation error messages for custom_value |
|
132 | 132 | # Should return an empty array if custom_value is valid |
|
133 | 133 | def validate_custom_value(custom_value) |
|
134 |
e |
|
|
134 | values = Array.wrap(custom_value.value).reject {|value| value.to_s == ''} | |
|
135 | errors = values.map do |value| | |
|
135 | 136 | validate_single_value(custom_value.custom_field, value, custom_value.customized) |
|
136 | 137 | end |
|
137 | 138 | errors.flatten.uniq |
@@ -252,16 +253,15 module Redmine | |||
|
252 | 253 | class Unbounded < Base |
|
253 | 254 | def validate_single_value(custom_field, value, customized=nil) |
|
254 | 255 | errs = super |
|
255 |
|
|
|
256 |
|
|
|
257 |
|
|
|
258 |
|
|
|
259 |
|
|
|
260 |
|
|
|
261 |
|
|
|
262 |
|
|
|
263 |
|
|
|
264 | end | |
|
256 | value = value.to_s | |
|
257 | unless custom_field.regexp.blank? or value =~ Regexp.new(custom_field.regexp) | |
|
258 | errs << ::I18n.t('activerecord.errors.messages.invalid') | |
|
259 | end | |
|
260 | if custom_field.min_length && value.length < custom_field.min_length | |
|
261 | errs << ::I18n.t('activerecord.errors.messages.too_short', :count => custom_field.min_length) | |
|
262 | end | |
|
263 | if custom_field.max_length && custom_field.max_length > 0 && value.length > custom_field.max_length | |
|
264 | errs << ::I18n.t('activerecord.errors.messages.too_long', :count => custom_field.max_length) | |
|
265 | 265 | end |
|
266 | 266 | errs |
|
267 | 267 | end |
@@ -528,8 +528,9 module Redmine | |||
|
528 | 528 | end |
|
529 | 529 | |
|
530 | 530 | def validate_custom_value(custom_value) |
|
531 | invalid_values = Array.wrap(custom_value.value) - Array.wrap(custom_value.value_was) - custom_value.custom_field.possible_values | |
|
532 | if invalid_values.select(&:present?).any? | |
|
531 | values = Array.wrap(custom_value.value).reject {|value| value.to_s == ''} | |
|
532 | invalid_values = values - Array.wrap(custom_value.value_was) - custom_value.custom_field.possible_values | |
|
533 | if invalid_values.any? | |
|
533 | 534 | [::I18n.t('activerecord.errors.messages.inclusion')] |
|
534 | 535 | else |
|
535 | 536 | [] |
@@ -146,6 +146,7 class CustomFieldTest < ActiveSupport::TestCase | |||
|
146 | 146 | |
|
147 | 147 | assert f.valid_field_value?(nil) |
|
148 | 148 | assert f.valid_field_value?('') |
|
149 | assert !f.valid_field_value?(' ') | |
|
149 | 150 | assert f.valid_field_value?('a' * 2) |
|
150 | 151 | assert !f.valid_field_value?('a') |
|
151 | 152 | assert !f.valid_field_value?('a' * 6) |
@@ -156,6 +157,7 class CustomFieldTest < ActiveSupport::TestCase | |||
|
156 | 157 | |
|
157 | 158 | assert f.valid_field_value?(nil) |
|
158 | 159 | assert f.valid_field_value?('') |
|
160 | assert !f.valid_field_value?(' ') | |
|
159 | 161 | assert f.valid_field_value?('ABC') |
|
160 | 162 | assert !f.valid_field_value?('abc') |
|
161 | 163 | end |
@@ -165,6 +167,7 class CustomFieldTest < ActiveSupport::TestCase | |||
|
165 | 167 | |
|
166 | 168 | assert f.valid_field_value?(nil) |
|
167 | 169 | assert f.valid_field_value?('') |
|
170 | assert !f.valid_field_value?(' ') | |
|
168 | 171 | assert f.valid_field_value?('1975-07-14') |
|
169 | 172 | assert !f.valid_field_value?('1975-07-33') |
|
170 | 173 | assert !f.valid_field_value?('abc') |
@@ -175,6 +178,7 class CustomFieldTest < ActiveSupport::TestCase | |||
|
175 | 178 | |
|
176 | 179 | assert f.valid_field_value?(nil) |
|
177 | 180 | assert f.valid_field_value?('') |
|
181 | assert !f.valid_field_value?(' ') | |
|
178 | 182 | assert f.valid_field_value?('value2') |
|
179 | 183 | assert !f.valid_field_value?('abc') |
|
180 | 184 | end |
@@ -184,6 +188,7 class CustomFieldTest < ActiveSupport::TestCase | |||
|
184 | 188 | |
|
185 | 189 | assert f.valid_field_value?(nil) |
|
186 | 190 | assert f.valid_field_value?('') |
|
191 | assert !f.valid_field_value?(' ') | |
|
187 | 192 | assert f.valid_field_value?('123') |
|
188 | 193 | assert f.valid_field_value?('+123') |
|
189 | 194 | assert f.valid_field_value?('-123') |
@@ -195,6 +200,7 class CustomFieldTest < ActiveSupport::TestCase | |||
|
195 | 200 | |
|
196 | 201 | assert f.valid_field_value?(nil) |
|
197 | 202 | assert f.valid_field_value?('') |
|
203 | assert !f.valid_field_value?(' ') | |
|
198 | 204 | assert f.valid_field_value?('11.2') |
|
199 | 205 | assert f.valid_field_value?('-6.250') |
|
200 | 206 | assert f.valid_field_value?('5') |
@@ -206,9 +212,11 class CustomFieldTest < ActiveSupport::TestCase | |||
|
206 | 212 | |
|
207 | 213 | assert f.valid_field_value?(nil) |
|
208 | 214 | assert f.valid_field_value?('') |
|
215 | assert !f.valid_field_value?(' ') | |
|
209 | 216 | assert f.valid_field_value?([]) |
|
210 | 217 | assert f.valid_field_value?([nil]) |
|
211 | 218 | assert f.valid_field_value?(['']) |
|
219 | assert !f.valid_field_value?([' ']) | |
|
212 | 220 | |
|
213 | 221 | assert f.valid_field_value?('value2') |
|
214 | 222 | assert !f.valid_field_value?('abc') |
General Comments 0
You need to be logged in to leave comments.
Login now