Module: ActiveScaffold::Bridges::DatePicker::Finder

Defined in:
lib/active_scaffold/bridges/date_picker/ext.rb

Instance Method Summary collapse

Instance Method Details

#datetime_column_date?(column) ⇒ Boolean

Returns:

  • (Boolean)


31
32
33
34
35
36
37
# File 'lib/active_scaffold/bridges/date_picker/ext.rb', line 31

def datetime_column_date?(column)
  if %i[date_picker datetime_picker].include? column.search_ui
    column.search_ui == :date_picker
  else
    super
  end
end

#datetime_conversion_for_condition(column) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/active_scaffold/bridges/date_picker/ext.rb', line 23

def datetime_conversion_for_condition(column)
  if column.search_ui == :date_picker
    :to_date
  else
    super
  end
end

#format_for_date(column, value, ui_name, ui_options) ⇒ Object



39
40
41
42
# File 'lib/active_scaffold/bridges/date_picker/ext.rb', line 39

def format_for_date(column, value, ui_name, ui_options)
  ui_options = ui_options.reverse_merge(format: :default) if ui_name == :date_picker
  super
end

#format_for_datetime(column, value, ui_name, ui_options) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/active_scaffold/bridges/date_picker/ext.rb', line 44

def format_for_datetime(column, value, ui_name, ui_options)
  format = I18n.t "time.formats.#{ui_options[:format] || :picker}", default: '' if ui_name == :datetime_picker
  return super if format.blank?

  parts = Date._parse(value)
  [[:hour, '%H'], [:min, ':%M'], [:sec, ':%S']].each do |part, f|
    format.gsub!(f, '') if parts[part].blank?
  end
  format += ' %z' if parts[:offset].present? && format !~ /%z/i

  format.gsub!(/.*(?=%H)/, '') if !parts[:year] && !parts[:month] && !parts[:mday]
  [format, parts[:offset]]
end