module ActiveScaffold::Bridges::Shared::DateBridge::SearchColumnHelpers

Public Instance Methods

active_scaffold_date_bridge_trend_tag(column, options, trend_options) click to toggle source
# File lib/active_scaffold/bridges/shared/date_bridge.rb, line 43
def active_scaffold_date_bridge_trend_tag(column, options, trend_options)
  trend_controls = text_field_tag("#{trend_options[:name_prefix]}[#{column.name}][number]", trend_options[:number_value], :class => 'text-input', :size => 10, :autocomplete => 'off') << " " <<
  select_tag("#{trend_options[:name_prefix]}[#{column.name}][unit]",
   options_for_select(active_scaffold_search_date_bridge_trend_units(column), trend_options[:unit_value]),
   :class => 'text-input')
  content_tag("span", trend_controls.html_safe, :id => "#{options[:id]}_trend", :style => trend_options[:show] ? nil : "display: none")
end
active_scaffold_search_date_bridge(column, options) click to toggle source
# File lib/active_scaffold/bridges/shared/date_bridge.rb, line 6
def active_scaffold_search_date_bridge(column, options)
  current_search = {'from' => nil, 'to' => nil, 'opt' => 'BETWEEN',
                    'number' => 1, 'unit' => 'DAYS', 'range' => nil}
  current_search.merge!(options[:value]) unless options[:value].nil?
  tags = []
  tags << active_scaffold_search_date_bridge_comparator_tag(column, options, current_search)
  tags << active_scaffold_search_date_bridge_trend_tag(column, options, current_search)
  tags << active_scaffold_search_date_bridge_numeric_tag(column, options, current_search)
  tags << active_scaffold_search_date_bridge_range_tag(column, options, current_search)
  tags.join("&nbsp;").html_safe
end
active_scaffold_search_date_bridge_comparator_options(column) click to toggle source
# File lib/active_scaffold/bridges/shared/date_bridge.rb, line 18
def active_scaffold_search_date_bridge_comparator_options(column)
  select_options = ActiveScaffold::Finder::DateComparators.collect {|comp| [as_(comp.downcase.to_sym), comp]}
  select_options + ActiveScaffold::Finder::NumericComparators.collect {|comp| [as_(comp.downcase.to_sym), comp]}
end
active_scaffold_search_date_bridge_comparator_tag(column, options, current_search) click to toggle source
# File lib/active_scaffold/bridges/shared/date_bridge.rb, line 23
def active_scaffold_search_date_bridge_comparator_tag(column, options, current_search)
  select_tag("#{options[:name]}[opt]", options_for_select(active_scaffold_search_date_bridge_comparator_options(column),current_search['opt']), :id => "#{options[:id]}_opt", :class => "as_search_range_option as_search_date_time_option")
end
active_scaffold_search_date_bridge_numeric_tag(column, options, current_search) click to toggle source
# File lib/active_scaffold/bridges/shared/date_bridge.rb, line 27
def active_scaffold_search_date_bridge_numeric_tag(column, options, current_search)
  numeric_controls = "" << 
  active_scaffold_search_date_bridge_calendar_control(column, options, current_search, 'from') <<
  content_tag(:span, (" - " + active_scaffold_search_date_bridge_calendar_control(column, options, current_search, 'to')).html_safe,
    :id => "#{options[:id]}_between", :class => "as_search_range_between", :style => current_search['opt'] == 'BETWEEN' ? nil : "display: none")
  content_tag("span", numeric_controls.html_safe, :id => "#{options[:id]}_numeric", :style => ActiveScaffold::Finder::NumericComparators.include?(current_search['opt']) ? nil : "display: none")
end
active_scaffold_search_date_bridge_range_tag(column, options, current_search) click to toggle source
# File lib/active_scaffold/bridges/shared/date_bridge.rb, line 57
def active_scaffold_search_date_bridge_range_tag(column, options, current_search)
  range_controls = select_tag("search[#{column.name}][range]", 
    options_for_select( ActiveScaffold::Finder::DateRanges.collect{|range| [as_(range.downcase.to_sym), range]}, current_search["range"]), 
   :class => 'text-input')
  content_tag("span", range_controls.html_safe, :id => "#{options[:id]}_range", :style => (current_search['opt'] == 'RANGE') ? nil : "display: none")
end
active_scaffold_search_date_bridge_trend_tag(column, options, current_search) click to toggle source
# File lib/active_scaffold/bridges/shared/date_bridge.rb, line 35
def active_scaffold_search_date_bridge_trend_tag(column, options, current_search)
  active_scaffold_date_bridge_trend_tag(column, options, 
                                       {:name_prefix => 'search',
                                        :number_value => current_search['number'],
                                        :unit_value => current_search["unit"],
                                        :show => (current_search['opt'] == 'PAST' || current_search['opt'] == 'FUTURE')})
end
active_scaffold_search_date_bridge_trend_units(column) click to toggle source
# File lib/active_scaffold/bridges/shared/date_bridge.rb, line 51
def active_scaffold_search_date_bridge_trend_units(column)
   options = ActiveScaffold::Finder::DateUnits.collect{|unit| [as_(unit.downcase.to_sym), unit]}
   options = ActiveScaffold::Finder::TimeUnits.collect{|unit| [as_(unit.downcase.to_sym), unit]} + options if column_datetime?(column)
   options
end
column_datetime?(column) click to toggle source
# File lib/active_scaffold/bridges/shared/date_bridge.rb, line 64
def column_datetime?(column)
  (!column.column.nil? && [:datetime, :time].include?(column.column.type))
end