Build issue filters using javascript.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10162 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2012-08-07 16:41:46 +00:00
parent e9de6c1415
commit 1749fbf3e6
6 changed files with 163 additions and 83 deletions
+18
View File
@@ -214,6 +214,11 @@ class Query < ActiveRecord::Base
@trackers ||= project.nil? ? Tracker.find(:all, :order => 'position') : project.rolled_up_trackers
end
# Returns a hash of localized labels for all filter operators
def self.operators_labels
operators.inject({}) {|h, operator| h[operator.first] = l(operator.last); h}
end
def available_filters
return @available_filters if @available_filters
@@ -309,9 +314,22 @@ class Query < ActiveRecord::Base
@available_filters.delete field
}
@available_filters.each do |field, options|
options[:name] ||= l("field_#{field}".gsub(/_id$/, ''))
end
@available_filters
end
# Returns a representation of the available filters for JSON serialization
def available_filters_as_json
json = {}
available_filters.each do |field, options|
json[field] = options.slice(:type, :name, :values).stringify_keys
end
json
end
def add_filter(field, operator, values)
# values must be an array
return unless values.nil? || values.is_a?(Array)