Class: DashCreator::FilterController
- Inherits:
-
ApplicationController
- Object
- ApplicationController
- ApplicationController
- DashCreator::FilterController
- Defined in:
- app/controllers/dash_creator/filter_controller.rb
Instance Method Summary collapse
- #create_stat ⇒ Object
- #delete_filters ⇒ Object
- #download_csv ⇒ Object
- #filtering_result ⇒ Object
- #get_filter ⇒ Object
- #save_filter ⇒ Object
Instance Method Details
#create_stat ⇒ Object
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). filters_data['refresh'] = true unless params[:refresh].nil? render 'dash_creator/filter/create_stat', locals: {filters_data: filters_data, id: id} end |
#delete_filters ⇒ Object
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_csv ⇒ Object
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_result ⇒ Object
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_filter ⇒ Object
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. end |
#save_filter ⇒ Object
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 |