Class: DashCreator::FilterController

Inherits:
ApplicationController show all
Defined in:
app/controllers/dash_creator/filter_controller.rb

Instance Method Summary collapse

Instance Method Details

#create_statObject



52
53
54
55
56
57
58
# File 'app/controllers/dash_creator/filter_controller.rb', line 52

def create_stat
  id = params[:filter_id]
  filters_data = DashCreator::Filter.find(id).options
  filters_data['refresh'] = true unless params[:refresh].nil?

  render 'dash_creator/filter/create_stat', locals: {filters_data: filters_data, id: id}
end

#delete_filtersObject



21
22
23
24
# File 'app/controllers/dash_creator/filter_controller.rb', line 21

def delete_filters
  user = user_for_dash_creator
  DashCreator::Filter.all.where(user_id: user.id, id: params[:filters_ids]).destroy_all
end

#download_csvObject



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'app/controllers/dash_creator/filter_controller.rb', line 35

def download_csv
  model = params[:model]
  columns = params[:columns]
  objects = model.safe_constantize.find(params[:ids])

  file = CSV.generate do |csv|
    csv << columns
    objects.each do |o|
      csv << o.attributes.values_at(*columns)
    end
  end

  send_data file,
            type: 'text/csv; charset=utf-8; header=present',
            disposition: "attachment; filename=#{model}.csv"
end

#filtering_resultObject



26
27
28
29
30
31
32
33
# File 'app/controllers/dash_creator/filter_controller.rb', line 26

def filtering_result
  return render json: {models: nil} if params[:filters].nil?

  numeric_types = Numeric.descendants.map{ |n| n.name.underscore }
  @starting_types = numeric_types + %w(string date datetime)

  render 'dash_creator/filter/apply_filtering', locals: {data: params['filters'], id: params['id']}
end

#get_filterObject



7
8
9
10
11
12
# File 'app/controllers/dash_creator/filter_controller.rb', line 7

def get_filter
  user = user_for_dash_creator
  filter = DashCreator::Filter.all.where(user_id: user.id).find(params[:filter_id])

  render json: filter.options
end

#save_filterObject



14
15
16
17
18
19
# File 'app/controllers/dash_creator/filter_controller.rb', line 14

def save_filter
  user = user_for_dash_creator
  filter = DashCreator::Filter.all.where(user_id: user.id).create(name: params[:filter_name], options: params[:filters])

  render json: {filter_id: filter.id}
end