Class: DashCreator::ChartController
- Inherits:
-
ApplicationController
- Object
- ApplicationController
- ApplicationController
- DashCreator::ChartController
- Defined in:
- app/controllers/dash_creator/chart_controller.rb
Instance Method Summary collapse
- #create_chart ⇒ Object
- #delete_charts ⇒ Object
- #edit_chart ⇒ Object
- #get_chart ⇒ Object
- #pluck_labels ⇒ Object
- #save_chart ⇒ Object
Instance Method Details
#create_chart ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 |
# File 'app/controllers/dash_creator/chart_controller.rb', line 7 def create_chart return render json: {models: nil} if params[:filters].nil? # Remove useless filters from data chart_data = params chart_data[:filters] = chart_data[:filters] .to_unsafe_h .select { |key, value| chart_data[:y_data].include?(key.to_s) || (key.to_s == chart_data[:x_data][:attribute].classify && chart_data[:x_data][:from_filter] == 'true' ) } render 'dash_creator/chart/create_chart', locals: {chart_data: chart_data, filters_data: nil, id: 0} end |
#delete_charts ⇒ Object
68 69 70 71 |
# File 'app/controllers/dash_creator/chart_controller.rb', line 68 def delete_charts user = user_for_dash_creator DashCreator::Chart.all.where(user_id: user.id, id: params[:charts_ids]).destroy_all end |
#edit_chart ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'app/controllers/dash_creator/chart_controller.rb', line 35 def edit_chart return render json: {models: nil} if params[:filters].nil? # Remove useless filters from data chart_data = params chart_data[:filters] = chart_data[:filters] .to_unsafe_h .select { |key, value| chart_data[:y_data].include?(key.to_s) || (key.to_s == chart_data[:x_data][:attribute].classify && chart_data[:x_data][:from_filter] == 'true' ) } # Edit chart from data user = user_for_dash_creator chart = DashCreator::Chart.all.where(user_id: user.id).find(params[:chart_id]) chart.update_attribute(:data, chart_data) render json: {chart_id: chart.id} end |
#get_chart ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'app/controllers/dash_creator/chart_controller.rb', line 52 def get_chart user = user_for_dash_creator id = params[:chart_id] chart = DashCreator::Chart.all.where(user_id: user.id).find(id) refresh = params.key?('refresh') ? params['refresh'] : 'false' filters_data = chart.data['filters'] chart_data = chart.data chart_data['refresh'] = refresh chart_data.delete('chart_id') chart_data.delete('chart_name') render 'dash_creator/chart/create_chart', locals: {chart_data: chart.data, filters_data: filters_data, id: id} end |
#pluck_labels ⇒ Object
73 74 75 76 77 78 79 |
# File 'app/controllers/dash_creator/chart_controller.rb', line 73 def pluck_labels model = params[:model].safe_constantize attribute = params[:attribute] limit = params[:limit].empty? ? 30 : params[:limit].to_i render json: {labels: model.pluck(:"#{attribute}").uniq.take(limit)} end |
#save_chart ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'app/controllers/dash_creator/chart_controller.rb', line 19 def save_chart return render json: {models: nil} if params[:filters].nil? # Remove useless filters from data chart_data = params chart_data[:filters] = chart_data[:filters] .to_unsafe_h .select { |key, value| chart_data[:y_data].include?(key.to_s) || (key.to_s == chart_data[:x_data][:attribute].classify && chart_data[:x_data][:from_filter] == 'true' ) } # Create chart from data user = user_for_dash_creator chart = DashCreator::Chart.all.where(user_id: user.id).create(name: params[:chart_name], data: chart_data) render json: {chart_id: chart.id} end |