Class: YummyGuide::Administrate::Fields::Area::PictureField

Inherits:
Administrate::Field::Base
  • Object
show all
Defined in:
app/fields/yummy_guide/administrate/fields/area/picture_field.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.field_typeObject



10
11
12
# File 'app/fields/yummy_guide/administrate/fields/area/picture_field.rb', line 10

def self.field_type
  "yummy_guide_administrate/area/picture"
end

Instance Method Details

#attachment_identifier(attachment) ⇒ Object



47
48
49
50
51
52
# File 'app/fields/yummy_guide/administrate/fields/area/picture_field.rb', line 47

def attachment_identifier(attachment)
  return attachment.id if attachment.respond_to?(:id) && attachment.id.present?
  return attachment.blob_id if attachment.respond_to?(:blob_id) && attachment.blob_id.present?

  nil
end

#attachment_label(attachment) ⇒ Object



41
42
43
44
45
# File 'app/fields/yummy_guide/administrate/fields/area/picture_field.rb', line 41

def attachment_label(attachment)
  return attachment.filename.to_s if attachment.respond_to?(:filename)

  attachment.to_s
end

#attachment_url(attachment, view_context:) ⇒ Object



54
55
56
# File 'app/fields/yummy_guide/administrate/fields/area/picture_field.rb', line 54

def attachment_url(attachment, view_context:)
  resolve_attachment_url(:attachment_url, attachment, view_context: view_context) || preview_url(attachment, view_context: view_context)
end

#attachmentsObject



14
15
16
17
18
19
20
21
22
23
# File 'app/fields/yummy_guide/administrate/fields/area/picture_field.rb', line 14

def attachments
  @attachments ||=
    if data.respond_to?(:attachments)
      data.attachments.to_a
    elsif data.respond_to?(:attached?) && data.attached?
      [data]
    else
      []
    end
end

#input_nameObject



33
34
35
# File 'app/fields/yummy_guide/administrate/fields/area/picture_field.rb', line 33

def input_name
  resolve_option(:input_name) || "#{resource_param_key}[#{attribute}][]"
end

#max_uploadsObject



25
26
27
28
29
30
31
# File 'app/fields/yummy_guide/administrate/fields/area/picture_field.rb', line 25

def max_uploads
  resolved = resolve_option(:max_uploads)
  resolved = resource.class::MAX_PICTURE_UPLOADS if resolved.blank? && resource.class.const_defined?(:MAX_PICTURE_UPLOADS)
  resolved = attachments.size + 1 if resolved.blank?

  [resolved.to_i, 1].max
end

#preview_url(attachment, view_context:) ⇒ Object



58
59
60
# File 'app/fields/yummy_guide/administrate/fields/area/picture_field.rb', line 58

def preview_url(attachment, view_context:)
  resolve_attachment_url(:preview_url, attachment, view_context: view_context) || default_attachment_url(attachment, view_context: view_context)
end

#purge_input_nameObject



37
38
39
# File 'app/fields/yummy_guide/administrate/fields/area/picture_field.rb', line 37

def purge_input_name
  resolve_option(:purge_input_name) || "#{resource_param_key}[#{attribute}_purge_ids][]"
end