Sha256: 7a7ee363d2e05fbc19f1566fcb64338503d8b01320b14ba2b0d637392615d515

Contents?: true

Size: 1.39 KB

Versions: 21

Compression:

Stored size: 1.39 KB

Contents

module ActiveScaffold
  module Helpers
    module ListColumnHelpers
      def active_scaffold_column_active_storage_has_one(record, column)
        attachment = record.send(column.name.to_s)
        attachment.attached? ? link_for_attachment(attachment, column) : nil
      end

      def active_scaffold_column_active_storage_has_many(record, column)
        active_storage_files = record.send(column.name.to_s)
        return nil unless active_storage_files.attached?

        attachments = active_storage_files.attachments
        if attachments.size <= 3 # Lets display up to three links, otherwise just show the count.
          links = attachments.map { |attachment| link_for_attachment(attachment, column) }
          safe_join links, association_join_text(column)
        else
          pluralize attachments.size, column.name.to_s
        end
      end

      private

      def link_for_attachment(attachment, column)
        variant = column.options[:thumb] || ActiveScaffold::Bridges::ActiveStorage::ActiveStorageBridgeHelpers.thumbnail_variant
        content =
          if variant && attachment.variable? && column.options[:thumb] != false
            image_tag(attachment.variant(variant))
          else
            attachment.filename
          end
        link_to(content, rails_blob_url(attachment, disposition: 'attachment'), target: '_blank', rel: 'noopener noreferrer')
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
active_scaffold-3.6.20 lib/active_scaffold/bridges/active_storage/list_ui.rb
active_scaffold-3.6.19 lib/active_scaffold/bridges/active_storage/list_ui.rb
active_scaffold-3.6.17 lib/active_scaffold/bridges/active_storage/list_ui.rb
active_scaffold-3.6.15 lib/active_scaffold/bridges/active_storage/list_ui.rb
active_scaffold-3.6.14 lib/active_scaffold/bridges/active_storage/list_ui.rb
active_scaffold-3.6.13 lib/active_scaffold/bridges/active_storage/list_ui.rb
active_scaffold-3.6.12 lib/active_scaffold/bridges/active_storage/list_ui.rb
active_scaffold-3.6.11.1 lib/active_scaffold/bridges/active_storage/list_ui.rb
active_scaffold-3.6.11 lib/active_scaffold/bridges/active_storage/list_ui.rb
active_scaffold-3.6.10 lib/active_scaffold/bridges/active_storage/list_ui.rb
active_scaffold-3.6.9 lib/active_scaffold/bridges/active_storage/list_ui.rb
active_scaffold-3.6.8 lib/active_scaffold/bridges/active_storage/list_ui.rb
active_scaffold-3.6.6 lib/active_scaffold/bridges/active_storage/list_ui.rb
active_scaffold-3.6.5 lib/active_scaffold/bridges/active_storage/list_ui.rb
active_scaffold-3.6.4.1 lib/active_scaffold/bridges/active_storage/list_ui.rb
active_scaffold-3.6.4 lib/active_scaffold/bridges/active_storage/list_ui.rb
active_scaffold-3.6.3 lib/active_scaffold/bridges/active_storage/list_ui.rb
active_scaffold-3.6.2 lib/active_scaffold/bridges/active_storage/list_ui.rb
active_scaffold-3.6.1 lib/active_scaffold/bridges/active_storage/list_ui.rb
active_scaffold-3.6.0 lib/active_scaffold/bridges/active_storage/list_ui.rb