Module: RailsAdminMultipleFileUpload::Helper

Defined in:
lib/rails_admin_multiple_file_upload/helper.rb

Instance Method Summary collapse

Instance Method Details

#multiple_file_upload_carrierwave?Boolean

Returns:

  • (Boolean)


60
61
62
# File 'lib/rails_admin_multiple_file_upload/helper.rb', line 60

def multiple_file_upload_carrierwave?
  @conf.options[:upload_gem] == :carrierwave
end

#multiple_file_upload_fieldsObject



53
54
55
# File 'lib/rails_admin_multiple_file_upload/helper.rb', line 53

def multiple_file_upload_fields
  @conf.options[:fields]
end

#multiple_file_upload_paperclip?Boolean

Returns:

  • (Boolean)


57
58
59
# File 'lib/rails_admin_multiple_file_upload/helper.rb', line 57

def multiple_file_upload_paperclip?
  @conf.options[:upload_gem] == :paperclip
end

#multiple_file_upload_thumbnail_sizeObject



63
64
65
# File 'lib/rails_admin_multiple_file_upload/helper.rb', line 63

def multiple_file_upload_thumbnail_size
  @conf.options[:thumbnail_size]
end

#rails_admin_multiple_file_upload(files, opts = {}) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
# File 'lib/rails_admin_multiple_file_upload/helper.rb', line 3

def rails_admin_multiple_file_upload(files, opts= {})
  files = files.to_a.sort_by { |m| m.send(opts[:embedded_model_order_field] || "order").to_i }
  id = "ns_#{rand(100_000_000..999_999_999)}"
  config = {
      update_url: multiple_file_upload_path(model_name: @abstract_model),
      embedded_field: opts[:embedded_field],
      embedded_model_upload_field: opts[:embedded_model_upload_field] || "image",
      embedded_model: @abstract_model.model.new.send(opts[:embedded_field]).new.class.to_s
  }
  (:div, rails_admin_multiple_file_upload_builder(files, config), id: id, class: 'rails_admin_multiple_file_upload')
end

#rails_admin_multiple_file_upload_builder(files, config) ⇒ Object



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
47
48
49
# File 'lib/rails_admin_multiple_file_upload/helper.rb', line 15

def rails_admin_multiple_file_upload_builder(files, config)
  ret = []
  _ret = []
  @object.send(config[:embedded_field]).sorted.each do |ef|
    if multiple_file_upload_paperclip?
      if ef.send(config[:embedded_model_upload_field] + "_content_type") =~ /\Aimage/
        file_url = ef.send(config[:embedded_model_upload_field]).url(multiple_file_upload_thumbnail_size)
        _ret << (:div, image_tag(file_url), class: "file_block_load_already")

      else
        if ef.respond_to(:name)
          file_name = ef.name
        else
          file_name = ef.send(config[:embedded_model_upload_field] + "_file_name")
        end
        _ret << (:div, link_to(ef.name), class: "file_block_load_already")
      end
    end
  end
  ret << (:div, _ret.join.html_safe)
  ret << (:div, "", class: "clearfix")
  ret << rails_admin_form_for(@object, url: config[:update_url], html: {method: :post, multipart: true, class: "form-horizontal denser dropzone"})do |f|
    _ret = []
    _ret << hidden_field_tag(:embedded_field,              config[:embedded_field])
    _ret << hidden_field_tag(:embedded_model_upload_field, config[:embedded_model_upload_field])
    _ret.join.html_safe
    # f.fields_for config[:embedded_field] do |ef|
    #   @object.send(config[:embedded_field]).each do |field|
    #     ef.input_for field
    #   end
    # end
    # f.submit
  end
  ret.join.html_safe
end