Sha256: 8beb51fa81e673838a90a17191784b1d353a3f4171efc15446059f6a9924b75d

Contents?: true

Size: 1.19 KB

Versions: 10

Compression:

Stored size: 1.19 KB

Contents

# frozen_string_literal: true

# Same tag as File, only it handles multiple attachments.
# Generally not a bad idea to handle rendering of this in a partial/helper.
# Example tag:
#   {{ cms:files identifier }}
#
class Occams::Content::Tag::Files < Occams::Content::Tag::File
  def content
    return '' if fragment.attachments.blank?

    fragment.attachments.collect do |attachment|
      super(file: attachment, label: attachment.filename)
    end.join(' ')
  end

  def form_field(object_name, view, index)
    name    = "#{object_name}[fragments_attributes][#{index}][files][]"
    input   = view.send(:file_field_tag, name, id: form_field_id, multiple: true, class: 'form-control')

    attachments_partial =
      if fragment.attachments
        view.render(
          partial: 'occams/admin/cms/fragments/form_fragment_attachments',
          locals: {
            object_name: object_name,
            index: index,
            attachments: fragment.attachments,
            fragment_id: identifier,
            multiple: true
          }
        )
      end

    yield view.safe_join([input, attachments_partial], '')
  end
end

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

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
occams-1.0.7.3 lib/occams/content/tags/files.rb
occams-1.0.7.2 lib/occams/content/tags/files.rb
occams-1.0.7.1 lib/occams/content/tags/files.rb
occams-1.0.7 lib/occams/content/tags/files.rb
occams-1.0.6.1 lib/occams/content/tags/files.rb
occams-1.0.6 lib/occams/content/tags/files.rb
occams-1.0.5 lib/occams/content/tags/files.rb
occams-1.0.4 lib/occams/content/tags/files.rb
occams-1.0.3 lib/occams/content/tags/files.rb
occams-1.0.2 lib/occams/content/tags/files.rb