Sha256: 13b8a9fd27d3d55c1708539482f9eb4256cb07c4c9c22bdde1cbb228fb838f66

Contents?: true

Size: 1.75 KB

Versions: 18

Compression:

Stored size: 1.75 KB

Contents

module ActiveAdmin
  module ViewHelpers
    module DownloadFormatLinksHelper

      def build_download_formats(download_links)
        download_links = instance_exec(&download_links) if download_links.is_a?(Proc)

        if download_links.is_a?(Array) && !download_links.empty?
          download_links
        elsif download_links == false
          []
        else
          self.class.formats
        end
      end

      def build_download_format_links(formats = self.class.formats)
        params = request.query_parameters.except :format, :commit
        div class: "download_links" do
          span I18n.t('active_admin.download')
          formats.each do |format|
            a format.upcase, href: url_for(params: params, format: format)
          end
        end
      end

      def self.included base
        base.extend ClassMethods
      end

      module ClassMethods

        # A ready only of formats to make available in index/paginated
        # collection view.
        # @return [Array]
        # @see add_format for information on adding custom download link
        # formats
        def formats
          @formats ||= [:csv, :xml, :json]
          @formats.clone
        end

        # Adds a mime type to the list of available formats available for data
        # export. You must register the extension prior to adding it here.
        # @param [Symbol] format the mime type to add
        # @return [Array] A copy of the updated formats array.
        def add_format(format)
          unless Mime::Type.lookup_by_extension format
            raise ArgumentError, "Please register the #{format} mime type with `Mime::Type.register`"
          end
          @formats << format unless formats.include? format
          formats
        end
      end

    end
  end
end

Version data entries

18 entries across 18 versions & 3 rubygems

Version Path
activeadmin-rails-1.7.2 lib/active_admin/view_helpers/download_format_links_helper.rb
activeadmin-rails-1.7.1 lib/active_admin/view_helpers/download_format_links_helper.rb
activeadmin-rails-1.7.0 lib/active_admin/view_helpers/download_format_links_helper.rb
activeadmin-rb-1.6.0 lib/active_admin/view_helpers/download_format_links_helper.rb
activeadmin-rb-1.5.2 lib/active_admin/view_helpers/download_format_links_helper.rb
activeadmin-rb-1.5.1 lib/active_admin/view_helpers/download_format_links_helper.rb
activeadmin-rb-1.5.0 lib/active_admin/view_helpers/download_format_links_helper.rb
activeadmin-rb-1.4.0 lib/active_admin/view_helpers/download_format_links_helper.rb
activeadmin-1.4.3 lib/active_admin/view_helpers/download_format_links_helper.rb
activeadmin-1.4.2 lib/active_admin/view_helpers/download_format_links_helper.rb
activeadmin-1.4.1 lib/active_admin/view_helpers/download_format_links_helper.rb
activeadmin-1.4.0 lib/active_admin/view_helpers/download_format_links_helper.rb
activeadmin-1.3.1 lib/active_admin/view_helpers/download_format_links_helper.rb
activeadmin-1.3.0 lib/active_admin/view_helpers/download_format_links_helper.rb
activeadmin-1.2.1 lib/active_admin/view_helpers/download_format_links_helper.rb
activeadmin-1.2.0 lib/active_admin/view_helpers/download_format_links_helper.rb
activeadmin-1.1.0 lib/active_admin/view_helpers/download_format_links_helper.rb
activeadmin-1.0.0 lib/active_admin/view_helpers/download_format_links_helper.rb