Sha256: c275a16ce396d4c35a95ec11dff9cafa1dd142c34a56d05e3fd46726cbcc93a3

Contents?: true

Size: 1.09 KB

Versions: 3

Compression:

Stored size: 1.09 KB

Contents

# Same tag as File, only it handles multiple attachments.
# Generally not a bad idea to handle rendering of this in a partial/helper
#
class ComfortableMexicanSofa::Content::Tag::Files < ComfortableMexicanSofa::Content::Tag::File

  def initialize(context, params_string)
    super
  end

  def content
    return "" if fragment.attachments.blank?

    fragment.attachments.collect do |attachment|
      super(attachment)
    end.join(" ")
  end

  def form_field(object_name, view, index, &block)
    name    = "#{object_name}[fragments_attributes][#{index}][files][]"
    input   = view.send(:file_field_tag, name, {id: nil, multiple: true})

    attachments_partial = if fragment.attachments
      view.render(
        partial: "comfy/admin/cms/pages/fragment_attachments",
        locals: {
          object_name:  object_name,
          index:        index,
          attachments:  fragment.attachments
        }
      )
    end

    yield [input, attachments_partial].join.html_safe
  end
end

ComfortableMexicanSofa::Content::Renderer.register_tag(
  :files, ComfortableMexicanSofa::Content::Tag::Files
)

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
comfortable_mexican_sofa-2.0.2 lib/comfortable_mexican_sofa/content/tags/files.rb
comfortable_mexican_sofa-2.0.1 lib/comfortable_mexican_sofa/content/tags/files.rb
comfortable_mexican_sofa-2.0.0 lib/comfortable_mexican_sofa/content/tags/files.rb