Module: ActiveScaffold::Helpers::HumanConditionHelpers
- Included in:
- ViewHelpers
- Defined in:
- lib/active_scaffold/helpers/human_condition_helpers.rb
Overview
Helpers that assist with rendering of a human readable search statement
Instance Method Summary collapse
- #active_scaffold_human_condition_boolean(column, value) ⇒ Object (also: #active_scaffold_human_condition_checkbox)
- #active_scaffold_human_condition_date(column, value) ⇒ Object (also: #active_scaffold_human_condition_time, #active_scaffold_human_condition_datetime, #active_scaffold_human_condition_timestamp)
- #active_scaffold_human_condition_for(column) ⇒ Object
- #active_scaffold_human_condition_integer(column, value) ⇒ Object (also: #active_scaffold_human_condition_decimal, #active_scaffold_human_condition_float)
- #active_scaffold_human_condition_null(column, value) ⇒ Object
- #active_scaffold_human_condition_select(column, associated) ⇒ Object (also: #active_scaffold_human_condition_multi_select, #active_scaffold_human_condition_record_select)
- #active_scaffold_human_condition_string(column, value) ⇒ Object
- #format_human_condition(column, opt, from = nil, to = nil) ⇒ Object
-
#override_human_condition(search_ui) ⇒ Object
the naming convention for overriding human condition search_ui types.
- #override_human_condition?(search_ui) ⇒ Boolean
-
#override_human_condition_column(column) ⇒ Object
(also: #override_human_condition_column?)
the naming convention for overriding form fields with helpers.
Instance Method Details
#active_scaffold_human_condition_boolean(column, value) ⇒ Object Also known as: active_scaffold_human_condition_checkbox
47 48 49 50 51 |
# File 'lib/active_scaffold/helpers/human_condition_helpers.rb', line 47 def active_scaffold_human_condition_boolean(column, value) attribute = column.active_record_class.human_attribute_name(column.name) label = as_(ActiveScaffold::Core.column_type_cast(value, column.column) ? :true : :false) as_(:boolean, :scope => :human_conditions, :column => attribute, :value => label) end |
#active_scaffold_human_condition_date(column, value) ⇒ Object Also known as: active_scaffold_human_condition_time, active_scaffold_human_condition_datetime, active_scaffold_human_condition_timestamp
37 38 39 40 41 42 |
# File 'lib/active_scaffold/helpers/human_condition_helpers.rb', line 37 def active_scaffold_human_condition_date(column, value) conversion = column.column.type == :date ? :to_date : :to_time from = I18n.l controller.condition_value_for_datetime(column, value[:from], conversion) to = "- #{I18n.l controller.condition_value_for_datetime(column, value[:to], conversion)}" if value[:opt] == 'BETWEEN' format_human_condition column, value[:opt], from, to end |
#active_scaffold_human_condition_for(column) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/active_scaffold/helpers/human_condition_helpers.rb', line 5 def active_scaffold_human_condition_for(column) return if (value = field_search_params[column.name]).nil? search_ui = column.search_ui search_ui ||= column.column.type if column.column if override_human_condition_column?(column) send(override_human_condition_column(column), value, {}) elsif search_ui && override_human_condition?(search_ui) send(override_human_condition(search_ui), column, value) else logger.warn "undefined active_scaffold_human_condition method for search_ui #{search_ui} on column #{column.name}" end end |
#active_scaffold_human_condition_integer(column, value) ⇒ Object Also known as: active_scaffold_human_condition_decimal, active_scaffold_human_condition_float
23 24 25 26 27 |
# File 'lib/active_scaffold/helpers/human_condition_helpers.rb', line 23 def active_scaffold_human_condition_integer(column, value) from = format_number_value(controller.class.condition_value_for_numeric(column, value[:from]), column.) if value[:from].present? to = "- #{format_number_value(controller.class.condition_value_for_numeric(column, value[:to]), column.)}" if value[:opt] == 'BETWEEN' format_human_condition column, value[:opt].downcase, from, to end |
#active_scaffold_human_condition_null(column, value) ⇒ Object
54 55 56 |
# File 'lib/active_scaffold/helpers/human_condition_helpers.rb', line 54 def active_scaffold_human_condition_null(column, value) format_human_condition column, value.to_sym end |
#active_scaffold_human_condition_select(column, associated) ⇒ Object Also known as: active_scaffold_human_condition_multi_select, active_scaffold_human_condition_record_select
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/active_scaffold/helpers/human_condition_helpers.rb', line 58 def active_scaffold_human_condition_select(column, associated) attribute = column.active_record_class.human_attribute_name(column.name) associated = [associated].compact unless associated.is_a? Array if column.association method = column.[:label_method] || :to_label associated = column.association.klass.where(:id => associated.map(&:to_i)).map(&method) elsif column.[:options] associated = associated.collect do |value| text, val = column.[:options].find { |text, val| (val.nil? ? text : val).to_s == value.to_s } value = active_scaffold_translated_option(column, text, val).first if text value end end as_(:association, :scope => :human_conditions, :column => attribute, :value => associated.join(', ')) end |
#active_scaffold_human_condition_string(column, value) ⇒ Object
31 32 33 34 35 |
# File 'lib/active_scaffold/helpers/human_condition_helpers.rb', line 31 def active_scaffold_human_condition_string(column, value) opt = ActiveScaffold::Finder::STRING_COMPARATORS.index(value[:opt]) || value[:opt] to = "- #{value[:to]}" if opt == 'BETWEEN' format_human_condition column, opt, "'#{value[:from]}'", to end |
#format_human_condition(column, opt, from = nil, to = nil) ⇒ Object
18 19 20 21 |
# File 'lib/active_scaffold/helpers/human_condition_helpers.rb', line 18 def format_human_condition(column, opt, from = nil, to = nil) attribute = column.active_record_class.human_attribute_name(column.name) "#{attribute} #{as_(opt).downcase} #{from} #{to}" end |
#override_human_condition(search_ui) ⇒ Object
the naming convention for overriding human condition search_ui types
87 88 89 |
# File 'lib/active_scaffold/helpers/human_condition_helpers.rb', line 87 def override_human_condition(search_ui) "active_scaffold_human_condition_#{search_ui}" end |
#override_human_condition?(search_ui) ⇒ Boolean
82 83 84 |
# File 'lib/active_scaffold/helpers/human_condition_helpers.rb', line 82 def override_human_condition?(search_ui) respond_to?(override_human_condition(search_ui)) end |
#override_human_condition_column(column) ⇒ Object Also known as: override_human_condition_column?
the naming convention for overriding form fields with helpers
77 78 79 |
# File 'lib/active_scaffold/helpers/human_condition_helpers.rb', line 77 def override_human_condition_column(column) override_helper column, 'human_condition_column' end |