Class: DashCreator::UserController
- Inherits:
-
ApplicationController
- Object
- ApplicationController
- ApplicationController
- DashCreator::UserController
- Defined in:
- app/controllers/dash_creator/user_controller.rb
Instance Method Summary collapse
-
#creator ⇒ Object
Creator for filters, charts & dashboards #####.
-
#dashboard ⇒ Object
Render a dashboard #####.
Instance Method Details
#creator ⇒ Object
Creator for filters, charts & dashboards #####
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'app/controllers/dash_creator/user_controller.rb', line 7 def creator user = user_for_dash_creator Rails.application.eager_load! models = ApplicationRecord.descendants.select{ |m| !DashCreator.except_models.include?(m.name) } @models = models.map{ |m| [m.name, m.name] } @filters = DashCreator::Filter.all.where(user_id: user.id).all.map { |f| [f.name, f.id] } @models_data = models_data @charts = DashCreator::Chart.all.where(user_id: user.id).all.map { |c| [c.name, c.id] } @dashboards = DashCreator::Dashboard.all.where(user_id: user.id).all.map { |d| [d.name, d.id] } @dashboard_objects = DashboardObject.all @model_objects = {} @dashboard_objects.each do |o| if o. != '' model = o..safe_constantize model_objects = (model.column_names.include? 'user_id') ? model.where(user: user) : model.all @model_objects[o.code] = model_objects.map{ |mo| {id: mo.id, name: mo.name} } end end render :creator, layout: DashCreator.layout_path end |
#dashboard ⇒ Object
Render a dashboard #####
36 37 38 39 40 41 42 |
# File 'app/controllers/dash_creator/user_controller.rb', line 36 def dashboard user = user_for_dash_creator @dashboard = DashCreator::Dashboard.all.where(user_id: user.id).find(params[:dashboard_id]) @dashboards = DashCreator::Dashboard.all.where(user_id: user.id).map { |d| [d.name, d.id] } render :dashboard, layout: DashCreator.layout_path end |