(Not documented)
# File vendor/plugins/ubiquo_core/lib/ubiquo/filters/select_filter.rb, line 6
6: def configure(field, collection, options={})
7: options[:field] = add_filter_prefix(field)
8: defaults = {
9: :collection => collection,
10: :id_field => :id,
11: :name_field => default_name_field(collection),
12: :caption => @model.human_attribute_name(field),
13: :all_caption => @model.human_attribute_name(field),
14: }
15: @options = defaults.merge(options)
16: end
(Not documented)
# File vendor/plugins/ubiquo_core/lib/ubiquo/filters/select_filter.rb, line 41
41: def message
42: field_key = @options[:field] || raise("options: missing 'field' key")
43: field = !@context.params[field_key].blank? && @context.params[field_key]
44: return unless field
45: name = if @options[:boolean]
46: caption_true = @options[:caption_true] || raise("options: missing 'caption_true' key")
47: caption_false = @options[:caption_false] || raise("options: missing 'caption_false' key")
48: (@context.params[field_key] == "1") ? caption_true : caption_false
49: else
50: if @options[:model]
51: id_field = @options[:id_field] || raise("options: missing 'id_field' key")
52: model = @options[:model].to_s.classify.constantize
53: record = model.find(:first, :conditions => {id_field => @context.params[field_key]})
54: return unless record
55: name_field = @options[:name_field] || raise("options: missing 'name_field' key")
56: record.send(name_field)
57: elsif @options[:collection]
58: value = @options[:collection].find do |value|
59: value.send(@options[:id_field]).to_s == @context.params[field_key]
60: end.send(@options[:name_field]) rescue @context.params[field_key]
61: else
62: prefix = @options[:translate_prefix]
63: prefix ? @context.I18n.t("#{prefix}.filters.#{@context.params[field_key]}") : @context.params[field_key]
64: end
65: end
66: info = "#{@options[:caption]} '#{name}'"
67: [info, [field_key]]
68: end
(Not documented)
# File vendor/plugins/ubiquo_core/lib/ubiquo/filters/select_filter.rb, line 18
18: def render
19: filter_field = @options[:field]
20: header_option = @options[:all_caption] ? "<option value=''>" + @options[:all_caption] + "</option>" : ""
21: field_value = (@context.params[filter_field] =~ /^\d+/)? @context.params[filter_field].to_i : @context.params[filter_field]
22: field_value = @context.params[filter_field].map(&:to_i) if @context.params[filter_field].is_a?(Array)
23: lateral_filter(@options) do |keepable_params|
24: @context.content_tag(:div, :id => 'select_filter_content') do
25: @context.form_tag(@options[:url_for_options], :method => :get) do
26: @context.content_tag(:div, :class => 'form-item-submit') do
27: hidden_fields(keepable_params) + \
28: @context.select_tag(filter_field,
29: header_option + @context.options_from_collection_for_select(@options[:collection],
30: @options[:id_field],
31: @options[:name_field],
32: (@context.params[filter_field].blank? ? @options[:default_selected] : field_value)),
33: {:id => nil}.merge(@options[:html_options] || {})) + \
34: @context.submit_tag(I18n.t("ubiquo.search"), :class => "select_filter bt-filter-submit")
35: end
36: end
37: end
38: end
39: end
Disabled; run with $DEBUG to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.