Sha256: 52497390a5be21ff2a8ae7bb6b0e4ef58a46f4d72d3affced75c555b9f7b2e52

Contents?: true

Size: 1.44 KB

Versions: 3

Compression:

Stored size: 1.44 KB

Contents

# Filter für Datumsbereiche mit von- und bis-Datum

class MultiSolr::SolrFilterDateRange < MultiSolr::SolrFilterRange

  # Erzeugen des SolR-Query-Strings
  def build_solr_query value
    from, to = extract_from_to_in_ISO8601 value
    return nil if from.nil? && to.nil?
    "#{@field_name}:[#{from || '*'} TO #{to || '*'}]"
  end


  # Generieren der 2 Input-Felder mit der Option :as => :date_picker
  # Dadurch können diesem Felder das jQuery-Datepicker-UI nutzen
  # Params:   siehe MultiSolr::SolrFilterSimple#render_for_semantic_form
  # returns:  HTML-Code mit 2 Input-Feldern
  def render_for_semantic_form sform, value, context=nil, form_input_options={}
    set_label form_input_options
    label = form_input_options[:label]
    form_input_options.merge! :as => :date_picker
    from, to = extract_from_to value
    date_range = Struct.new("#{@name}_from".to_sym, "#{@name}_to".to_sym).new from,to
    sform.semantic_fields_for "filter_#{@name}", date_range do |filter_form|
      form_input_options[:label] = "#{label} ab"
      sform.template.concat filter_form.input("#{@name}_from", form_input_options)
      form_input_options[:label] = "#{label} bis"
      sform.template.concat filter_form.input("#{@name}_to", form_input_options)
    end
  end

  

  def extract_from_to_in_ISO8601 value
    from, to = extract_from_to value
    d_from = from.blank? ? nil : "#{from}T00:00:00Z"
    d_to = to.blank? ? nil : "#{to}T23:59:59Z"
    [d_from, d_to]
  end
end




Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
multi-solr-01.07.02 lib/multi_solr/solr_filter_date_range.rb
multi-solr-01.07.01 lib/multi_solr/solr_filter_date_range.rb
multi-solr-01.07.00 lib/multi_solr/solr_filter_date_range.rb