Class: Occams::Content::Tag::Files

Inherits:
File show all
Defined in:
lib/occams/content/tags/files.rb

Overview

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 }}

Instance Attribute Summary

Attributes inherited from File

#as, #variant_attrs

Attributes inherited from Fragment

#identifier, #namespace, #options, #renderable

Attributes inherited from Occams::Content::Tag

#context, #params, #source

Instance Method Summary collapse

Methods inherited from File

#initialize

Methods inherited from Fragment

#form_field_id, #fragment, #initialize, #render

Methods inherited from Occams::Content::Tag

#allow_erb?, #initialize, #nodes, #render

Constructor Details

This class inherits a constructor from Occams::Content::Tag::File

Instance Method Details

#contentObject



9
10
11
12
13
14
15
# File 'lib/occams/content/tags/files.rb', line 9

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

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

#form_field(object_name, view, index) {|view.safe_join([input, attachments_partial], '')| ... } ⇒ Object

Yields:

  • (view.safe_join([input, attachments_partial], ''))


17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/occams/content/tags/files.rb', line 17

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