Module: RademadeAdmin::FieldHelper

Defined in:
app/helpers/rademade_admin/field_helper.rb

Instance Method Summary collapse

Instance Method Details

#display_item_value(item, data_item) ⇒ String

Display the field of given item

Parameters:

Returns:

  • (String)


11
12
13
14
15
# File 'app/helpers/rademade_admin/field_helper.rb', line 11

def display_item_value(item, data_item)
  value = raw_item_value(item, data_item)
  return (value ? '' : '×') if value.is_a?(::Boolean)
  value
end


17
18
19
20
21
22
23
# File 'app/helpers/rademade_admin/field_helper.rb', line 17

def display_related_item(data_item, item, value)
  if data_item.relation.has_many?
    link_to(data_item.label, admin_related_item(item, data_item.getter))
  else
    link_to(value.to_s, admin_edit_uri(value)) unless value.nil?
  end
end

#display_upload_item(_, value) ⇒ Object



25
26
27
# File 'app/helpers/rademade_admin/field_helper.rb', line 25

def display_upload_item(_, value)
  RademadeAdmin::Upload::PreviewService.new(value).uploaded_file_html
end

#input_attr(attrs = {}) ⇒ Object



39
40
41
42
43
44
# File 'app/helpers/rademade_admin/field_helper.rb', line 39

def input_attr(attrs = {})
  attrs.deep_merge(
    wrapper_html: { class: 'form-group' },
    input_html: { class: 'form-input' }
  )
end

#pagination_option(number, name = 'paginate') ⇒ Object



29
30
31
32
33
34
35
36
37
# File 'app/helpers/rademade_admin/field_helper.rb', line 29

def pagination_option(number, name = 'paginate')
  hash_params = request.query_parameters.clone
  hash_params.delete(:page)
  hash_params[name.to_sym] = number

  selected = number == request.query_parameters[name.to_sym].to_i
  url_params = request.path_parameters.merge(hash_params)
  (:option, number.to_s, :selected => selected, :value => admin_url_for(url_params))
end

#raw_item_value(item, data_item) ⇒ Object



46
47
48
49
50
51
52
# File 'app/helpers/rademade_admin/field_helper.rb', line 46

def raw_item_value(item, data_item)
  return data_item.list_preview_handler.call(item) unless data_item.list_preview_handler.nil?
  value = item.send(data_item.list_preview_accessor)
  return display_upload_item(data_item, value) if data_item.has_uploader?
  return display_related_item(data_item, item, value) if data_item.has_relation?
  value.to_s.html_safe
end