From cbcd1bc12920d6f864ba4a7dede09b2b16e4be5d Mon Sep 17 00:00:00 2001 From: Martin Edenhofer Date: Wed, 9 Nov 2016 15:05:18 +0100 Subject: [PATCH] Fixed isse#384 - Click on "Reports" leads to Error 500. --- .../javascripts/app/controllers/report.coffee | 6 ++++++ .../app/views/report/time_picker.jst.eco | 8 ++++---- app/assets/stylesheets/zammad.scss | 7 ++++++- app/controllers/reports_controller.rb | 17 +++++++++++------ app/models/report.rb | 4 ++++ 5 files changed, 31 insertions(+), 11 deletions(-) diff --git a/app/assets/javascripts/app/controllers/report.coffee b/app/assets/javascripts/app/controllers/report.coffee index 2fc5d7c96..68e2d4166 100644 --- a/app/assets/javascripts/app/controllers/report.coffee +++ b/app/assets/javascripts/app/controllers/report.coffee @@ -12,6 +12,12 @@ class Index extends App.ControllerContent processData: true success: (data) => @stopLoading() + if data.error + @renderScreenError( + detail: data.error + objectName: 'Report' + ) + return @config = data.config App.Collection.load(type: 'ReportProfile', data: data.profiles) @render() diff --git a/app/assets/javascripts/app/views/report/time_picker.jst.eco b/app/assets/javascripts/app/views/report/time_picker.jst.eco index bdd4d30ae..96a17b978 100644 --- a/app/assets/javascripts/app/views/report/time_picker.jst.eco +++ b/app/assets/javascripts/app/views/report/time_picker.jst.eco @@ -2,7 +2,7 @@ <% if @params.timeRange is 'day': %>
<% for item in @timeRangeDay: %> -
<%= item.display %>
+
<%= item.display %>
<% end %>
<% end %> @@ -10,7 +10,7 @@ <% if @params.timeRange is 'day' || @params.timeRange is 'month': %>
<% for item in @timeRangeMonth: %> -
<%= item.display %>
+
<%= item.display %>
<% end %>
<% end %> @@ -18,7 +18,7 @@ <% if @params.timeRange is 'week': %>
<% for item in @timeRangeWeek: %> -
<%= item.display %>
+
<%= item.display %>
<% end %>
<% end %> @@ -26,7 +26,7 @@ <% if @params.timeRange isnt 'realtime': %>
<% for item in @timeRangeYear: %> -
<%= item.display %>
+
<%= item.display %>
<% end %>
<% end %> diff --git a/app/assets/stylesheets/zammad.scss b/app/assets/stylesheets/zammad.scss index a49ed078e..9974648c3 100644 --- a/app/assets/stylesheets/zammad.scss +++ b/app/assets/stylesheets/zammad.scss @@ -553,6 +553,11 @@ pre code.hljs { } } + &.btn--textLarge { + @extend .btn--text; + margin: 0px; + } + &.btn--quad { padding: 10px 12px 9px; @@ -673,7 +678,7 @@ pre code.hljs { margin-left: 0; } - .btn--text { + .btn--text, .btn--textLarge { padding: 6px 10px 5px; /* reporting main.eco */ display: inline-block; border-radius: 3px; diff --git a/app/controllers/reports_controller.rb b/app/controllers/reports_controller.rb index 35d47a9e5..d76b2471e 100644 --- a/app/controllers/reports_controller.rb +++ b/app/controllers/reports_controller.rb @@ -7,6 +7,12 @@ class ReportsController < ApplicationController # GET /api/reports/config def reporting_config + if !Report.enabled? + render json: { + error: 'Elasticsearch need to be configured!', + } + return + end render json: { config: Report.config, profiles: Report::Profile.list, @@ -138,17 +144,16 @@ class ReportsController < ApplicationController range = 'hour' elsif params[:timeRange] == 'week' start = Date.commercial(params[:year], params[:week]).iso8601 - stop = Date.parse(start).end_of_week + stop = Date.parse(start).end_of_week.iso8601 range = 'week' elsif params[:timeRange] == 'month' start = Date.parse("#{params[:year]}-#{params[:month]}-01}").iso8601 - stop = Date.parse(start).end_of_month + stop = Date.parse(start).end_of_month.iso8601 range = 'day' else - start = "#{params[:year]}-01-01" - stop_date = Date.parse(start).end_of_month - stop = "#{stop_date.year}-#{stop_date.month}-#{stop_date.day}" - range = 'month' + start = "#{params[:year]}-01-01" + stop = Date.parse("#{params[:year]}-12-31").iso8601 + range = 'month' end { profile: profile, diff --git a/app/models/report.rb b/app/models/report.rb index e754779b8..9d7322ce4 100644 --- a/app/models/report.rb +++ b/app/models/report.rb @@ -1,5 +1,9 @@ class Report + def self.enabled? + !Setting.get('es_url').empty? + end + def self.config config = {} config[:metric] = {}