Module: YummyGuide::Administrate::FilterFormHelper

Defined in:
app/helpers/yummy_guide/administrate/filter_form_helper.rb

Instance Method Summary collapse

Instance Method Details

#yummy_guide_administrate_checkbox_group_options(options, label_method: nil, value_method: nil) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'app/helpers/yummy_guide/administrate/filter_form_helper.rb', line 63

def yummy_guide_administrate_checkbox_group_options(options, label_method: nil, value_method: nil)
  Array(options).map do |option|
    if option.is_a?(Array) && option.size == 2
      option
    elsif label_method.present? || value_method.present?
      [
        option.public_send(label_method || :to_s),
        option.public_send(value_method || :id)
      ]
    else
      [option, option]
    end
  end
end

#yummy_guide_administrate_datetime_filter_combined_value(parts) ⇒ Object



53
54
55
56
57
58
59
60
61
# File 'app/helpers/yummy_guide/administrate/filter_form_helper.rb', line 53

def yummy_guide_administrate_datetime_filter_combined_value(parts)
  if parts[:date].blank?
    ""
  elsif parts[:hour].present? && parts[:minute].present?
    "#{parts[:date]}T#{parts[:hour]}:#{parts[:minute]}"
  else
    parts[:date]
  end
end

#yummy_guide_administrate_datetime_filter_parts(value, end_of_day: false) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'app/helpers/yummy_guide/administrate/filter_form_helper.rb', line 27

def yummy_guide_administrate_datetime_filter_parts(value, end_of_day: false)
  raw_value = value.to_s.strip

  if raw_value.blank?
    { date: "", hour: "", minute: "" }
  elsif raw_value.match?(/\A\d{4}-\d{2}-\d{2}\z/)
    {
      date: raw_value,
      hour: (end_of_day ? "23" : "00"),
      minute: (end_of_day ? "59" : "00")
    }
  else
    parsed = Time.zone.parse(raw_value)

    if parsed.present?
      {
        date: parsed.strftime("%Y-%m-%d"),
        hour: parsed.strftime("%H"),
        minute: parsed.strftime("%M")
      }
    else
      { date: "", hour: "", minute: "" }
    end
  end
end

#yummy_guide_administrate_filter_current_values(raw_values) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
# File 'app/helpers/yummy_guide/administrate/filter_form_helper.rb', line 6

def yummy_guide_administrate_filter_current_values(raw_values)
  values =
    if raw_values.respond_to?(:to_unsafe_h)
      raw_values.to_unsafe_h
    elsif raw_values.respond_to?(:to_h)
      raw_values.to_h
    else
      raw_values || {}
    end

  values.deep_stringify_keys
end

#yummy_guide_administrate_filter_hour_optionsObject



19
20
21
# File 'app/helpers/yummy_guide/administrate/filter_form_helper.rb', line 19

def yummy_guide_administrate_filter_hour_options
  @yummy_guide_administrate_filter_hour_options ||= [["", ""]] + (0..23).map { |hour| [format("%02d", hour), format("%02d", hour)] }
end

#yummy_guide_administrate_filter_minute_optionsObject



23
24
25
# File 'app/helpers/yummy_guide/administrate/filter_form_helper.rb', line 23

def yummy_guide_administrate_filter_minute_options
  @yummy_guide_administrate_filter_minute_options ||= [["", ""], ["00", "00"], ["30", "30"], ["59", "59"]]
end