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_for(column) ⇒ 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_for(column) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/active_scaffold/helpers/human_condition_helpers.rb', line 6 def active_scaffold_human_condition_for(column) value = field_search_params[column.name] 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 and override_human_condition?(column.search_ui) send(override_human_condition(column.search_ui), column, value) else case search_ui when :integer, :decimal, :float "#{column.active_record_class.human_attribute_name(column.name)} #{as_(value[:opt].downcase).downcase} #{format_number_value(controller.class.condition_value_for_numeric(column, value[:from]), column.) if value[:from].present?} #{value[:opt] == 'BETWEEN' ? '- ' + format_number_value(controller.class.condition_value_for_numeric(column, value[:to]), column.).to_s : ''}" when :string opt = ActiveScaffold::Finder::StringComparators.index(value[:opt]) || value[:opt] "#{column.active_record_class.human_attribute_name(column.name)} #{as_(opt).downcase} '#{value[:from]}' #{opt == 'BETWEEN' ? '- ' + value[:to].to_s : ''}" when :date, :time, :datetime, :timestamp conversion = column.column.type == :date ? :to_date : :to_time from = controller.condition_value_for_datetime(column, value[:from], conversion) to = controller.condition_value_for_datetime(column, value[:to], conversion) "#{column.active_record_class.human_attribute_name(column.name)} #{as_(value[:opt])} #{I18n.l(from)} #{value[:opt] == 'BETWEEN' ? '- ' + I18n.l(to) : ''}" when :select, :multi_select, :record_select associated = value associated = [associated].compact unless associated.is_a? Array if column.association associated = column.association.klass.where(:id => associated.map(&:to_i)).collect(&:to_label) 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 => column.active_record_class.human_attribute_name(column.name), :value => associated.join(', ')) when :boolean, :checkbox label = column.column.type_cast(value) ? as_(:true) : as_(:false) as_(:boolean, :scope => :human_conditions, :column => column.active_record_class.human_attribute_name(column.name), :value => label) when :null "#{column.active_record_class.human_attribute_name(column.name)} #{as_(value.to_sym)}" end end unless value.nil? end |
#override_human_condition(search_ui) ⇒ Object
the naming convention for overriding human condition search_ui types
59 60 61 |
# File 'lib/active_scaffold/helpers/human_condition_helpers.rb', line 59 def override_human_condition(search_ui) "active_scaffold_human_condition_#{search_ui}" end |
#override_human_condition?(search_ui) ⇒ Boolean
54 55 56 |
# File 'lib/active_scaffold/helpers/human_condition_helpers.rb', line 54 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
49 50 51 |
# File 'lib/active_scaffold/helpers/human_condition_helpers.rb', line 49 def override_human_condition_column(column) override_helper column, 'human_condition_column' end |