Class: Kanaui::DashboardController
- Inherits:
-
EngineController
- Object
- ApplicationController
- EngineController
- Kanaui::DashboardController
- Defined in:
- app/controllers/kanaui/dashboard_controller.rb
Instance Method Summary collapse
-
#available_reports ⇒ Object
Not used anymore as reports are pulled from index.
-
#index ⇒ Object
Load the dashboard by rendering the view and executing the javascript that will call the reports and available_reports endpoints below.
- #reports ⇒ Object
Methods inherited from EngineController
#current_tenant_user, #get_layout, #options_for_klient
Instance Method Details
#available_reports ⇒ Object
Not used anymore as reports are pulled from index
48 49 50 51 |
# File 'app/controllers/kanaui/dashboard_controller.rb', line 48 def available_reports available_reports = Kanaui::DashboardHelper::DashboardApi.available_reports() render :json => available_reports end |
#index ⇒ Object
Load the dashboard by rendering the view and executing the javascript that will call the reports and available_reports endpoints below.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'app/controllers/kanaui/dashboard_controller.rb', line 8 def index raw_reports = Kanaui::DashboardHelper::DashboardApi.available_reports() @raw_name = (params[:name] || '').split('^')[0] @end_date = params[:end_date] || Date.today.to_s @available_start_dates = @start_date = params[:start_date] || (params[:delta_days].present? ? (@end_date.to_date - params[:delta_days].to_i.day).to_s : @available_start_dates['Last 6 months']) @reports = JSON.parse(raw_reports) @report = current_report(@reports) || {} query = build_slice_and_dice_query # get columns visibility from query parameters to be used by tables @visible_columns = params[:columns] # Redirect also in case the dates have been updated to avoid any confusion in the view if query.present? || params[:start_date].blank? || params[:end_date].blank? # TODO Make metrics configurable name = query.present? ? "#{params[:name]}#{query}^metric:count" : params[:name] query_params = {:start_date => @start_date, :end_date => @end_date, :name => name, :smooth => params[:smooth], :sql_only => params[:sql_only], :format => params[:format]} # Test only query_params[:fake] = params[:fake] unless params[:fake].blank? query_params[:type] = params[:type] unless params[:type].blank? redirect_to dashboard_index_path(query_params) and return end params.permit! end |
#reports ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'app/controllers/kanaui/dashboard_controller.rb', line 53 def reports format = params[:format] || 'json' raw_reports = fetch_reports(format) if format == 'json' && params[:sql_only] != 'true' reports = JSON.parse(raw_reports) # Remove reports with empty data reports.reject! do |report| reject = false (report['data'] || []).each { |data| reject = true if (data['values'] || []).empty? && data['value'].blank? } reject end else reports = raw_reports end render :json => reports end |