Class: WillFilter::Containers::FilterList
Instance Attribute Summary
#condition, #filter, #index, #operator, #values
Class Method Summary
collapse
Instance Method Summary
collapse
#date, #initialize, #is_floating_point?, #is_numeric?, #reset_values, #sanitized_value, #serialize_to_params, #time, #value
Class Method Details
.operators ⇒ Object
36
37
38
|
# File 'lib/will_filter/containers/filter_list.rb', line 36
def self.operators
[:is_filtered_by]
end
|
Instance Method Details
#linked_filter ⇒ Object
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/will_filter/containers/filter_list.rb', line 48
def linked_filter
@linked_filter ||= begin
if condition.key == :id
model_class_name = filter.model_class_name
else
model_class_name = condition.key.to_s[0..-4].camelcase
end
WillFilter::Filter.new(model_class_name)
end
end
|
#options ⇒ Object
59
60
61
|
# File 'lib/will_filter/containers/filter_list.rb', line 59
def options
linked_filter.saved_filters(false)
end
|
#sql_condition ⇒ Object
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
# File 'lib/will_filter/containers/filter_list.rb', line 63
def sql_condition
return nil unless operator == :is_filtered_by
sub_filter = WillFilter::Filter.find_by_id(value) || linked_filter.user_filters.first
return [''] unless sub_filter
sub_conds = sub_filter.sql_conditions
if sub_conds[0].blank?
sub_conds[0] = " #{condition.full_key} IN (SELECT #{sub_filter.table_name}.id FROM #{sub_filter.table_name}) "
else
sub_conds[0] = " #{condition.full_key} IN (SELECT #{sub_filter.table_name}.id FROM #{sub_filter.table_name} WHERE #{sub_conds[0]}) "
end
sub_conds
end
|
#template_name ⇒ Object
44
45
46
|
# File 'lib/will_filter/containers/filter_list.rb', line 44
def template_name
'list'
end
|
#validate ⇒ Object
40
41
42
|
# File 'lib/will_filter/containers/filter_list.rb', line 40
def validate
return "Value must be provided" if value.blank?
end
|