Class: ClarkKent::ReportsController

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

Defined Under Namespace

Classes: UpdateReport

Instance Method Summary collapse

Methods inherited from ApplicationController

#clark_kent_user

Instance Method Details

#cloneObject



80
81
82
83
84
# File 'app/controllers/clark_kent/reports_controller.rb', line 80

def clone
  report = ClarkKent::Report.find(params[:id])
  report.deep_clone
  redirect_to reports_url
end

#createObject



16
17
18
19
20
21
22
23
24
25
# File 'app/controllers/clark_kent/reports_controller.rb', line 16

def create
  @report = ClarkKent::Report.new(report_params)
  @report.save
  if @report.errors.empty?
    render action: :edit
  else
    puts @report.errors.full_messages
    render action: :new, status: :conflict
  end
end

#destroyObject



86
87
88
89
90
# File 'app/controllers/clark_kent/reports_controller.rb', line 86

def destroy
  @report = ClarkKent::Report.find(params[:id])
  @report.destroy
  redirect_to reports_url
end


49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'app/controllers/clark_kent/reports_controller.rb', line 49

def download_link
  @report = ClarkKent::Report.where(id: params[:id]).first
  prepare_params(params.permit!) if defined? prepare_params
  @report_result_name = "report-#{@report.id}-#{Time.now.to_formatted_s(:number)}"
  parse_date_filters if params[:run_report].present?
  @these_params[:report_result_name] = @report_result_name
  @these_params[:browser_tab_id] = @browser_tab_id
  ConeyIsland.submit(ClarkKent::Report,
                    :send_report_to_s3,
                    args: [@report.id, @these_params],
                    timeout: 300)
  render partial: 'download_link'
end

#editObject



63
64
65
66
67
68
# File 'app/controllers/clark_kent/reports_controller.rb', line 63

def edit
  @report = ClarkKent::Report.find(params[:id])
  if request.xhr?
    render_ajax
  end
end

#indexObject



9
10
# File 'app/controllers/clark_kent/reports_controller.rb', line 9

def index
end

#newObject



12
13
14
# File 'app/controllers/clark_kent/reports_controller.rb', line 12

def new
  @report = ClarkKent::Report.new
end

#set_manage_tabObject



5
6
7
# File 'app/controllers/clark_kent/reports_controller.rb', line 5

def set_manage_tab
  @manage_tab = 'reports'
end

#showObject



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'app/controllers/clark_kent/reports_controller.rb', line 27

def show
  @report = ClarkKent::Report.where(id: params[:id]).includes(:report_columns).first
  if request.xhr?
    render partial: 'show'
  else
    prepare_params(params.permit!) if defined? prepare_params
    if params[:run_report].present?
      parse_date_filters
      @these_params[:page] = params[:page]
      @these_params[:per] = @report.resource_class.default_per_page
      begin
        query = @report.get_query(@these_params)
      rescue ClarkKent::ReportFilterError => e
        @errors = e.message
      else
        @rows = query.page(params[:page])
        @rows.push @report.summary_row(@rows) if @report.summary_row?
      end
    end
  end
end

#updateObject



70
71
72
73
74
75
76
77
78
# File 'app/controllers/clark_kent/reports_controller.rb', line 70

def update
  @report = ClarkKent::Report.find(params[:id])
  UpdateReport.new(@report,report_params).call
  if @report.errors.empty?
    render partial: 'show'
  else
    render partial: 'edit', status: :conflict
  end
end