Sha256: de41dd10d1e406ea71658d7fa24026030147d41437d6c44d5fcbbe24bec9b2e0

Contents?: true

Size: 1.16 KB

Versions: 8

Compression:

Stored size: 1.16 KB

Contents

# frozen_string_literal: true

# ObjectQuery
module ObjectQuery
  extend ActiveSupport::Concern

  private

  def redirect_to_index(objects)
    return if listing? && (objects.first_page? || !objects.size.zero?)
    redirect_to(
      {
        action: :index,
        page: (@current_page.to_i if params[:page]),
        search: @query
      },
      notice: actions_messages(model.new)
    )
  end

  def send_format_data(objects, extension)
    models = objects.model.to_s.downcase.pluralize
    filename = "#{models}-#{Date.today}"
    case extension
    when 'csv'
      send_data objects.to_csv, filename: "#{filename}.csv"
    when 'xls'
      send_data objects.to_a.to_xls, filename: "#{filename}.xls"
    end
  end

  def respond_to_formats(objects)
    respond_to do |format|
      format.html
      format.csv { send_format_data(objects.model.all, 'csv') }
      format.xls { send_format_data(objects.model.all, 'xls') }
      format.json { render json: json_objects(objects) }
    end
  end

  protected

  def json_objects(objects)
    if request.url.include?('page')
      objects.page(@current_page).order(position: :desc)
    else
      objects.model.all
    end
  end
end

Version data entries

8 entries across 7 versions & 1 rubygems

Version Path
keppler-2.1.22 installer/core/app/controllers/concerns/object_query.rb
keppler-2.1.21 installer/core/app/controllers/concerns/object_query.rb
keppler-2.1.20 installer/core/app/controllers/concerns/object_query.rb
keppler-2.1.19 installer/core/app/controllers/concerns/object_query.rb
keppler-2.1.18 testing-with-2.1.18/app/controllers/concerns/object_query.rb
keppler-2.1.18 installer/core/app/controllers/concerns/object_query.rb
keppler-2.1.17 installer/core/app/controllers/concerns/object_query.rb
keppler-2.1.16 installer/core/app/controllers/concerns/object_query.rb