Files

Class Index [+]

Quicksearch

Ubiquo::Filters::SelectFilter

Public Instance Methods

configure(field, collection, options={}) click to toggle source

(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
message() click to toggle source

(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
render() click to toggle source

(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.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.