Commit 931ad9e9 by Rashid Khan

moved data off scope

parent 85bfed67
......@@ -242,9 +242,6 @@ function (angular, app, $, _, kbn, moment, timeSeries) {
$scope.init = function() {
// Hide view options by default
$scope.options = false;
$scope.$on('refresh',function(){
$scope.get_data();
});
// Always show the query if an alias isn't set. Users can set an alias if the query is too
// long
......@@ -303,7 +300,7 @@ function (angular, app, $, _, kbn, moment, timeSeries) {
* @param {number} query_id The id of the query, generated on the first run and passed back when
* this call is made recursively for more segments
*/
$scope.get_data = function(segment, query_id) {
$scope.get_data = function(data, segment, query_id) {
var
_range,
_interval,
......@@ -380,12 +377,11 @@ function (angular, app, $, _, kbn, moment, timeSeries) {
results = request.doSearch();
// Populate scope when we have results
results.then(function(results) {
return results.then(function(results) {
$scope.panelMeta.loading = false;
if(segment === 0) {
$scope.hits = 0;
$scope.data = [];
data = [];
$scope.annotations = [];
query_id = $scope.query_id = new Date().getTime();
}
......@@ -407,7 +403,7 @@ function (angular, app, $, _, kbn, moment, timeSeries) {
var query_results = results.facets[q.id];
// we need to initialize the data variable on the first run,
// and when we are working on the first segment of the data.
if(_.isUndefined($scope.data[i]) || segment === 0) {
if(_.isUndefined(data[i]) || segment === 0) {
var tsOpts = {
interval: _interval,
start_date: _range && _range.from,
......@@ -417,8 +413,8 @@ function (angular, app, $, _, kbn, moment, timeSeries) {
time_series = new timeSeries.ZeroFilled(tsOpts);
hits = 0;
} else {
time_series = $scope.data[i].time_series;
hits = $scope.data[i].hits;
time_series = data[i].time_series;
hits = data[i].hits;
}
// push each entry into the time series, while incrementing counters
......@@ -427,7 +423,7 @@ function (angular, app, $, _, kbn, moment, timeSeries) {
hits += entry.count; // The series level hits counter
$scope.hits += entry.count; // Entire dataset level hits counter
});
$scope.data[i] = {
data[i] = {
info: q,
time_series: time_series,
hits: hits
......@@ -461,11 +457,11 @@ function (angular, app, $, _, kbn, moment, timeSeries) {
}
// Tell the histogram directive to render.
$scope.$emit('render');
$scope.$emit('render', data);
// If we still have segments left, get them
if(segment < dashboard.indices.length-1) {
$scope.get_data(segment+1,query_id);
$scope.get_data(data,segment+1,query_id);
}
}
});
......@@ -527,15 +523,20 @@ function (angular, app, $, _, kbn, moment, timeSeries) {
restrict: 'A',
template: '<div></div>',
link: function(scope, elem) {
var data;
scope.$on('refresh',function(){
scope.get_data();
});
// Receive render events
scope.$on('render',function(){
render_panel();
scope.$on('render',function(event,data){
render_panel(data);
});
// Re-render if the window is resized
angular.element(window).bind('resize', function(){
render_panel();
render_panel(data);
});
var scale = function(series,factor) {
......@@ -563,13 +564,13 @@ function (angular, app, $, _, kbn, moment, timeSeries) {
};
// Function for rendering panel
function render_panel() {
function render_panel(data) {
// IE doesn't work without this
elem.css({height:scope.panel.height || scope.row.height});
// Populate from the query service
try {
_.each(scope.data, function(series) {
_.each(data, function(series) {
series.label = series.info.alias;
series.color = series.info.color;
});
......@@ -668,8 +669,8 @@ function (angular, app, $, _, kbn, moment, timeSeries) {
// when rendering stacked bars, we need to ensure each point that has data is zero-filled
// so that the stacking happens in the proper order
var required_times = [];
if (scope.data.length > 1) {
required_times = Array.prototype.concat.apply([], _.map(scope.data, function (query) {
if (data.length > 1) {
required_times = Array.prototype.concat.apply([], _.map(data, function (query) {
return query.time_series.getOrderedTimes();
}));
required_times = _.uniq(required_times.sort(function (a, b) {
......@@ -679,8 +680,8 @@ function (angular, app, $, _, kbn, moment, timeSeries) {
}
for (var i = 0; i < scope.data.length; i++) {
var _d = scope.data[i].time_series.getFlotPairs(required_times);
for (var i = 0; i < data.length; i++) {
var _d = data[i].time_series.getFlotPairs(required_times);
if(scope.panel.derivative) {
_d = derivative(_d);
}
......@@ -690,10 +691,10 @@ function (angular, app, $, _, kbn, moment, timeSeries) {
if(scope.panel.scaleSeconds) {
_d = scaleSeconds(_d,scope.panel.interval);
}
scope.data[i].data = _d;
data[i].data = _d;
}
scope.plot = $.plot(elem, scope.data, options);
scope.plot = $.plot(elem, data, options);
} catch(e) {
// Nothing to do here
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment