Sha256: 0e9db581d9aea9cf721b7de7483d86cc29cf79d3c4b046c67f987d8c6ea1016c

Contents?: true

Size: 1.34 KB

Versions: 27

Compression:

Stored size: 1.34 KB

Contents

module Avo
  module Fields
    class FileField < BaseField
      attr_accessor :link_to_record
      attr_accessor :is_avatar
      attr_accessor :is_image
      attr_accessor :is_audio
      attr_accessor :direct_upload
      attr_accessor :accept
      attr_reader :display_filename

      def initialize(id, **args, &block)
        super(id, **args, &block)

        @link_to_record = args[:link_to_record].present? ? args[:link_to_record] : false
        @is_avatar = args[:is_avatar].present? ? args[:is_avatar] : false
        @is_image = args[:is_image].present? ? args[:is_image] : @is_avatar
        @is_audio = args[:is_audio].present? ? args[:is_audio] : false
        @direct_upload = args[:direct_upload].present? ? args[:direct_upload] : false
        @accept = args[:accept].present? ? args[:accept] : nil
        @display_filename = args[:display_filename].nil? ? true : args[:display_filename]
      end

      def path
        rails_blob_url value
      end

      def value
        final_value = super
        # On edit view always show the persisted image. Related: issue#3008
        if final_value.instance_of?(ActiveStorage::Attached::One) && view == "edit"
          persisted_record = record.class.find_by(id: record.id)
          final_value = persisted_record.send(@for_attribute || id)
        end
        final_value
      end
    end
  end
end

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
avo-3.14.5 lib/avo/fields/file_field.rb
avo-3.14.4 lib/avo/fields/file_field.rb
avo-3.14.3 lib/avo/fields/file_field.rb
avo-3.14.2 lib/avo/fields/file_field.rb
avo-3.14.1 lib/avo/fields/file_field.rb
avo-3.14.0 lib/avo/fields/file_field.rb
avo-3.13.7 lib/avo/fields/file_field.rb
avo-3.13.6 lib/avo/fields/file_field.rb
avo-3.13.5 lib/avo/fields/file_field.rb
avo-3.13.4 lib/avo/fields/file_field.rb
avo-3.13.3 lib/avo/fields/file_field.rb
avo-3.13.2 lib/avo/fields/file_field.rb
avo-3.13.1 lib/avo/fields/file_field.rb
avo-3.13.0 lib/avo/fields/file_field.rb
avo-3.12.0 lib/avo/fields/file_field.rb
avo-3.11.10 lib/avo/fields/file_field.rb
avo-3.11.9 lib/avo/fields/file_field.rb
avo-3.11.8 lib/avo/fields/file_field.rb
avo-3.11.7 lib/avo/fields/file_field.rb
avo-3.11.6 lib/avo/fields/file_field.rb