diff options
author | James Lopez <james@jameslopez.es> | 2016-11-21 15:39:43 +0100 |
---|---|---|
committer | James Lopez <james@jameslopez.es> | 2016-11-21 17:19:18 +0100 |
commit | dde8fba524aa071d08121818a1e2c3d635664819 (patch) | |
tree | 461c9a555c110fcae9687b041dccdd9c70df9a11 /app/controllers/projects/cycle_analytics_controller.rb | |
parent | 80eaed1651e6a278af87e015f6b414d4f943a352 (diff) | |
download | gitlab-ce-dde8fba524aa071d08121818a1e2c3d635664819.tar.gz |
Adds a flag to reflect whether or not there is data in cycle analytics
Diffstat (limited to 'app/controllers/projects/cycle_analytics_controller.rb')
-rw-r--r-- | app/controllers/projects/cycle_analytics_controller.rb | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/app/controllers/projects/cycle_analytics_controller.rb b/app/controllers/projects/cycle_analytics_controller.rb index 00ecdcbd1b9..b75b391b461 100644 --- a/app/controllers/projects/cycle_analytics_controller.rb +++ b/app/controllers/projects/cycle_analytics_controller.rb @@ -8,6 +8,10 @@ class Projects::CycleAnalyticsController < Projects::ApplicationController def show @cycle_analytics = ::CycleAnalytics.new(@project, from: start_date(cycle_analytics_params)) + stats_values, cycle_analytics_json = generate_cycle_analytics_json + + @cycle_analytics_not_set_up = stats_with_no_data?(stats_values) + respond_to do |format| format.html format.json { render json: cycle_analytics_json } @@ -22,7 +26,9 @@ class Projects::CycleAnalyticsController < Projects::ApplicationController { start_date: params[:cycle_analytics][:start_date] } end - def cycle_analytics_json + def generate_cycle_analytics_json + stats_values = [] + cycle_analytics_view_data = [[:issue, "Issue", "Time before an issue gets scheduled"], [:plan, "Plan", "Time before an issue starts implementation"], [:code, "Code", "Time until first merge request"], @@ -34,11 +40,14 @@ class Projects::CycleAnalyticsController < Projects::ApplicationController stats = cycle_analytics_view_data.reduce([]) do |stats, (stage_method, stage_text, stage_description)| value = @cycle_analytics.send(stage_method).presence + stats_values << value.abs if value + stats << { title: stage_text, description: stage_description, value: value && !value.zero? ? distance_of_time_in_words(value) : nil } + stats end @@ -52,10 +61,15 @@ class Projects::CycleAnalyticsController < Projects::ApplicationController { title: "Deploy".pluralize(deploys), value: deploys } ] - { - summary: summary, - stats: stats, - permissions: @cycle_analytics.permissions(user: current_user) + cycle_analytics_hash = { summary: summary, + stats: stats, + permissions: @cycle_analytics.permissions(user: current_user) } + + [stats_values, cycle_analytics_hash] + end + + def stats_with_no_data?(stats_values) + stats_values.blank? || stats_values.inject(:+).zero? end end |