Class: Locomotive::FileInput

Inherits:
Object
  • Object
show all
Includes:
Formtastic::Inputs::Base
Defined in:
app/inputs/locomotive/file_input.rb

Instance Method Summary collapse

Instance Method Details

#file_wrapper_htmlObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'app/inputs/locomotive/file_input.rb', line 19

def file_wrapper_html
  prefix = builder.custom_namespace.present? ? "#{builder.custom_namespace}_" : ''

  template_id = "#{prefix}#{method}_file_input"

  template.(:script,
    %(
      {{#if url}}
      #{with_file_html}
      {{else}}
      #{without_file_html}
      {{/if}}).html_safe,
    type: 'text/html', id: template_id)
end

#input_wrapping(&block) ⇒ Object



12
13
14
15
16
17
# File 'app/inputs/locomotive/file_input.rb', line 12

def input_wrapping(&block)
  template.(:li,
    [template.capture(&block), file_wrapper_html, error_html, hint_html].join("\n").html_safe,
    wrapper_html_options
  )
end

#to_htmlObject



6
7
8
9
10
# File 'app/inputs/locomotive/file_input.rb', line 6

def to_html
  input_wrapping do
    label_html
  end
end

#with_file_htmlObject



34
35
36
37
38
39
40
41
42
# File 'app/inputs/locomotive/file_input.rb', line 34

def with_file_html
  cancel_message = I18n.t('locomotive.shared.form.cancel')

  html =  template.link_to '{{filename}}', '{{url}}', target: '_blank'
  html += builder.file_field(method, input_html_options.merge(style: 'display: none'))
  html += template.link_to I18n.t('locomotive.shared.form.change_file'), '#', class: 'change', :'data-alt-label' => cancel_message
  html += template.link_to I18n.t('locomotive.shared.form.delete_file'), '#', class: 'delete', :'data-alt-label' => cancel_message
  html += builder.hidden_field "remove_#{method}", class: 'remove-flag'
end

#without_file_htmlObject



44
45
46
# File 'app/inputs/locomotive/file_input.rb', line 44

def without_file_html
  builder.file_field(method, input_html_options).html_safe
end