From 3c1f9457bd732b69d8241c8e8928033756ca5cba Mon Sep 17 00:00:00 2001 From: Rashid Khan Date: Fri, 5 Apr 2013 13:01:32 -0700 Subject: [PATCH] Improved error display in histogram and table --- js/controllers.js | 3 ++- panels/dashcontrol/module.js | 3 ++- panels/histogram/module.html | 1 + panels/histogram/module.js | 10 ++++++++-- panels/table/module.js | 4 +++- 5 files changed, 16 insertions(+), 5 deletions(-) diff --git a/js/controllers.js b/js/controllers.js index ade2895d1a2..42936fdc877 100644 --- a/js/controllers.js +++ b/js/controllers.js @@ -76,7 +76,8 @@ angular.module('kibana.controllers', []) // This is whoafully incomplete, but will do for now $scope.parse_error = function(data) { - return data.match("nested: (.*?);")[1] + var _error = data.match("nested: (.*?);") + return _.isNull(_error) ? data : _error[1]; } $scope.init(); diff --git a/panels/dashcontrol/module.js b/panels/dashcontrol/module.js index fdcd28dab31..7fb38f71ef0 100644 --- a/panels/dashcontrol/module.js +++ b/panels/dashcontrol/module.js @@ -187,8 +187,9 @@ angular.module('kibana.dashcontrol', []) var results = request.query( $scope.ejs.QueryStringQuery(query || '*') ).size($scope.panel.elasticsearch_size).doSearch(); + results.then(function(results) { - if(_.isUndefined(results)) { + if(_.isUndefined(results.hits)) { return; } $scope.panel.error = false; diff --git a/panels/histogram/module.html b/panels/histogram/module.html index 9a52e1be939..3e646faad12 100644 --- a/panels/histogram/module.html +++ b/panels/histogram/module.html @@ -12,5 +12,6 @@
{{series.label}} ({{series.hits}})
per {{panel.interval}} | ({{hits}} total) +
\ No newline at end of file diff --git a/panels/histogram/module.js b/panels/histogram/module.js index 68209063f2b..1bc9d5b34b3 100644 --- a/panels/histogram/module.js +++ b/panels/histogram/module.js @@ -48,6 +48,7 @@ angular.module('kibana.histogram', []) } $scope.get_data = function(segment,query_id) { + delete $scope.panel.error // Make sure we have everything for the request to complete if(_.isUndefined($scope.panel.index) || _.isUndefined($scope.time)) return @@ -92,6 +93,13 @@ angular.module('kibana.histogram', []) query_id = $scope.query_id = new Date().getTime(); } + // Check for error and abort if found + if(!(_.isUndefined(results.error))) { + $scope.panel.error = $scope.parse_error(results.error); + return; + } + + if($scope.query_id === query_id) { var i = 0; @@ -183,8 +191,6 @@ angular.module('kibana.histogram', []) var height = scope.panel.height || scope.row.height; - elem.html('
') - // Receive render events scope.$on('render',function(){ render_panel(); diff --git a/panels/table/module.js b/panels/table/module.js index 81ba829ce5e..7a880b68c66 100644 --- a/panels/table/module.js +++ b/panels/table/module.js @@ -76,6 +76,8 @@ angular.module('kibana.table', []) } $scope.get_data = function(segment,query_id) { + $scope.panel.error = false; + // Make sure we have everything for the request to complete if(_.isUndefined($scope.panel.index) || _.isUndefined($scope.time)) return @@ -110,11 +112,11 @@ angular.module('kibana.table', []) query_id = $scope.query_id = new Date().getTime() } + // Check for error and abort if found if(!(_.isUndefined(results.error))) { $scope.panel.error = $scope.parse_error(results.error); return; } - $scope.panel.error = false; // Check that we're still on the same query, if not stop if($scope.query_id === query_id) {