Module: YummyGuide::Administrate::FilterFormHelper
- Defined in:
- app/helpers/yummy_guide/administrate/filter_form_helper.rb
Instance Method Summary collapse
- #yummy_guide_administrate_checkbox_group_options(options, label_method: nil, value_method: nil) ⇒ Object
- #yummy_guide_administrate_datetime_filter_combined_value(parts) ⇒ Object
- #yummy_guide_administrate_datetime_filter_parts(value, end_of_day: false) ⇒ Object
- #yummy_guide_administrate_filter_current_values(raw_values) ⇒ Object
- #yummy_guide_administrate_filter_hour_options ⇒ Object
- #yummy_guide_administrate_filter_minute_options ⇒ Object
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 (, label_method: nil, value_method: nil) Array().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_options ⇒ Object
19 20 21 |
# File 'app/helpers/yummy_guide/administrate/filter_form_helper.rb', line 19 def @yummy_guide_administrate_filter_hour_options ||= [["", ""]] + (0..23).map { |hour| [format("%02d", hour), format("%02d", hour)] } end |
#yummy_guide_administrate_filter_minute_options ⇒ Object
23 24 25 |
# File 'app/helpers/yummy_guide/administrate/filter_form_helper.rb', line 23 def @yummy_guide_administrate_filter_minute_options ||= [["", ""], ["00", "00"], ["30", "30"], ["59", "59"]] end |