Class: Dossier::ReportsController

Inherits:
ApplicationController show all
Defined in:
app/controllers/dossier/reports_controller.rb

Instance Method Summary collapse

Instance Method Details

#showObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'app/controllers/dossier/reports_controller.rb', line 3

def show
  report = report_class.new(params[:options] || {})
  report.run

  respond_to do |format|
    format.html do
      begin
        render template: "dossier/reports/#{report_class.report_name}", locals: {report: report}
      rescue ActionView::MissingTemplate => e
        render template: 'dossier/reports/show', locals: {report: report}
      end
    end

    format.json do
      render :json => report.results.hashes
    end

    format.csv do
      set_content_disposition!
      self.response_body = StreamCSV.new(report.raw_results.arrays)
    end

    format.xls do
      set_content_disposition!
      self.response_body = Xls.new(report.raw_results.arrays)
    end
  end
end