diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2011-12-26 13:34:50 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2011-12-26 13:34:50 +0000 |
commit | 852dee37ec7b32106376bf14b7563983d37d5204 (patch) | |
tree | 1bfccce03549a1cb130679229c42e12b424d269b /app/models/query.rb | |
parent | a76045d792cf7df54264b7a8983325e3f0ba719f (diff) | |
download | redmine-852dee37ec7b32106376bf14b7563983d37d5204.tar.gz redmine-852dee37ec7b32106376bf14b7563983d37d5204.zip |
Do not add errors on attributes on fake attributes.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@8388 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/models/query.rb')
-rw-r--r-- | app/models/query.rb | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/app/models/query.rb b/app/models/query.rb index 262a738d1..5d8640199 100644 --- a/app/models/query.rb +++ b/app/models/query.rb @@ -174,20 +174,20 @@ class Query < ActiveRecord::Base if values_for(field) case type_for(field) when :integer - errors.add(label_for(field), :invalid) if values_for(field).detect {|v| v.present? && !v.match(/^\d+$/) } + add_filter_error(field, :invalid) if values_for(field).detect {|v| v.present? && !v.match(/^\d+$/) } when :float - errors.add(label_for(field), :invalid) if values_for(field).detect {|v| v.present? && !v.match(/^\d+(\.\d*)?$/) } + add_filter_error(field, :invalid) if values_for(field).detect {|v| v.present? && !v.match(/^\d+(\.\d*)?$/) } when :date, :date_past case operator_for(field) when "=", ">=", "<=", "><" - errors.add(label_for(field), :invalid) if values_for(field).detect {|v| v.present? && (!v.match(/^\d{4}-\d{2}-\d{2}$/) || (Date.parse(v) rescue nil).nil?) } + add_filter_error(field, :invalid) if values_for(field).detect {|v| v.present? && (!v.match(/^\d{4}-\d{2}-\d{2}$/) || (Date.parse(v) rescue nil).nil?) } when ">t-", "<t-", "t-" - errors.add(label_for(field), :invalid) if values_for(field).detect {|v| v.present? && !v.match(/^\d+$/) } + add_filter_error(field, :invalid) if values_for(field).detect {|v| v.present? && !v.match(/^\d+$/) } end end end - errors.add label_for(field), :blank unless + add_filter_error(field, :blank) unless # filter requires one or more values (values_for(field) and !values_for(field).first.blank?) or # filter doesn't require any value @@ -195,6 +195,11 @@ class Query < ActiveRecord::Base end if filters end + def add_filter_error(field, message) + m = label_for(field) + " " + l(message, :scope => 'activerecord.errors.messages') + errors.add(:base, m) + end + # Returns true if the query is visible to +user+ or the current user. def visible?(user=User.current) (project.nil? || user.allowed_to?(:view_issues, project)) && (self.is_public? || self.user_id == user.id) @@ -347,7 +352,7 @@ class Query < ActiveRecord::Base def label_for(field) label = available_filters[field][:name] if available_filters.has_key?(field) - label ||= field.gsub(/\_id$/, "") + label ||= l("field_#{field.to_s.gsub(/_id$/, '')}", :default => field) end def available_columns |