Class: Blazer::DashboardsController
- Inherits:
-
BaseController
- Object
- ApplicationController
- BaseController
- Blazer::DashboardsController
- Defined in:
- app/controllers/blazer/dashboards_controller.rb
Instance Method Summary collapse
- #create ⇒ Object
- #destroy ⇒ Object
- #edit ⇒ Object
- #index ⇒ Object
- #new ⇒ Object
- #refresh ⇒ Object
- #show ⇒ Object
- #update ⇒ Object
Instance Method Details
#create ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'app/controllers/blazer/dashboards_controller.rb', line 13 def create @dashboard = Blazer::Dashboard.new # use creator_id instead of creator # since we setup association without checking if column exists @dashboard.creator = blazer_user if @dashboard.respond_to?(:creator_id=) && blazer_user if update_dashboard(@dashboard) redirect_to dashboard_path(@dashboard) else render_errors @dashboard end end |
#destroy ⇒ Object
56 57 58 59 |
# File 'app/controllers/blazer/dashboards_controller.rb', line 56 def destroy @dashboard.destroy redirect_to dashboards_path end |
#edit ⇒ Object
45 46 |
# File 'app/controllers/blazer/dashboards_controller.rb', line 45 def edit end |
#index ⇒ Object
5 6 7 |
# File 'app/controllers/blazer/dashboards_controller.rb', line 5 def index redirect_to root_path(filter: "dashboards") end |
#new ⇒ Object
9 10 11 |
# File 'app/controllers/blazer/dashboards_controller.rb', line 9 def new @dashboard = Blazer::Dashboard.new end |
#refresh ⇒ Object
61 62 63 64 65 66 67 68 69 70 |
# File 'app/controllers/blazer/dashboards_controller.rb', line 61 def refresh @dashboard.queries.each do |query| data_source = Blazer.data_sources[query.data_source] statement = query.statement.dup process_vars(statement, query.data_source) Blazer.transform_statement.call(data_source, statement) if Blazer.transform_statement data_source.clear_cache(statement) end redirect_to dashboard_path(@dashboard, variable_params) end |
#show ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'app/controllers/blazer/dashboards_controller.rb', line 26 def show @queries = @dashboard.dashboard_queries.order(:position).preload(:query).map(&:query) @queries.each do |query| process_vars(query.statement, query.data_source) end @bind_vars ||= [] @smart_vars = {} @sql_errors = [] @data_sources = @queries.map { |q| Blazer.data_sources[q.data_source] }.uniq @bind_vars.each do |var| @data_sources.each do |data_source| smart_var, error = parse_smart_variables(var, data_source) ((@smart_vars[var] ||= []).concat(smart_var)).uniq! if smart_var @sql_errors << error if error end end end |
#update ⇒ Object
48 49 50 51 52 53 54 |
# File 'app/controllers/blazer/dashboards_controller.rb', line 48 def update if update_dashboard(@dashboard) redirect_to dashboard_path(@dashboard, variable_params) else render_errors @dashboard end end |